XPointer

XPointerは、XMLベースのインターネットメディアにおけるコンポーネントのアドレス指定を行うための体系です。XML文書内の特定の箇所を正確に指し示すことを目的としています。この技術は、XML文書の構造に着目し、要素の位置、名前空間、XPath式などを利用して、多様なアドレス指定方法を提供します。

XPointerの構成要素


XPointerは、以下の4つの主要な仕様から構成されています。

1. Framework: XMLフラグメントを指し示すための基本仕様です。XPointerの根幹をなす部分で、他の仕様はこのFrameworkを基盤として動作します。
2. element() Scheme: XML文書内の要素の位置を指定するためのスキームです。親要素からの相対的な位置を数値で指定することで、特定の要素を特定します。
3. xmlns() Scheme: XML名前空間のプレフィックスを正しく解釈するためのスキームです。名前空間を扱うことで、より複雑なXML文書内での正確なアドレス指定が可能になります。
4. xpointer() Scheme: XPathベースのアドレス指定スキームです。XPathを使用することで、より柔軟で複雑な条件に基づいたアドレス指定ができます。

「XPointer Framework」、「XPointer element() Scheme」、「XPointer xmlns() Scheme」は、2003年3月にW3C勧告として正式に承認されました。しかし、「XPointer xpointer() Scheme」は、2009年11月現在、まだワーキングドラフトの段階にあります。

XPointerの設計思想


XPointer言語は、XMLの構造的側面に対応するように設計されています。これにより、テキストの中身だけでなく、文書の構文解析によって生成される情報オブジェクトも扱うことができます。例えば、ユーザーがマウスをドラッグして指定した文書の一部を特定する際にも、XPointerを利用できます。これは、従来のHTMLにおけるアンカータグによる指定よりも、より柔軟で精密な指定を可能にします。

特許と利用条件


XPointerは、サン・マイクロシステムズが特許を有する技術ですが、ロイヤリティフリーで利用できます。これにより、開発者はXPointerを自由に利用して、XML文書のより高度なアドレス指定を実装できます。

要素の位置による指定例


element() スキームは、子要素の位置を指定するために利用されます。XPathアドレスに似ていますが、後続のステップは構文木上の相対的な位置を数値で指定することができます。例えば、以下のXML断片を考えてみましょう。

xml


bom

bom



この断片に対して、以下のようなXPointer指定が可能です。

`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`)を選ぶことを意味します。このように、要素の位置を数値で指定することで、XML文書内の特定の要素を正確に指定できます。

関連技術


XPointerは、XMLおよびHTMLの関連技術として、Web技術において重要な役割を果たしています。

XML: XPointerはXML文書の構造をベースにアドレス指定を行うため、XMLの理解はXPointerを利用する上で不可欠です。
HTML: XPointerは、HTML文書の特定の要素を指し示すのにも利用できます。

外部リンク


XPointerに関するより詳細な情報は、以下の外部リンクを参照してください。

XPointer Framework
XPointer element() Scheme
XPointer xmlns() Scheme
XPointer xpointer() Scheme
XPointer patent terms and conditions
CognitiveWeb オープンソース実装
* XInclude.NET .NET向け実装(GPLライセンス)

これらのリンクは、XPointerの仕様や実装に関する詳細な情報を入手するための貴重なリソースです。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。