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

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

翻訳の最終更新日: 2001 年 7 月 16 日


W3C

XML Base

W3C 勧告 2001 年 6 月 27 日

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

概要

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

この文書の状況

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

URI 参照で使用できない文字には、すべての非 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 は、次のように決定されます。

  • テキスト内容中に置かれた URI 参照の基準となる基底 URI は、 そのテキストが入っている要素の基底 URI になります。

  • xml:base 属性内に置かれた URI 参照の基準となる基底 URI は、 その文書実体または外部実体内でその xml:base 属性を保持する要素に 親要素があれば、その (親要素の) 基底 URI になります。

  • その他の属性の値に置かれた URI 参照の基準となる基底 URI は、 デフォルトの属性値の場合も含めて、その属性を保持する要素の基底 URI になります。

  • 処理命令の内容中に置かれた URI 参照の基準となる基底 URI は、 その文書実体または外部実体内でその処理命令に親要素があれば、 その (親要素の) 基底 URI になります。ない場合には、 その処理命令が入っている文書実体または外部実体の基底 URI になります。

注:

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

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/2000/REC-xml-20001006 を参照。)
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/1999/REC-xml-names-19990114/ を参照。)

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/1999/REC-html401-19991224/ を参照。)
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/2001/REC-xlink-20010627/ を参照。)
XML Datatypes
Paul V. Biron、Ashok Malhotra 執筆。 XML Schema Part 2: Datatypes (XML スキーマ 第 2 部: データ型)。 World Wide Web Consortium 草案。 (http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/ を参照。)
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/2000/REC-xhtml1-20000126/ を参照。)
XML Infoset
John Cowan、Richard Tobin 執筆。 XML Information Set (XML 情報セット)。 World Wide Web Consortium、1999 年。 (http://www.w3.org/TR/2001/CR-xml-infoset-20010514/ を参照。)
XPath
James Clark、Steven DeRose 執筆。 XML Path Language (XML パス言語) World Wide Web Consortium、1999 年。 (http://www.w3.org/TR/1999/REC-xpath-19991116 を参照。)
XSLT
James Clark 執筆。 XSL Transformations (XSL 変換)。 World Wide Web Consortium、1999 年。 (http://www.w3.org/TR/1999/REC-xslt-19991116 を参照。)

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

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

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

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


翻訳: ToyFish.Net