ホーム > X-Plus > XML Square >  スタンダーズ

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

スタンダーズコーナー:W3C規格解説 「XPointer」

2003年03月03日作成 

W3C規格解説
XPointer (XML Pointer Language)
   

(株)日本ユニテック
青木 秀起

XML Pointer Language(以下、XPointer)とは、XMLデータの一部を参照するために使われるリンク関連技術です。XPoiner関連の規格は全部で6つあり、現時点でそのうちの3つが勧告案になっています。

XPointer、XLink、XPathの関係は?

リンク指定の例をご覧ください。

このように、XLinkは"リンクの仕方"を、XPointerXPathのパス指定を使って"リンク先の特定の位置"を記述します。XPointerを使えば、XMLデータのさまざま部分を特定することができます。


XPointerでは、要素、テキスト、属性値などの特定のノードだけでなく、ある特定の"ポイント"や、"ポイント"から"ポイント"までの範囲を指定することができます。

特定の要素を指定する

element()スキーマを使い、次のように要素を指定することができます。

① element (intro)

"intro"というIDを持つ要素

② element (/1/2)

ルート要素の2番目の子要素

③ element (intro/3/1)

"intro"というIDを持つ要素の、3番目の子要素の、最初の子要素

「ポイント」の概念

①「ポイント」とは?
ポイントとは、XMLデータ内の位置(点)を示すためのロケーションです。これはノードとノードの間や文字と文字の間にあるもので、ノードや文字そのものを指すわけではありません。ポイントはおもに範囲の前後の境界を決めるために使われます。

②ポイントの決め方
ポイントを含むノードのことをコンテナノードをいいます。そしてコンテナノード内の何番目かを示す整数をインデックスといいます。

③ポイントの種類
ポイントは、インデックスの付け方によってノードポイント文字ポイントの2種類に分類することができます。
ノードポイントは、ノードごとに振られ、コンテナノードは要素かルートノードに限られます。

0はコンテナノードの最初の子ノードの前、1以降の各整数はコンテナノードの各子ノードの後になります。
文字ポイントは、文字ごとに振られます。数え方はノードポイントと同様、0は最初の文字の前、1以降の各整数は各文字の後になります。


特定の範囲を指定する

開始ポイントと終了ポイントを指定して範囲を特定することができます。xpointer()スキーマは、XPathを拡張した高水準のアドレス機能を提供し、拡張された関数を使用することができます。

range-to()の引数は、範囲の終了ポイントを示します。この例は、"chap1"というIDを持つ要素(開始ポイント)から"chap2"というIDを持つ要素(終了ポイント)までを指定しています。

xpointer()で使用できる関数は以下のとおりです。

関数
解説
range-to() 参照する範囲の終了ポイントを指定する
string-range(x,y,n1,n2) "y"という文字列を含むロケーション"x"の中で、1文字目から数えて"n1"番目の文字から"n2"文字数分を指定する("n1"と"n2"は省略可)
例)xpointer(string-range(//title,"Thomas Pynchon")[17])
  "Thomas Pynchon"という文字列を含むtitle要素のうち17番目の範囲ロケーション
range(x) “x”で指定されたロケーションの担当範囲例)xpointer(range((/doc/items)) “items”要素とその要素の内容
range-inside(x) “x”で指定されたロケーションの内側の範囲例)xpointer(range-inside(/doc/date)) “date”要素の内容
start-point(x) 範囲の開始ポイント
end-point(x) 範囲の終了ポイント
here(x) 現行ポイントを含むノード
origin(x) リンク対象のアドレス指定

最後に

XPointerの主な4規格は以下のとおりです。
XPointer Framework(http://www.w3.org/TR/xptr-framework/):2002年11月13日勧告案
XPointer element() Scheme(http://www.w3.org/TR/xptr-element/):2002年11月13日勧告案
XPointer xmlns() Scheme(http://www.w3.org/TR/xptr-xmlns/):2002年11月13日勧告案
XPointer xpointer() Scheme(http://www.w3.org/TR/xptr-xpointer/):2002年12月19日ワーキングドラフト
HTMLよりはるかに便利なアドレス指定機能を持つXPointerはまだ開発段階ですが、早く勧告として承認されることが望まれます。




関連サービス

標準化仕様の動向調査
最新動向を伝えるDXメールニュース (無料)



この記事と関連の高い記事

関連キーワード:XML関連規格


関連キーワード:XPointer




ページトップへ戻る