XPointerの例

XPointerの基本的な文法について学ぶために、一つの例を研究しましょう。

XPointerの例

この例では、XPointerとXLinkを組み合わせて、別のドキュメントの特定の部分を指す方法を説明します。

私たちは目標XMLドキュメント(つまりリンクする予定のドキュメント)を研究することから始めます。

目標XMLドキュメント

目標XMLドキュメント「dogbreeds.xml」は、いくつかの異なる犬の種類をリストアップしています:

<?xml version="1.0" encoding="ISO-8859-1"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
  <picture url="http://dog.com/rottweiler.gif" />
  <history>
  ロットウェイラーの祖先はおそらくローマ人...
  ドロバー犬...
  </history>
  <temperament>
  自信満々で大胆、警備意識が高く、圧倒的なロットウェイラー...
  防護能力で人気があります...
  </temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
  <picture url="http://dog.com/fcretriever.gif" />
  <history>
  リトリーブドッグの最も早い使用の一つは、
  漁師が水から魚を引き上げる手助けをする...
  </history>
  <temperament>
  フラットコートリトリーバーは、甘く、活発な、
  遊びが好きで拾い上げることを好む活発な犬...
  </temperament>
</dog>
</dogbreeds>

ブラウザで「dogbreeds.xml」ファイルを確認してください

注釈:上記のXMLドキュメントは、リンクする必要がある各要素にid属性を使用しています!

XMLリンクドキュメント

XLinkを使用して全体のドキュメントにリンクすることもできますが、XPointerは特定のドキュメントの部分にリンクすることができます。ページの特定の部分にリンクするには、xlink:href属性のURLの後にハッシュ記号(#)とXPointer表現を追加してください。

表現:#xpointer(id("Rottweiler")) ターゲットドキュメント内の id 値が「Rottweiler」の要素を参照できます。

したがって、xlink:href 属性はこんな感じになります:xlink:href="http://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"

ただし、idを使用して要素にリンクする場合、XPointerは短縮形式を使用できます。idの値を直接使用できます。例えば、このように:xlink:href="http://dog.com/dogbreeds.xml#Rottweiler"

以下のXMLドキュメントは、XLinkおよびXPointerを使用して各犬の品種情報を参照できます:

<?xml version="1.0" encoding="ISO-8859-1"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog xlink:type="simple"
  xlink:href="http://dog.com/dogbreeds.xml#Rottweiler">
  <description xlink:type="simple"
  xlink:href="http://myweb.com/mydogs/anton.gif">
  アントンは私の好きな犬です。彼は多くの.....を勝ち取っています。
  </description>
</mydog>
<mydog xlink:type="simple"
  xlink:href="http://dog.com/dogbreeds.xml#FCRetriever">
  <description xlink:type="simple"
  xlink:href="http://myweb.com/mydogs/pluto.gif">
  プルートは地球上で最も甘い犬です......
  </description>
</mydog>
</mydogs>