W3C規格解説
XML Base
(株)日本ユニテック
青木 秀起
「XML Base」とは、相対URIによるリンクを実現するときに基底となるURIを指定するためのもので、HTML 4の「base」要素と同様の機能を提供します。2001年6月に勧告となっています。
相対URIと基底URIとは?
まずは次のリストをご覧ください。
<?xml version="1.0"?>
<doc xml:base="http://www.utj.co.jp/xml/sta/"xmlns:xlink="http://www.w3.org/1999/xlink">
<p>「OWL」とは、Webオントロジー言語のことです。詳細は<link
xlink:type="simple" xlink:href="owl.xml">弊社サイト</link>をご覧ください。</p>
</doc> |
XLinkでは、リンク先のリソースをURIで表現します。この場合、1つのデータに長いURI指定が何度も出てくると、指定するのが大変面倒です。そこで、基準となるURIを1つ指定しておき、それ以外は基準となるURIから見た相対的な指定にすれば、簡潔に表記することができます。この基準となるURIのことを「基底URI」(例では、http://www.utj.co.jp/xml/sta/)、「基底URI」を基準にして相対的に表記するURIのことを「相対URI」(例では、owl.xml)といいます。一方、http://www.utj.co.jp/xml/sta/owl.htmlのように、すべてのパス・コンポーネントを完全に指定するものを「絶対URI」といいます。「XML
Base」は、相対URIを絶対URIに解決する方法を規定しています。相対URIを使えば、リンク先の指定を簡単に行えるようになります。例にあるように、xml:base属性を使って基底URIを記述することができます。
基底URIの決定方法
各要素において、基底URIは以下の手順で行われます。
- その要素にxml:base属性が指定されているなら、その値を基底URIとする。
- (1)で得られない場合、その要素の親要素の基底URIを該当要素の基底URIとする。
- (2)で得られない場合、要素を含む文書エンティティか外部エンティティのURIを基底URIとする。
(2)で指定される親要素が確立された基底URIを持たないなら、その親要素も同様の手順で基底URIを確立します。(3)の手順は、ルート要素まで同じ操作を繰り返して基底URIが得られない場合に使われます。
xml:base属性が相対URI参照で記述された場合
xml:base属性に相対URIが指定される場合もあります。この場合、さらに上位の要素で指定されたxml:base属性を使って基底URIを確立した後、相対URIの解決を行います。
<?xml version="1.0"?>
<doc xml:base="http://www.utj.co.jp/publish/"
xmlns:xlink="http://www.w3.org/1999/xlink">
<p xml:base="/xml/sta/">「OWL」とは、Webオントロジー言語のことです。詳細は<link
xlink:type="simple" xlink:href="owl.xml">弊社サイト</link>をご覧ください。</p>
</doc> |
link要素にはxml:base属性がないので、親要素pを見ます。しかし、p要素のxml:base属性は相対URIになっています。そこで、p要素で指定されている基底URIは、その親要素docの基底URIを使って「http://www.utj.co.jp/xml/sta/」と解決されます。そして、link要素で指定されている相対URIはp要素で解決された基底URIを用いて「http://www.utj.co.jp/xml/sta/owl.xml」と解決されます。XMLにおける相対URIは、XML
BaseとIETFのRFC
2396を使って解決されます。RFC2396もご覧ください。
xml:base属性で使用できる文字
xml:base で使用できる文字は、XMLと同じくUnicodeです。ただし、一部のUnicode文字は使用できません。使用できない文字は、以下の文字です。
・すべての非ASCII文字
・制御文字
・空白文字
・<、>
・"
・{、}
・|
・\
・^
・`
詳細については、IETFのRFC
2396とIETFRFC
2732もご覧ください。
関連サービス
標準化仕様の動向調査
最新動向を伝えるDXメールニュース
(無料)
|