XML、XLink、XQuery

XLinkはXML文書内でハイパーリンクを作成するために使用されます

XPath

  • XLinkはXML文書内でハイパーリンクを作成するために使用されます
  • XML文書内のどんな要素でもリンクとして使用できます
  • XLinkを使用して、リンクされたファイル外部でリンクを定義できます
  • XLinkはW3C推奨標準です

XLink ブラウザサポート

ブラウザはXML文書内のXLinkをサポートしていません。

しかし、すべての主要ブラウザはサポートしています SVG内のXLink

XLink 文法

HTMLでは、<a>要素はハイパーリンクを定義します。しかし、これはXML内での動作とは異なります。

XML 文書内では、好きな要素名を使用できます - したがって、ブラウザは文書内でどのリンク要素が呼び出されるかを予測できません。

以下は、XML 文書内で XLink を使用してリンクを作成する簡単な例です:

<?xml version="1.0" encoding="UTF-8"?>
<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="https://www.codew3c.com">Visit CodeW3C.coms</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>

XLink 機能にアクセスする必要がある場合、XLink ナミング空間を宣言する必要があります。XLink ナミング空間は「http://www.w3.org/1999/xlink」です。

<homepage> 要素内の xlink:type と xlink:href 属性はこの XLink ナミング空間から来ています。

xlink:type="simple" で簡単な「HTMLに似た」リンクを作成します(「ここをクリックして他の場所に移動」の意味です)。

xlink:href 属性指定要链接到的 URL。

XLink インスタンス

以下の XML 文書には XLink 機能が含まれています:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="雅舍談吃">
  <description
  xlink:type="simple"
  xlink:href="/images/cswd.jpg"
  xlink:show="new">
  「雅舍談吃」は潮汕の美食のガイドブックとも言えます。美食愛好家や探求者に必要な指導と支援を提供しています;
  この本はまた、潮汕の美食をテーマにした人文学の読本とも言えます。この本では潮汕の美食ではなく潮汕の飲食を紹介しており、食物の背後にある郷土文化、飲食習慣、歴史的な詳細を深く掘り下げ、展示しています。
  </description>
</book>
<book title="素晴らしい狐狸爸爸の本">
  <description
  xlink:type="simple"
  xlink:href="/images/mrfox.jpg"
  xlink:show="new">
  ボジス、ボンス、ビーンは最も卑劣で小さな気持ちの持ち主であり、狐狸先生を憎んでおり、彼の家族を抹殺することを決意しました。
  そして、これらの三人は銃を手に、狡猾に狐狸先生の洞窟の外で待ち伏せしました……しかし狐狸先生には彼らに対する賢明な計画がありました!
  そして、知恵と力の争いが始まりました……
  </description>
</book>
</bookstore>

例説明:

  1. XLink ナーミングスペースはドキュメントのトップに宣言されます (xmlns:xlink="http://www.w3.org/1999/xlink")
  2. xlink:type="simple" は、シンプルな「类似 HTML」のリンクを作成します
  3. xlink:href 属性は、リンク先の URL(この例では画像)を指定します
  4. xlink:show="new" は、リンクが新しいウィンドウで開かれることを示します

XLink - より遠くへ

上記の例では、シンプルな XLink を示しました。

リモートの場所をリソースとして独立したページにアクセスする代わりに、XLink はより面白くなります。

xlink:show 属性の値を "embed" に設定すると、リンクされたリソースはページ内でインライン処理されます。例えば、これが別の XML 文書であると考えた場合、XML 文書の階層構造を構築できます。

xlink:actuate 属性を使用して、リソースが表示されるべきタイミングを指定できます。

XLink 属性参照

属性 値 説明 xlink:actuate onLoad onRequest other none リンクされたリソースの読み込みおよび表示のタイミングを定義します: onLoad - 資源はドキュメントの読み込み時に読み込まれ表示されるべきです onRequest - リンクをクリックする前にリソースを読み込んだり表示したりしません xlink:href URL リンク先の URL を定義します。 xlink:show embed new replace other none リンクをどこで開くかを定義します。デフォルトは "replace" です。 xlink:type simple extended locator arc resource title none リンクの種類を定義します。

XPointer

XPath
  • XPointer はリンクが XML 文書の特定の部分を指すことを許可します
  • XPointer は XPath 表現を使用して XML 文書内をナビゲートします
  • XPointer は W3C 推奨標準です

XPointer ブラウザサポート

ブラウザが XPointer をサポートしていません。しかし、XPointer は他の XML 言語でも使用されます。

XPointer インスタンス

この例では、XPointer と XLink を組み合わせて、別の文書の特定の部分に指します。

まず、この目的の XML 文書(リンクされている文書)を見てみましょう:

<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
  <picture url="https://dog.com/rottweiler.gif" />
  <history>The Rottweiler's ancestors were probably Roman
  drover dogs.....</history>
  <temperament>Confident, bold, alert and imposing, the Rottweiler
  is a popular choice for its ability to protect....</temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
  <picture url="https://dog.com/fcretriever.gif" />
  <history>One of the earliest uses of retrieving dogs was to
  help fishermen retrieve fish from the water....</history>
  <temperament>フラットコートリトリーバーは、甘く、活発な...</temperament>
  遊びを愛し、拾いに来る活発な犬...</temperament>
</dog>
</dogbreeds>

注意してください、上記のXMLドキュメントは各要素にid属性を使用しています!

したがって、XPointerは、XLinkのように全体のドキュメントにリンクするのではなく、ドキュメントの特定の部分にリンクすることを許可しています。

ページの特定の部分にリンクするには、xlink:href属性のURLの後に井号(#)とXPointer表現を追加してください:

xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"

この式は、ターゲットドキュメント内のid値が「Rottweiler」の要素を参照しています。

xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))"。

XPointerは、idを持つ要素に簡略化された方法でリンクすることも許可しています。以下のようにidの値を使用して直接リンクできます:

xlink:href="https://dog.com/dogbreeds.xml#Rottweiler

以下のXMLドキュメントは、各犬の品種に関する詳細な情報を含むリンクを提供しています:

<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
  <description>
  アントンは私の好きな犬です。彼は多くの.....を勝ち取っています。
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  ロットウェイラーに関する事実
  </fact>
</mydog>
<mydog>
  <description>
  地球で最も甘い犬であるプルート...
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  フラットコートリトリーバーの事実
  </fact>
</mydog>
</mydogs>