W3C 勧告
切替切替:

XML Base (第2版)

2009年 1 月 28 日付 W3C 勧告

このバージョン
http://www.w3.org/TR/2009/REC-xmlbase-20090128/
最新バージョン:
http://www.w3.org/TR/xmlbase/
以前のバージョン:
http://www.w3.org/TR/2001/REC-xmlbase-20010627/ http://www.w3.org/TR/2008/PER-xmlbase-20080320/
編集:
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>
Richard Tobin, University of Edinburgh <richard@inf.ed.ac.uk>

この文書の公式の修正も含み得る 正誤表 Please refer to the errata for this document, which may include normative corrections.

各国語 翻訳 See also translations.

この文書の非公式の形式: diff によりマーク付けされた HTML および XMLThis document is also available in these non-normative formats: HTML with diff markup and XML.

Copyright © 2009 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.

要約

この文書は、 XML 文書内の部分的な(いくつかの)範囲に、( HTML BASE に類似するような)基底 URI を定めるための機能について,述べる。 This document describes a facility, similar to that of HTML BASE, for defining base URIs for parts of XML documents.

この文書の位置付け

この節では公開された時点におけるこの文書の位置付けについて述べます。他の文書がこの文書に取って代わる可能性があります。 W3C の現在の出版リストとこの文書の最新の状態は W3C technical reports index にて見られます。 This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

この文書は W3C XML Activity の一部として W3C XML Core Working Group によって作成されました。 この仕様の英語版のみが公式のバージョンですが、他言語版については http://www.w3.org/2003/03/Translations/byTechnology?technology=xmlbase をご覧ください。 This document has been produced by the W3C XML Core Working Group as part of the W3C XML Activity. The English version of this specification is the only normative version. However, for translations of this document, see http://www.w3.org/2003/03/Translations/byTechnology?technology=xmlbase

この文書は W3C による Edited Recommendation です。 これは 2001 年 6 月 27 日付 W3C 勧告 を置き換えるものになります。 この第2版は XML Base の新しいバージョンではありません。 その目的は、初版の発行から明らかになった,いくつかの課題を明確化する所にあります。 それらの一部は別途 正誤表( http://www.w3.org/2001/06/xmlbase-errata )として,最初に発行され、他のものは 2006 年 11 月の公開編集草案( http://www.w3.org/XML/2006/11/xmlbase-2e/Overview.html ), および 2006 年 12 月付 PER ( http://www.w3.org/TR/2006/PER-xmlbase-20061220/ )として発行されました。 変更点は 付録 にて要約されています。 This document is an Edited Recommendation of the W3C. It supersedes the previous W3C Recommendation of 27 June 2001. This second edition is not a new version of XML Base; its purpose is to clarify a number of issues that have become apparent since the first edition was published. Some of these were first published as separate errata ( http://www.w3.org/2001/06/xmlbase-errata), others were published in a public editor's draft in November 2006 (http://www.w3.org/XML/2006/11/xmlbase-2e/Overview.html), and a PER in December 2006 (http://www.w3.org/TR/2006/PER-xmlbase-20061220/). The changes are summarized in an appendix.

この文書に誤りを見つけられた方は www-xml-linking-comments@w3.org までご報告願います。 公開 アーカイブ もあります。 Please report errors in this document to the public mailing list www-xml-linking-comments@w3.org; public archives are available.

この仕様に対する実装報告およびテストスイートは存在しませんが、 XML Base への適合性を試験する方法 について述べた文書はあります。 There is no implementation report or test suite for this specification, but there is a document describing methods of testing XML Base conformance.

この文書は W3C メンバ, ソフトウェア開発者達, W3C グループや関心を持つ団体から吟味され、ディレクターにより W3C 勧告として承認されたものです。 これは安定した文書であり、規範として利用したり、他の文書に引用することができます。 勧告の発行における W3C の役割は、仕様に対する注目を集め、広範囲への普及を促進する所にあります。これはウェブの相互運用性と機能性を向上させるものです。 This document has been reviewed by W3C Members, by software developers, and by other W3C groups and interested parties, and is endorsed by the Director as a W3C Recommendation. It is a stable document and may be used as reference material or cited from another document. W3C's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability of the Web.

この文書は W3C Patent Policy Transition Procedure からの訂正により 24 January 2002 CPP の管理下にあります。 W3C はグループの成果物に関連して public list of any patent disclosures を作成し維持管理しています。そのページには特許開示の手引きも含まれます。特許に関する実際的知識を持ち、そこに Essential Claim(s) が含まれていると主張する者は W3C Patent Policy 第 6 節 に従って情報を公開しなければなりません。 This document is governed by the 24 January 2002 CPP as amended by the W3C Patent Policy Transition Procedure. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.


1 序論

XML リンク言語 [XLink] は、リソース間のリンクを記述する, XML 1.0 [XML] の構成子を定義している。 XLink に記された要件の一つに、汎用的な方法による, HTML [HTML 4.01] リンク構成子のサポートがある。 HTML の BASE 要素は、そのような構成子として XLink Working Group により検討されたものになる。 BASE により,文書作成者は、文書外部の 画像, アプレット, フォーム処理プログラム, スタイルシート, 等々へのリンクにおける,相対 URI を解決するための 基底 URI を、明示的に指定することが可能になる。 The XML Linking Language [XLink] defines Extensible Markup Language (XML) 1.0 [XML] constructs to describe links between resources. One of the stated requirements on XLink is to support HTML [HTML 4.01] linking constructs in a generic way. The HTML BASE element is one such construct which the XLink Working Group has considered. BASE allows authors to explicitly specify a document's base URI for the purpose of resolving relative URIs in links to external images, applets, form-processing programs, style sheets, and so on.

この文書は XLink に基底 URI 機能を提供する仕組みについて述べるが、その仕組みは,相対 URI に対する追加の制御が有用になるような, XLink に基づかない他の XML の応用にも利用可能にするため、モジュール化された仕様にされている。 その構文は xml:base という単独の XML 属性からなる。 This document describes a mechanism for providing base URI services to XLink, but as a modular specification so that other XML applications benefiting from additional control over relative URIs but not built upon XLink can also make use of it. The syntax consists of a single XML attribute named xml:base.

XML Base は、 XLink や XML Infoset などの新しい仕様から,基底として参照されることにより、実効化する。 これらの新しい技術に基づく応用や仕様は、 XML Base を生来的にサポートすることになる。 XML Base を直接的にも間接的にも規定として参照しない仕様に基づく応用における, xml:base 属性のふるまいは未定義である。 The deployment of XML Base is through normative reference by new specifications, for example XLink and the XML Infoset. Applications and specifications built upon these new technologies will natively support XML Base. The behavior of xml:base attributes in applications based on specifications that do not have direct or indirect normative reference to XML Base is undefined.

この仕様は、文書内のどのテキスト文字列が URI として解釈されるか,についてを指定するものではない。 それらについては、それぞれの XML 語彙がその責を負う。 この仕様が対象とするのは、 XML 文書内に与えられた相対 URI を,どの基底 URI に対して解決するべきか? である。 This specification does not attempt to specify which text strings in a document are to be interpreted as URIs. That is the responsibility of each XML vocabulary. The question addressed by this specification is: given a relative URI in an XML document, what base URI is it resolved against?

将来の XML Media Types のための RFC では、そこで定められるメディア型において,基底 URI を確立する仕組みとして、 XML Base を指定することになるものと予期されている。 It is expected that a future RFC for XML Media Types will specify XML Base as the mechanism for establishing base URIs in the media types it defines.

2 語法

この仕様における,語: 〜しなければならない ( must ), 〜すべきである( should ), 〜してもよい( may ), は、 [RFC 2119] に則って解釈されるものとする。 [Definition: The key words must, must not, required, shall, shall not, should, should not, recommended, may, and optional in this specification are to be interpreted as described in [RFC 2119].]

この仕様における語: 基底 URI ( base URI ), および 相対 URI ( relative URI )は、 [RFC 3986] にて定義される。 The terms base URI and relative URI are used in this specification as they are defined in [RFC 3986].

3 xml:base 属性

文書または外部実体の基底 URI とは別の基底 URI を指定するものとして、 XML 文書に,属性 xml:base が挿入されてもよい。 この属性の値は、 W3C Note "Legacy extended IRIs for XML resource identification" [LEIRI] にて定義される Legacy Extended IRI (LEIRI) として解釈される。 The attribute xml:base may be inserted in XML documents to specify a base URI other than the base URI of the document or external entity. The value of this attribute is interpreted as a Legacy Extended IRI (LEIRI) as defined in the W3C Note "Legacy extended IRIs for XML resource identification" [LEIRI] .

XML 名前空間( Namespaces in XML ) [XML Names] にて規定されるように、名前空間を認識する XML プロセッサにおいては、接頭辞 "xml" は, 名前空間名 http://www.w3.org/XML/1998/namespace に束縛される。 名前空間を認識しないプロセッサにおいても、依然として, xml:base を利用できることに注意。 In namespace-aware XML processors, the "xml" prefix is bound to the namespace name http://www.w3.org/XML/1998/namespace as described in Namespaces in XML [XML Names]. Note that xml:base can be still used by non-namespace-aware processors.

XLink が含まれた単純な文書における, xml:base の用例を次に示す。 XLink は、 xlink:href 属性の中の相対 URI 参照の解釈にあたり, XML Base に従うものと規定している。 An example of xml:base in a simple document containing XLinks follows. XLink normatively references XML Base for interpretation of relative URI references in xlink:href attributes.

<?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 に解決される: The URIs in this example resolve to full URIs as follows:

注記: この仕様は、 XML 妥当性の面については, xml:base 属性に特別な地位を与えるものではない。 妥当な文書においては、この属性は DTD の中で宣言されていなければならず,他のスキーマ言語においても同様の扱いになる。 Note: This specification does not give the xml:base attribute any special status as far as XML validity is concerned. In a valid document the attribute must be declared in the DTD, and similar considerations apply to other schema languages.

3.1 URI 参照の符号化方式とエスケープ

xml:base 属性の値は Legacy Extended IRI ( LEIRI )であり, URI に許容されない文字も含み得る。 (しかしながら、 LEIRI に許容される一部の文字には, XML 文字として合法ではないものがあり、それらの文字は xml:base の値に出現することはない。) The value of an xml:base attribute is a Legacy Extended IRI (LEIRI) and may contain characters not allowed in URIs. (However, some characters allowed in LEIRIs are not legal XML characters, and cannot therefore appear in xml:base values.)

パーセント符号化は,可能な限り処理チェインの後方で行わなければならない,という原則に基づき、要素の基底 URI に対するアクセスを提供するアプリケーションは,エスケープを施さずに値を算出して返すべきである。 In accordance with the principle that percent-encoding must occur as late as possible in the processing chain, applications which provide access to the base URI of an element should calculate and return the value without escaping.

次の例では、要素 e2 の 基底 URI は "http://example.org/wine/rosé" として,返されるべきである。 In the example below, the base URI of element e2 should be returned as "http://example.org/wine/rosé".

<?xml version="1.0"?>
<e1 xml:base="http://example.org/wine/">
  <e2 xml:base="rosé"/>
</e1>

4 相対 URI の解決

4.1 RFC 3986 との関係

RFC 3986 [RFC 3986] は、文書内に埋め込まれる基底 URI の情報について規定している。 基底 URI を決定するための規則は、優先度の高い順に,次の様に要約することができる: RFC 3986 [RFC 3986] provides for base URI information to be embedded within a document. The rules for determining the base URI can be summarized as follows (highest priority to lowest):

  1. 基底 URI は、文書の内容に埋め込まれたものになる。 The base URI is embedded in the document's content.

  2. 基底 URI は、それを包含する実体(メッセージや文書, または none )の基底 URI になる。 The base URI is that of the encapsulating entity (message, document, or none).

  3. 基底 URI は、その実体の取得に用いられた URI になる。 The base URI is the URI used to retrieve the entity.

  4. 基底 URI は、アプリケーションの文脈によって定義される。 The base URI is defined by the context of the application.

注記: 上記の第 2 項, 第 3 項での語 "実体" ( entity ) は、 RFC 3986 のそれを指す。 この文書の他の部分における "実体" は XML のそれを指す。 Note: The term "entity" in points #2 and #3 above uses the RFC 3986 meaning of the term. Elsewhere in this document the term "entity" is used in the XML sense.

この文書は、 XML の場合に限定して,基底 URI 情報の埋め込みに関する規則 第 1 項の詳細を規定する。 This document specifies the details of rule #1 for embedding base URI information in the specific case of XML documents.

4.2 基底 URI 情報の詳細度

XML 文書内に現れる相対 URI は常に、要素, 文書実体, 外部実体 のいずれかに対して相対的に解決される。 属性ごと, 文字ごと, 実体ごと などの,より細かい粒度に関しては、何ら提供しない。 内部実体(内部サブセット, または外部 DTD のいずれで宣言されたかに関わらず), および 外部実体の中の独立のテキスト(要素で括られていないテキスト)は、その実体参照を対象にする基底 URI とは別に,基底 URI を設定するものとは、見なされない。 Relative URIs appearing in an XML document are always resolved relative to either an element, a document entity, or an external entity. There is no provision for finer granularity, such as per-attribute, per-character, or per-entity base information. Neither internal entities, whether declared in the internal subset or in an external DTD, nor freestanding text (text not enclosed in an element) in an external entity, are considered to set a base URI separate from the base URI in scope for the entity reference.

文書実体/外部実体 の基底 URI は、 RFC 3986 の規則に従って決定される。 すなわち,基底 URI は、その 文書実体/外部実体 の取得に用いられた URI になる。 The base URI of a document entity or an external entity is determined by RFC 3986 rules, namely, that the base URI is the URI used to retrieve the document entity or external entity.

要素の基底 URI は次のいずれかになる: The base URI of an element is:

  1. その要素に xml:base 属性があれば、それに指定されている URI 。 無い場合は: the base URI specified by an xml:base attribute on the element, if one exists, otherwise

  2. 要素の親要素が,その要素を包含する文書実体または外部実体の内部にあれば、その親要素の基底 URI 。 無い場合は: the base URI of the element's parent element within the document entity or external entity, if one exists, otherwise

  3. その要素を包含する 文書実体/外部実体 の基底 URI 。 the base URI of the document entity or external entity containing the element.

注記: したがって, xml:base 属性で指定された基底 URI は、 xml:base 属性を持つ他の要素に遭遇するまで,同じ実体内の子孫要素に継承されることになる。 Note: It follows that the base URI specified by an xml:base attribute is inherited by descendant elements within the same entity until another element with an xml:base attribute is encountered.

要素が妥当でない Legacy Extended IRI を値とする xml:base 属性を持つ場合の,要素の基底 URI は、アプリケーション依存とする。 The base URI of an element bearing an xml:base attribute with a value that is not a valid Legacy Extended IRI is application dependent.

4.3 URI と基底 URI との対応付け

XML 文書内に与えられた相対 URI に対応する基底 URI は、次の様にして決定される: The base URI corresponding to a given relative URI appearing in an XML document is determined as follows:

  • テキスト内容に現れる URI 参照に対応する基底 URI は、そのテキストを包含する要素の基底 URI になる。 The base URI for a URI reference appearing in text content is the base URI of the element containing the text.

  • xml:base 属性に現れる URI 参照に対応する基底 URI は、その xml:base 属性を持つ要素を E, E を包含する 文書実体/外部実体 を D とするとき、 D 内に E の親要素 P が存在するならば P の基底 URI であり,そうでなければ D の基底 URI である。 The base URI for a URI reference appearing in an xml:base attribute is the base URI of the parent element of the element bearing the xml:base attribute, if one exists within the document entity or external entity, otherwise the base URI of the document entity or external entity containing the element.

  • 他の属性の値に現れる URI 参照に対応する基底 URI は、デフォルト属性値の場合も含め,その属性を持つ要素の基底 URI である。 The base URI for a URI reference appearing in any other attribute value, including default attribute values, is the base URI of the element bearing the attribute.

  • 処理命令の内容に現れる URI 参照に対応する基底 URI は、その処理命令を PI, PI を包含する 文書実体/外部実体 を D とするとき、 D 内に PI の親要素 P が存在するならば P の基底 URI であり,そうでなければ D の基底 URI である。 The base URI for a URI reference appearing in the content of a processing instruction is the base URI of the parent element of the processing instruction, if one exists within the document entity or external entity, otherwise the base URI of the document entity or external entity containing the processing instruction.

注記: xml:base の属性値が XML 文書実体において直接的にではなく,属性デフォルトを通して与えられている場合、この属性の存在により,予期しない結果がもたらされ得る。 【属性デフォルト — 原文では "default attribute" と書かれているが,おそらく Attribute Defaults (属性が省略された場合にその属性がとるものと見なされる値の( DTD 等における宣言による)指定(を通した,値の指定の仕方))を指すものと思われる。】 例えば,外部実体におけるその種の宣言は、非妥当性検証 XML プロセッサに基づくソフトウェアからは読み込まれないかもしれない。 XML Schema のような外部の機構を通した,属性デフォルトの指定も、予期しない結果をもたらし得る。 アプリケーションにおいて妥当性検証プロセッサが用いられていたとしても、 infoset が作成された後に,属性デフォルトが追加されることより、 xml:base 属性と [base URI] infoset プロパティとの同期がとれなくなり得る。 これらの理由から、 xml:base の値は、 XML 文書インスタンスにおいて直接的に供されるか, あるいは DTD の内部サブセットにて宣言される属性デフォルトを通して供されるべきである。 Note: The presence of xml:base attributes might lead to unexpected results in the case where the attribute value is provided, not directly in the XML document entity, but via a default attribute. For instance, such a declaration in an external entity might not be read by software which is based on a non-validating XML processor. Defaulting attributes through an external mechanism such as XML Schema may also lead to unexpected results; even if a validating processor is used by the application, the addition of defaulted attributes subsequent to creation of the infoset can cause xml:base attributes to get out of sync with the [base URI] infoset property. For these reasons, xml:base values should be provided either directly in the XML document instance or via default attributes declared in the internal subset of the DTD.

4.4 同じ文書への参照の解釈

RFC 3986 は、一定の相対 URI 参照,特に空文字列, および #fragment の形式のものを,同じ文書への参照 として定義している。 同じ文書への参照に対する参照外し( dereferencing )は特別に扱われる。 しかしながら、 xml:base 属性の値としてのそれらの利用は、参照外し を含意するものではなく, XML Base プロセッサは通常の方法で解決するべきである。 特に、 xml:base="" により,基底 URI がその包含文書に再設定されることはない。 RFC 3986 defines certain relative URI references, in particular the empty string and those of the form #fragment, as same-document references. Dereferencing of same-document references is handled specially. However, their use as the value of an xml:base attribute does not involve dereferencing, and XML Base processors should resolve them in the usual way. In particular, xml:base="" does not reset the base URI to that of the containing document.

注記: 一部の既存のプロセッサは、実際にこれらの xml:base 値を,基底 URI をその包含文書に再設定するものとして扱うので、そのような値は利用しないことが強く推奨される。 Note: Some existing processors do treat these xml:base values as resetting the base URI to that of the containing document, so the use of such values is strongly discouraged.

5 適合性

アプリケーションは、この仕様に示された条件に従って 基底 URI を算出するとき, XML Base に適合する。 An application conforms to XML Base if it calculates base URIs in accordance with the conditions set forth in this specification.

A 参照文献

RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997.
RFC 3986
RFC 3986: Uniform Resource Identifier (URI): Generic Syntax. Internet Engineering Task Force, 2005.
LEIRI
Legacy extended IRIs for XML resource identification. Henry S. Thompson, Richard Tobin, and Norman Walsh, editors. World Wide Web Consortium.
XML
Extensible Markup Language (XML) 1.0. Tim Bray et al. World Wide Web Consortium.
日本語訳
XML Names
Namespaces in XML 1.0.. Tim Bray et al. World Wide Web Consortium.
日本語訳

B 参照文献(参考)

HTML 4.01
HTML 4.01 Specification. Dave Raggett, Arnaud Le Hors, Ian Jacobs, editors. World Wide Web Consortium, 1999.
XML Linking Language (XLink). Steve DeRose, Eve Maler, David Orchard, and Ben Trafford, editors. World Wide Web Consortium, 2000.
XML Datatypes
XML Schema Part 2: Datatypes. Paul V. Biron, Ashok Malhotra, editors. World Wide Web Consortium Working Draft.
XHTML
XHTML(TM) 1.0: The Extensible HyperText Markup Language. Steven Pemberton, et al. World Wide Web Consortium, 2000.
XML Infoset
XML Information Set. John Cowan and Richard Tobin, editors. World Wide Web Consortium, 1999.
XPath
XML Path Language James Clark and Steven DeRose, editors. World Wide Web Consortium, 1999.
XSLT
XSL Transformations. James Clark, editor. World Wide Web Consortium, 1999.

C 他の標準への影響(参考)

この節は削除された。 This section has been deleted.

D 初版からの変更点(参考)

  1. 公開されたエラッタ( http://www.w3.org/2001/06/xmlbase-errata )を統合。 The published errata (see http://www.w3.org/2001/06/xmlbase-errata) have been incorporated;

  2. URI 参照の定義は RFC2396 から RFC3986 に置き換えられた。 The definition of URI reference has been switched from RFC2396 to 3986;

  3. xml:base 属性は、構文には変更はないが, Legacy Extended IRI として再記述された( 2006 年 12 月の PER は XLink revision にて定義される予定の語 "XML Resource Identifier" を用いていたが、その案は W3C Note による LEIRI の定義に取って代わられた)。 The xml:base attribute has been redescribed as a Legacy Extended IRI, but this does not change its syntax (the December 2006 PER used the term "XML Resource Identifier" which was to be defined in an XLink revision, but that plan has been superseded by the definition of LEIRI in the W3C Note);

  4. 実装には、今や,非 URI 文字に対するエスケープを施さずに,基底 “URI” を返すことが奨励される。 Implementations are now encouraged to return base “URIs” without escaping non-URI characters;

  5. xml:base="" および xml:base="#frag" の意味を明確化。 The meanings of xml:base="" and xml:base="#frag" have been clarified;

  6. 近い将来策定されることが予期されている XML Media Types RFC (“3023 の後継”)における, XML Base 規定への参照についての言及を追加。 The expected reference to XML Base in the forthcoming XML Media Types RFC (“son of 3023”) has been noted;

  7. xml:base 属性には通常の妥当性の規則が適用されることを明確化。 It has been clarified that normal validity rules apply to the xml:base attribute;

  8. 古くなった、他の仕様への影響について述べた appendix を削除。 The out-of-date appendix describing effects on other standards has been removed;

  9. 様々な編集上の小さな変更。 Various minor editorial changes have been made.