XPointer
XPointer は、XMLベースのインターネット媒体のコンポーネントのアドレス指定を行う体系である。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/94/XML_languages.svg/220px-XML_languages.svg.png)
XPointer は次の4つの仕様から構成される。
- Framework - XMLフラグメントを指し示すための基本仕様
- element() Scheme - 構成要素の位置を指定するスキーム
- xmlns() Scheme - 名前空間のプレフィックスを正しく解釈するスキーム
- xpointer() Scheme - XPathベースのアドレス指定スキーム
「XPointer Framework」「XPointer element() Scheme」「XPointer xmlns() Scheme」は2003年3月にW3C勧告となった。一方、「XPointer xpointer() Scheme」は2009年11月現在、まだワーキングドラフトである。
XPointer言語はXMLの構造的側面に対応するよう設計されており、テキストの中身や文書の構文解析の結果として生成される情報オブジェクトを扱う。したがって、例えばユーザーがマウスをドラッグして指定した文書の一部分を指すのにも使える。
XPointer はサン・マイクロシステムズが特許を有する技術でカバーされており、ロイヤリティフリーである[1]。
位置による要素指定
編集element() スキームは子要素の位置指定を行う。これは単純なXPathアドレスに似ているが、後のステップは構文木上のその枝からの相対的な位置を表す数だけでも指定できる。
例えば、次のような断片があるとする。
<foobar id="foo">
<bar/>
<baz>
<bom a="1"/>
</baz>
<bom a="2"/>
</foobar>
これについて次のように指定することができる。
xpointer(id("foo")) => foobar xpointer(/foobar/1) => bar xpointer(//bom) => bom (a=1), bom (a=2) element(/1/2/1) => bom (a=1)
最後の例は、第一要素 (foobar) をまず選び、次の第二子要素 (baz) を選び、最後に第一子要素 (bom) を選ぶことを意味する。