W3C規格解説
XLink(XML Linking Language)
(株)日本ユニテック
村上泰介
XLinkとは、リソース間のリンクを張るための規格です。リンクとは2つ以上のリソース、またはその一部を関係付けるものです。リソースとは位置を特定できる情報またはサービスの単位のことで、位置を特定するための手段としてURIを用います。
XLinkの特徴は主に次のようなものです。
● 2つ以上のリソースにリンクを張れる。
● リンクされるリソースの外部にリンクを表現できる。
単純リンクと拡張リンク
リンクには、単純リンクと拡張リンクの2種類のリンクがあります。まず、単純リンクについて説明します。
★単純リンク
単純リンクは、1つのローカルリソース(リンク要素、あるいはその子要素であるリソース)から1つのリモートリソース(URIで指定されるリソース)へたどる、一方向のリンクのことです。単純リンクを記述するのには、単純リンク要素(xlink:type属性の値が"simple"の要素)を用います。
この図の単純リンクをXMLで表示すると、次のようになります。
わたしは、<companylink xlink:type="simple" xlink:href="http://www.utj.co.jp/index.xml">日本ユニテック</companylink>で働いています。 |
ここでは、"日本ユニテック"から、http://www.utj.co.jp/index.xmlで位置が特定されたデータへのリンクが張られたことを示しています。また、XLinkにおける意味を決めるのは、xlinkという接頭辞のついた属性であって要素名ではないことが分かります。
このようなリンク機能はHTMLにもありました。先程の図をHTMLで表現すると、次のようになります。
わたしは、<A href="http://www.utj.co.jp/index.xml">日本ユニテック</A>で働いています。 |
★拡張リンク
拡張リンクは、複数のリソースをリンク付けするリンクのことです。拡張リンクを記述するのには、拡張リンク要素(xlink:type属性の値が"extended"の要素)を用います。
この図は拡張リンクの例です。実線の矢印はリンクのたどる方向を指していますが、右側の図から分かるように、拡張リンクはローカルリソースがなくても良く、リモートリソースとリモートリソースをリンク付けすることができます。
上の図の拡張リンクをXMLで表示すると、次のようになります。
<personaldata xlink:type="extended" xlink:title="私のプロフィール">
<company
xlink:type="locator"
xlink:href="http://www.utj.co.jp/index.xml"
xlink:label="日本ユニテック会社案内"/>
<club
xlink:type="locator"
xlink:href="http://www.utjtennisclub.co.jp/index.xml"
xlink:label="テニスクラブ"/>
<go
xlink:type="arc"
xlink:from="日本ユニテック会社案内"
xlink:to="テニスクラブ"/>
</personaldata> |
ここでは、company要素とclub要素はリモートリソース(xlink:type属性の値が"locator"の要素)を指定しています。
また、xlink:type属性の値が"arc"であるgo要素はリンクの開始リソース、終了リソース、リンクの方向を示しています。go要素は、xlink:label属性の値が"日本ユニテック会社案内"の要素から、xlink:label属性の値が"テニスクラブ"の要素へのリンクを表現しています。このgo要素は、リモートリソースからリモートリソースへのリンクを表しています。
次に、ローカルリソースがあって、それをリンクさせた場合の拡張リンクを示します。
この図の拡張リンクをXMLで表示するには、先程のXML文書のpersonaldata要素の子要素として以下の部分を追加します。
<personaldata xlink:type="extended" xlink:title="私のプロフィール">
・・・
<companylink xlink:type="resource" xlink:label="勤務先">
日本ユニテック
</companylink>
<go
xlink:type="arc"
xlink:from="勤務先"
xlink:to="日本ユニテック会社案内"/>
</personaldata> |
ここでは、companylink要素はローカルリソース(xlink:type属性の値が"resource"の要素)を指定しています。
go要素はxlink:label属性の値が"勤務先"の要素から、xlink:label属性の値が"日本ユニテック会社案内"の要素へのリンクを表現しています。このgo要素は、ローカルリソースからリモートリソースへのリンクを表しています。
これらのことから分かるように、拡張リンク要素には、単純リンク要素とは異なり、XLinkで定義される子要素が数種類あります。リモートリソースを定義したlocator型要素、ローカルリソースを定義したresource型要素、リンクの開始、終了リソースや方向を定義したarc型要素などです。また、今回は説明を省略しましたが、リンクをどのように表示するかを示すxlink:show属性や、リンクのタイミングを示すxlink:actuate属性などもあります。
まとめ
リンクというと、HTMLのリンクをまず思い浮かべますが、それよりも多くのリソースをリンクできるようにしたのがXLinkです。また、リンクされたリソースと、リンクを定義したXML文書が別々でよいのも、大きな特色といえます。
関連サービス
標準化仕様の動向調査
最新動向を伝えるDXメールニュース
(無料)
関連キーワード: XLink
関連キーワード: XML関連規格
|