この文書は、W3C 標準情報 (TR) の勧告案 (Proposed Recommendation)、 XML Base (2000 年 12 月 20 日付)ToyFish.Net が 独自に翻訳したものです。この仕様書の正式なものは W3C のサイトにある 英語版であり、その著作権は W3C が保有しています。また、翻訳に誤りがある 可能性に留意してください。

誤訳・誤植を発見された方は ToyFish.Net までお知らせください。

翻訳の最終更新日: 2001 年 1 月 19 日


W3C ロゴ

XML Base

W3C 勧告案 2000 年 12 月 20 日

このバージョン:
http://www.w3.org/TR/2000/PR-xmlbase-20001220
(利用可能な形式: HTML [原文], XML [原文], HTML [日本語訳], XML [日本語訳])
最新バージョン:
http://www.w3.org/TR/xmlbase
前のバージョン:
http://www.w3.org/TR/2000/CR-xmlbase-20000908
執筆:
Jonathan Marsh (Microsoft) <jmarsh@microsoft.com>

概要

この文書は、HTML の BASE と同じような、XML 文書の各部分について 基底 URI を指定する機能を提案するものです。

この文書の位置付け

2000 年 12 20 日 付で、この文書は勧告案 (Proposed Recommendation) の レビュー期間に入りました。同日から 2001 年 1 月 31 日までの間、 W3C 諮問委員会 (Advisory Committee) の委員各位には、この仕様を査読し、 コメントをレビュー用紙に記入して w3c-xlink-review@w3.org 宛てに提出することが推奨されます。このリストに送られたコメントは、 レビュー期間の終了後、会員に公開されます。公開すべきでない性質のコメントは 電子メールで別途 w3t-xlink@w3.org 宛てに 送ってください。こちらはチームのみに公開されます。

レビュー期間の終了後、ディレクターがこの文書の処置を告知します。 この文書は、(場合によっては多少の変更を行って) W3C 勧告 (Recommendation) に なるかもしれませんし、草案 (Working Draft) の位置付けに戻ったり、W3C の作業項目として 取り下げられるかもしれません。この告知については、レビュー期間終了から 13 日以内には行われないものと考えてください。

勧告案としての公開は、W3C 会員組織による支持を示すものではありません。 これは現段階では草稿文書であり、いつでも他の文書によって 更新、置換、破棄される可能性があります。W3C 勧告案を 「未完成品」以外のものとして引用するのは適切ではありません。

この作業の背景については、 XML Activity Statement を参照してください。 この文書に関するコメント全般は、公開メーリングリスト www-xml-linking-comments@w3.org (archive) 宛てにお送りください [訳注: 英語]。

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 Linking Language (XML リンク言語) [XLink] では、 リソース間のリンクを記述するための、Extensible Markup Language (拡張可能な マーク付け言語、XML) 1.0 [XML] の構文を定義しています。 XLink で宣言されている要件のひとつは、HTML [HTML 4.01] のリンク構文を汎用的な方法でサポートすることです。 HTML の BASE 要素は、XLink ワーキンググループが検討した構文のひとつです。 BASE を使うと、制作者は、文書の基底 URI を明示的に指定して、 外部におかれた画像、アプレット、フォーム処理プログラム、スタイルシートなどへの 相対リンクを解決させることができます。

この文書は XLink に基底 URI の機能を提供する機構について述べたものですが、 XLink に基づいていない XML アプリケーションであっても 相対 URI をさらに制御できることの恩恵を受けられるようなものであれば 利用できるように、独立した仕様になっています。 その書式は、xml:base という XML 属性ひとつで構成されています。

XML Base の実利用は、XLink や XML Infoset といった新しい仕様から 規定として参照されることによって行われます。こういった新しい技術に基づく アプリケーションや仕様は、はじめから XML Base をサポートすることになります。 XML Base を直接的にも間接的にも規定として参照していない仕様に基づく アプリケーションでは、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 属性

文書や外部実体の基底 URI とは異なる基底 URI を指定する場合に、 属性 xml:base を XML 文書に挿入することができます (may)。この属性の値は、3.1 節に従って 処理を行った後、RFC 2396 [IETF RFC 2396] で定義されている URI 参照 (URI Reference) として解釈されます。

Namespaces in XML (XML 名前空間) [XML Names] で規定されているように、 名前空間を認識する XML プロセッサでは、"xml" という接頭辞は 名前空間名 http://www.w3.org/XML/1998/namespace に 結びつけ (bind) られます。xml:base は 名前空間を認識しないプロセッサでも利用できるという点に注意してください。

XLink が含まれた簡単な文書での xml:base の例を、下に示します。 XLink は、xlink:href 属性での相対 URI 参照の解釈について、 XML Base を規定として参照しています。

<?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><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 参照を求めるには、プロセッサは そういった文字を符号化 (encode) およびエスケープ (escape) しなければなりません (must)。

URL 参照で使用できない文字には、すべての非 ASCII 文字と、 [IETF RFC 2396] の 2.4 節で挙げられている除外対象の文字があります。 ただし、番号記号 (#) およびパーセント記号 (%) の文字、角括弧の両側の文字は、 [IETF RFC 2732] で新たに認められています。 使用できない文字は、次のようにエスケープしなければなりません (must)。

  1. 使用できない文字をそれぞれ 1 バイト以上の UTF-8 [IETF RFC 2279] に変換します。

  2. 使用できない文字に対応するすべてのバイトを、URI のエスケープ機構で エスケープします (つまり、そのバイト値の 16 進表記を 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。 ない場合は次の項によります。

  2. 文書または外部実体内にある親要素の基底 URI。 ない場合は次の項によります。

  3. その要素が置かれている文書実体または外部実体の基底 URI。

4.3. 各種 URI に対する基底 URI

XML 文書中に置かれた相対 URI に対応する基底 URI は、 次のように決定されます。

注: xml:base 属性の値が、XML 文書実体で直接にではなく、 外部実体で宣言されたデフォルト属性で指定されている場合、 この属性があることで予期しない結果になることがあります。 このような宣言は、妥当性検証を行わない XML プロセッサに基づいた ソフトウェアでは読まれないかもしれません。XML アプリケーションには、 妥当性検証を行うプロセッサを要求しないものも数多くあります。 このようなアプリケーションで正しく処理するには、 xml:base の値は、直接にか、 DTD の内部サブセットで宣言されたデフォルト属性で指定するべきです。 (should)。

5. 適合性

アプリケーションは、この仕様で明示されている条件に従って 基底 URI を算出すれば、XML Base に適合します。


付録

A. 参照資料

IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels (RFC 2119: 要求水準を示すために RFC で使われるキーワード)。 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 (RFC 2279: ISO 10646 の転送形式、UTF-8)。 Internet Engineering Task Force、1998 年。 (http://www.ietf.org/rfc/rfc2279.txt を参照。)
IETF RFC 2396
RFC 2396: Uniform Resource Identifiers (RFC 2396: 統合リソース識別子)。 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 (RFC 2732: URL におけるリテラル IPv6 アドレスの形式)。 Internet Engineering Task Force、1999 年。 (http://www.ietf.org/rfc/rfc2732.txt を参照。)
Unicode
The Unicode Standard (Unicode 標準仕様)。 The Unicode Consortium。 (http://www.unicode.org/unicode/standard/standard.html を参照。)
XML
Tim Bray、Jean Paoli、C.M. Sperberg-McQueen、Eve Maler 執筆。 Extensible Markup Language (XML) 1.0 (Second Edition) (拡張可能なマーク付け言語 (XML) 1.0 (第 2 版))。 World Wide Web Consortium、2000 年。 (http://www.w3.org/TR/REC-xml を参照。)
XML Names
Tim Bray、Dave Hollander、Andrew Layman 執筆。 Namespaces in XML (XML 名前空間)。 Textuality、Hewlett-Packard、Microsoft。World Wide Web Consortium、1999 年。 (http://www.w3.org/TR/REC-xml-names/ を参照。)

B. 参照文献 (規定外)

HTML 4.01
Dave Raggett、Arnaud Le Hors、Ian Jacobs 執筆。 HTML 4.01 Specification (HTML 4.01 仕様)。 World Wide Web Consortium、1999 年。 (http://www.w3.org/TR/html4/ を参照。)
XHTML
Steven Pemberton ほか。 XHTML(TM) 1.0: The Extensible HyperText Markup Language (XHTML(TM) 1.0: 拡張可能なハイパーテキストマーク付け言語)。 World Wide Web Consortium、2000 年。 (http://www.w3.org/TR/xhtml1/ を参照。)
XLink
Steve DeRose、Eve Maler、David Orchard、Ben Trafford 執筆。 XML Linking Language (XLink) (XML リンク言語 (XLink)) World Wide Web Consortium、2000 年。 (http://www.w3.org/TR/xlink/ を参照。)
XML Datatypes
Paul V. Biron、Ashok Malhotra 執筆。 XML Schema Part 2: Datatypes (XML スキーマ 第 2 部: データ型) World Wide Web Consortium 草案。 (http://www.w3.org/TR/xmlschema-2/ を参照。)
XML Infoset
John Cowan、David Megginson 執筆。 XML Information Set (XML 情報セット)。 World Wide Web Consortium、1999 年。 (http://www.w3.org/TR/xml-infoset を参照。)
XPath
James Clark、Steven DeRose 執筆。 XML Path Language (XML パス言語) World Wide Web Consortium, 1999. (http://www.w3.org/TR/xpath を参照。)
XSLT
James Clark 執筆。 XSL Transformations (XSL 変換)。 World Wide Web Consortium、1999 年。 (http://www.w3.org/TR/xslt を参照。)

C. 他の標準への影響 (規定外)

XML Base は、XML 文書中に基底 URI 情報を埋め込むための機構を 定義しています。何の内容や属性値に URI を入れることができるかを 認識するための機構は定義していません。これについては、 そのボキャブラリに意味を与えている仕様やアプリケーションによってのみ わかります。

XML Base の意図としては、XML ボキャブラリの今後の仕様や改定が、 XML 文書のどの部分が URI であるかを特定し、この仕様を規定として参照することで、 各種の XML 文書で相対 URI が一貫して扱われるようにします。

(この文書の公開時点での) XML Base が他の標準におよぼす影響を 以下に述べます。


翻訳: ToyFish.Net