XMLベース


W3C

XMLベース

W3C勧告 2001年6月27日

このバージョン[原文]:
http://www.w3.org/TR/2001/REC-xmlbase-20010627/ ([原文は] HTML, XML で入手可能)
最新のバージョン:
http://www.w3.org/TR/xmlbase/
以前のバージョン:
http://www.w3.org/TR/2000/PR-xmlbase-20001220/
編集者:
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>

概要

この文書は、XML文書の一部分についてベースURIを定義するための、HTMLの BASE に似た仕組みを提案するものである。

この文書の位置づけ

この文書は、W3C会員及びその他の利害関係者によりレビューされ、ディレクターによってW3C勧告として公布されているものである。この文書は、安定的な文書であって、参照素材として用いたり、他の文書から規範性ある参照としての引用に用いてもかまわない。勧告を作成する際のW3Cの役割は、使用に対する注意を引き、その広範な普及を推進することにある。このことは、ウェブの機能と相互運用性とを高める。

この文書は、W3C XML Linking Working Group によって、W3C Architecture Domain の XML Activity の一部として生み出されたものである。この作業の背景については、XML Activity Statement をご覧いただきたい。

この文書にエラーがあった場合には、公開メーリングリスト www-xml-linking-comments@w3.org (アーカイブは http://lists.w3.org/Archives/Public/www-xml-linking-comments/) にレポートいただきたい。確認された一切のエラーは、http://www.w3.org/2001/06/xmlbase-errata で入手可能なエラッタのリストに文書化するつもりである。

この仕様書は、英語版が唯一の規範的バージョンである。この文書の翻訳についての情報は、http://www.w3.org/2001/06/xmlbase-translations で入手できる。

現行のW3C勧告及びその他の技術文書の一覧は、http://www.w3.org/TR/ で見ることができる。

目次

1 はじめに
2 用語集
3 xml:base 属性
    3.1 URI参照のエンコーディングとエスケーピング
4 相対URIの解釈
    4.1 RFC 2396 との関係
    4.2 ベースURI情報の粒度
    4.3 ベースURIを用いたURIの照合
5 適合性

付録

A 参照資料
B 参照資料 (規範性なし)
C 他の標準規格へのインパクト (規範性なし)


1 はじめに

XMLリンク言語 [XLink] は、リソース間のリンクを記述するための拡張可能マークアップ言語 (XML) 1.0 [XML] 構造物を定義する。XLinkに関して言及されている要求事項の一つは、汎用的な方法でHTML [HTML 4.01] のリンク構造物をサポートするということである。HTMLの BASE 要素は、XLinkワーキンググループがそのような構造物であるとみなしているものの一つである。BASE により、制作者は、外部画像やアプレット、フォーム処理プログラム、スタイルシートなどへのリンクの中にある相対URIを解釈するという目的のために、文書のベースURIを明示的に指定することが可能になる。

この文書は、XLinkにベースURIサービスを提供するためのメカニズムを、相対URIへの制御度を高めることにより利益を受けるけれどもXLinkの上に築かれるのではない他のXMLアプリケーションも利用できるよう、モジュラ仕様として記述するものである。その文法は、xml:base という名前の単一のXML属性からなる。

XMLベース仕様の配備は、たとえばXLinkやXML情報セットという新しい仕様書による規範性ある参照を通じて行われる。これらの新しい技術の上に築かれるアプリケーションや仕様書は、ネイティブにXMLベース仕様をサポートすることになる。XMLベース仕様への直接または間接の参照を有しない仕様書に基づくアプリケーションでの xml:base 属性の挙動は、定義されない。

2 用語集

[定義: この仕様書にある、なければならない(must)てはならない(must not)必須である(required)べし(shall)べからず(shall not)べきである(should)べきでない(should not)推奨される(recommended)てもよい(may)任意的である(optional)、というキーワードは、[IETF RFC 2119] で解説されているとおり解釈されるべきものである。]

ベースURI (base URI)相対URI (relative URI) という用語は、この仕様書では、[IETF RFC 2396] で定義されているとおりに解釈される。

3 xml:base 属性

xml:base という属性は、文書または外部実体のベースURI以外のベースURIを指定するため、XML文書に挿入してもよい。この属性の値は、第3.1節に従った処理の後、RFC 2396 [IETF RFC 2396] で定義されているURI参照として解釈される。

名前空間を認識するXMLプロセッサでは、"xml" プリフィックスは、XML名前空間仕様書 [XML Names] に解説されているとおり、http://www.w3.org/XML/1998/namespace という名前空間名に結び付けられる。名前空間を認識しないプロセッサも xml:base を使えるので、注意してほしい。

XLinkを含んだ単一の文書の中にある xml:base の例を後掲する。XLinkは、xlink:href 属性の中にある相対URI参照の解釈について、XMLベース仕様を規範的に参照する。

<?xml version="1.0"?>
<doc xml:base="http://example.org/today/"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <head>
    <title>バーチャル図書館</title>
  </head>
  <body>
    <paragraph>See <link xlink:type="simple" xlink:href="new.xml">新着情報
      </link>!</paragraph>
    <paragraph>本日のおすすめをチェック!</paragraph>
    <olist xml:base="/hotpicks/">
      <item>
        <link xlink:type="simple" xlink:href="pick1.xml">おすすめ その1</link>
      </item>
      <item>
        <link xlink:type="simple" xlink:href="pick2.xml">おすすめ その2</link>
      </item>
      <item>
        <link xlink:type="simple" xlink:href="pick3.xml">おすすめ その3</link>
      </item>
    </olist>
  </body>
</doc>

この例の中にあるURIは、以下のように、完全なURIに解釈される。

3.1 URI参照のエンコーディングとエスケーピング

xml:base 属性で容認される文字の集合は、XML用のものと同じ、すなわち [Unicode] である。しかしながら、Unicodeキャラクタのなかには、URI参照からはじかれるものがあるので、プロセッサは、属性値から正当なURI参照を取得するには、これらの文字をエンコードしてエスケープしなければならない

はじかれる文字としては、すべての非ASCII文字に加えて、[IETF RFC 2396] の第2.4節に列挙されている排除文字がある。ただし、[IETF RFC 2732] で容認し直されている番号記号 (#)、百分率記号 (%)、各括弧文字は除かれる。はじかれる文字は、以下のとおりにエスケープされなければならない

  1. はじかれる文字は、それぞれ、UTF-8 [IETF RFC 2279] へ、1個以上のバイトとして変換される。

  2. はじかれる文字に対応する一切のバイトは、URIエスケーピングメカニズムを用いてエスケープされる (すなわち、%HH に変換される。ここで HH は、そのバイト値の十六進記法である)。

  3. 結果として生じた文字列によって、元の文字が置き換えられる。

4 相対URIの解釈

4.1 RFC 2396 との関係

RFC 2396 [IETF RFC 2396] は、文書内に埋め込まれるべきベースURI情報を提供する。ベースURIを決定するための規則は、以下のようにまとめることができる (優先度の高い順)。

  1. ベースURIは、その文書の内容に埋め込まれる。

  2. ベースURIは、カプセル実体 (メッセージ、文書、あるいは何もなし) のベースURIである。

  3. ベースURIは、実体を引き出すために使われたURIである。

  4. ベースURIは、アプリケーションの文脈によって定義される。

註:

上記のポイント2および3の「実体」という用語は、RFC 2396 の用語の意味をとるものである。この文書のそれ以外の箇所では、「実体」という用語は、XMLの意味で使われる。

この文書は、XML文書という特定の場合においてベースURI情報を埋め込むために、規則1の詳細を規定するものである。

4.2 ベースURI情報の粒度

XML文書の中に出現する相対URIは、つねに、要素か文書実体か外部実体かのいずれかを基準とした相対関係で解釈される。これより細かい、属性ごと、あるいは文字ごと、実体ごとのベース情報といったような粒度は、準備されていない。内部サブセットの中か外部DTDの中かを問わず宣言されている内部実体も、外部実体の中にある自立テキスト (要素の中に囲い込まれていないテキスト) も、実体参照のスコープ内にあるベースURIとは別個のベースURIを設定されているものとはみさなれない。

文書実体または外部実体のベースURIは、RFC 2396 の規則によって決定される。すなわち、ベースURIは、その文書実体または外部実体を引き出すために使われるURIである。

要素のベースURIは、

  1. その要素の xml:base 属性によって指定されるベースURIが存在する場合、そのベースURIであり、ない場合、

  2. その文書または外部実体の内部にある、その要素の親要素のベースURIが存在する場合、そのベースURIであり、ない場合、

  3. その要素を包含している文書実体または外部実体のベースURIである。

4.3 ベースURIを用いたURIの照合

XML文書の中に出現する所与の相対URIに対応するベースURIは、以下のとおりに決定される。

  • テキスト内容の中に出現するURI参照のベースURIは、そのテキストを包含している要素のベースURIである。

  • xml:base 属性の中に出現するURI参照のベースURIは、その xml:base 属性を伴う要素の親要素が、その文書実体または外部実体の内部に存在する場合には、そのベースURIであり、ない場合には、その要素を包含している文書実体または外部実体のベースURIである。

  • デフォルト属性値を含め、その他一切の属性値の中に出現するURI参照のベースURIは、その属性を伴う要素のベースURIである。

  • 処理命令の内容の中に出現するURI参照のベースURIは、その処理命令の親要素が存在する場合には、そのベースURIであり、ない場合には、その処理命令を包含している文書実体または外部実体のベースURIである。

註:

XML文書実体の中で直接にではなく、外部実体の中で宣言されたデフォルト属性を経由して、xml:base 属性の属性値が与えられる場合には、xml:base 属性が存在することから予期しない結果に至る場合がある。そうした宣言は、妥当性検証を行わないXMLプロセッサを基礎とするソフトウェアによっては、読まれないかもしれない。多くのXMLアプリケーションは、妥当性検証を行うプロセッサを必須としてはいない。そうしたアプリケーションで正しく動作するよう、xml:base 値は、直接にか、DTDの内部サブセットの中で宣言されている属性を経由してかのいずれかで与えられるべきである

5 適合性

アプリケーションがこの仕様書で打ち出される条件に従ってベースURIを計算する場合、それはXMLベース仕様に適合する。

A 参照資料

IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997. (http://www.ietf.org/rfc/rfc2119.txt を見よ。)
IETF RFC 2279
RFC 2279: UTF-8, a transformation format of ISO 10646. Internet Engineering Task Force, 1998. (http://www.ietf.org/rfc/rfc2279.txt を見よ。)
IETF RFC 2396
RFC 2396: Uniform Resource Identifiers. Internet Engineering Task Force, 1995. (http://www.ietf.org/rfc/rfc2396.txt を見よ。)
IETF RFC 2732
RFC 2732: Format for Literal IPv6 Addresses in URL's. Internet Engineering Task Force, 1999. (http://www.ietf.org/rfc/rfc2732.txt を見よ。)
Unicode
The Unicode Standard. The Unicode Consortium. (http://www.unicode.org/unicode/standard/standard.html を見よ。)
XML
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors. Extensible Markup Language (XML) 1.0 (Second Edition). World Wide Web Consortium, 2000. (http://www.w3.org/TR/2000/REC-xml-20001006 を見よ。)
XML Names
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999. (http://www.w3.org/TR/1999/REC-xml-names-19990114/ を見よ。)

B 参照資料 (規範性なし)

HTML 4.01
Dave Raggett, Arnaud Le Hors, Ian Jacobs, editors. HTML 4.01 Specification. World Wide Web Consortium, 1999. (http://www.w3.org/TR/1999/REC-html401-19991224/ を見よ。)
XLink
Steve DeRose, Eve Maler, David Orchard, and Ben Trafford, editors. XML Linking Language (XLink). World Wide Web Consortium, 2000. (http://www.w3.org/TR/2001/REC-xlink-20010627/ を見よ。)
XML Datatypes
Paul V. Biron, Ashok Malhotra, editors. XML Schema Part 2: Datatypes. World Wide Web Consortium Working Draft. (http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/ を見よ。)
XHTML
Steven Pemberton, et al. XHTML(TM) 1.0: The Extensible HyperText Markup Language. World Wide Web Consortium, 2000. (http://www.w3.org/TR/2000/REC-xhtml1-20000126/ を見よ。)
XML Infoset
John Cowan and Richard Tobin, editors. XML Information Set. World Wide Web Consortium, 1999. (http://www.w3.org/TR/2001/CR-xml-infoset-20010514/ を見よ。)
XPath
James Clark and Steven DeRose, editors. XML Path Language. World Wide Web Consortium, 1999. (http://www.w3.org/TR/1999/REC-xpath-19991116 を見よ。)
XSLT
James Clark, editor. XSL Transformations. World Wide Web Consortium, 1999. (http://www.w3.org/TR/1999/REC-xslt-19991116 を見よ。)

C 他の標準規格へのインパクト (規範性なし)

XMLベース仕様書は、XML文書の内部にベースURI情報を埋め込むためのメカニズムである。どのような内容や属性値がURIを包含するかを認識するためのメカニズムを定義するものではない。これは、その語彙に意味論を割り当てる仕様やアプリケーションによってのみ知られるものである。

相対URIがXML文書にまたがって一貫性ある扱いを受けることを保証するため、将来のXML語彙の仕様や改訂によってXML文書のうちのどの部分をURIであるとみなされるかを特定し、この仕様書への規範性ある参照を提供することが、XMLベース仕様の狙いである。

他の標準規格に対するXMLベース仕様のインパクト (この文書の公開の時点) を後述する。


どら猫本舗 (webmaster@doraneko.org)