1. 序論
~XML~link言語 `XLink$r は、資源~間の~linkを記述するための, XML 1.0 `XML$r 構成子を定義している。 ~XLinkに言明された要件には、汎用な仕方による ~HTML `HTML40$r ~link法を与える構成子の~supportがある。 ~HTMLの `base^e 要素は、そのような構成子として, XLink ~WGが考え出したものである。 `base^e により,作者は、文書~外部の[ 画像, ~applet, ~form処理~program, ~stylesheet, 等々 ]を指す~linkにおける,相対~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を供する仕組みを述べるが、[ ~XLink上に築かれていない,他の~XML応用が、相対~URIに対する追加的な制御から便益を得るために用立てる ]ことも可能にするため,この仕組みの仕様は~module化されている。 その構文は、 `xml:base^a と命名された単独の~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.
~XMLBaseは、新たな仕様 — 例えば~XLinkや XML Infoset など — からの規範的な参照を通して配備されることになる。 これらの新たな技術の上に築かれる応用や仕様は、~XMLBaseを~nativeに~supportすることになる。 直接間接を問わず, ~XMLBaseを規範的に参照しない仕様に基づく応用における, `xml:base^a 属性の挙動は定義されない。 ◎ 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.
この仕様は、文書~内のどの~text文字列が~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 では、そこで定義される~MIME型において, 基底~URIを確立する仕組みとして~XMLBaseを指定することになるものと期待されている。 ◎ 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. 各種用語
この文書の規範的な部分を成す次に挙げる句は、 `RFC2119$r に述べるように解釈するとする ⇒# 〜しなければナラナイ( `must^en ), 〜してはナラナイ( `must not^en ), 〜するベキである( `should^en ), 〜するベキでない( `should not^en ), 〜してもヨイ( `may^en ) ◎ [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^en )/相対~URI ( `relative URI^en ) ]は、 `RFC-3986$r にて定義される。 ◎ The terms base URI and relative URI are used in this specification as they are defined in [RFC 3986].
3. `xml:base^a 属性
~XML文書には、[ 文書~実体/外部~実体 ]の基底~URI以外の基底~URIを指定するためとして,属性 `xml:base^a が挿入されてもヨイ。 この属性の値は、 `Legacy Extended IRI (LEIRI)^en `LEIRI$r として解釈される。 ◎ 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] .
`XMLNS$r に述べられるように、名前空間を~~認識する~XML処理器においては、接頭辞 `xml^l は,名前空間~名 `http://www.w3.org/XML/1998/namespace^l に束縛される。 名前空間を~~認識しない処理器においても、依然として, `xml:base^a は利用できることに注意。 ◎ 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^a の用例を次に示す。 ~XLinkは、 `xlink:href^a 属性の中の相対~URI参照の解釈に際し,~XMLBaseを規範的に参照している。 ◎ 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:
- `新着情報^l 【を包含する link 要素の相対~URI】 は~URI `http://example.org/today/new.xml^l に解決される。 ◎ "what's new" resolves to the URI "http://example.org/today/new.xml"
- `注目作 #1^l は~URI `http://example.org/hotpicks/pick1.xml^l に解決される。 ◎ "Hot Pick #1" resolves to the URI "http://example.org/hotpicks/pick1.xml"
- `注目作 #2^l は~URI `http://example.org/hotpicks/pick2.xml^l に解決される。 ◎ "Hot Pick #2" resolves to the URI "http://example.org/hotpicks/pick2.xml"
- `注目作 #3^l は~URI `http://example.org/hotpicks/pick3.xml^l に解決される。 ◎ "Hot Pick #3" resolves to the URI "http://example.org/hotpicks/pick3.xml"
注記: この仕様は、~XML妥当性に関しては, `xml:base^a 属性に特別な地位を与えるものではない。 妥当な文書においては、この属性は,~DTDの中で宣言されていなければナラナイ — 類似な考慮点は、他の~schema言語にも適用される。 ◎ 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参照の符号化法と~escape法
`xml:base^a 属性の値は Legacy Extended IRI ( LEIRI )であり,~URIに許容されない文字も包含し得る。 (しかしながら、 LEIRI に許容される一部の文字には,~XML文字として合法でないものがあり、それらの文字は `xml:base^a の値に現れることはない。) ◎ 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.)
~percent-符号化法は,アリな限り処理~連鎖の後方で生じるとする原則に則って、要素の基底~URIへの~accsessを供する応用は,~escapeせずに値を計算して返すベキである。 ◎ 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^e の 基底~URIは, `http://example.org/wine/rosé^l として返されるべきである。 ◎ 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$r は、文書の中に埋込まれる基底~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):
- 文書の内容に埋込まれた基底~URI。 ◎ The base URI is embedded in the document's content.
- `the encapsulating entity^en (~message, 文書, `none^en【?】のいずれか)の基底~URI。 ◎ The base URI is that of the encapsulating entity (message, document, or none).
- `the entity^en の検索取得-時に利用した~URI。 ◎ The base URI is the URI used to retrieve the entity.
- 応用の文脈によって定義される基底~URI。 ◎ The base URI is defined by the context of the application.
注記: 上の第 2 項, 第 3 項に現れる語 “`entity^en” は、 `RFC-3986$r のそれを指す。 この文書の他所における “実体【 `entity^en 】” は~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は常に、[ 要素, 文書~実体, 外部~実体 ]のいずれかに相対的に解決される。 属性ごと, 文字ごと, 実体ごと などの,より細かい粒度については、何も用意されていない。 [ 内部~実体(内部~subset, 外部~DTDのどちらで宣言されたかを問わず)/ 外部~実体の中の `freestanding^en ~text(要素で括られていない~text) ]は、その実体~参照~用の視野~内とは別々の基底~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$r の規則により決定される。 すなわち,基底~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:
- 要素は `xml:base^a 属性を有するならば、それに指定されている~URI。 ◎ the base URI specified by an xml:base attribute on the element, if one exists, otherwise
- 他の場合,要素を包含する[ 文書~実体/外部~実体 ]の中に要素の親~要素はあるならば、その親~要素の基底~URI。 ◎ the base URI of the element's parent element within the document entity or external entity, if one exists, otherwise
- 他の場合,要素を包含する[ 文書~実体/外部~実体 ]の基底~URI。 ◎ the base URI of the document entity or external entity containing the element.
注記: したがって, `xml:base^a 属性により指定された基底~URIは、 `xml:base^a 属性を有する他の要素に遭遇するまで,同じ実体の中の子孫~要素に継承されることになる。 ◎ 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.
要素が `xml:base^a 属性を有していて,その値は妥当でない Legacy Extended IRI である場合、要素の基底~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:
- ~text内容に現れる~URI参照~用の基底~URIは、その~textを包含する要素の基底~URIになるとする。 ◎ The base URI for a URI reference appearing in text content is the base URI of the element containing the text.
- `xml:base^a 属性に現れる~URI参照~用の基底~URIは、その属性を有する要素を `E^V, `E^V を包含する[ 文書~実体/外部~実体 ]を `D^V とするとき,[ `D^V 内に `E^V の親~要素 `P^V が存在するならば `P^V の基底~URI / 他の場合は `D^V の基底~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.
- 処理命令 `PI^V の内容に現れる~URI参照~用の基底~URIは、 `PI^V を包含する[ 文書~実体/外部~実体 ]を `D^V とするとき,[ `D^V 内に `PI^V の親~要素 `P^V が存在するならば `P^V の基底~URI / 他の場合は `D^V の基底~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.
【† 属性の既定~値 — おそらく, Attribute Defaults により指定されるもの — ~DTD等における宣言を通して、属性の省略-時にその属性がとるものとされる値 — を指す。 】
注記: `xml:base^a の属性~値が — ~XML文書~実体~内に直に供される代わりに — 属性の既定~値を通して供されている場合、この属性が在ることにより期待されない結果に導き得る。 一例として,外部~実体におけるその種の宣言は、非妥当性検証~XML処理器に基づく~softwareからは読取られないかもしれない。 XML Schema のような外部の仕組みを通して,属性の既定~値を与えた場合、期待されない結果に導き得る。 応用において妥当性検証~処理器が利用されていたとしても、~infosetの作成-後の属性の既定~値の追加により, `xml:base^a 属性と [base URI] ~infoset~propとが同期cしなくなり得る。 これらの理由から、 `xml:base^a の値は、~XML文書~instanceにおいて直に供されるか, あるいは~DTDの内部~subsetにて宣言される属性の既定~値を通して供されるベキである。 ◎ 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$r は、一定の相対~URI参照,特に[ 空~文字列, および `#fragment^c 形のもの ]を,同じ文書への参照 として定義している。 同じ文書への参照に対する参照外し( `dereferencing^en )は特別に取扱われる。 しかしながら、それらを `xml:base^a 属性の値に利用しても,参照外しを孕むことはない — ~XMLBase処理器は、通例の仕方で解決するべきである。 特に、 `xml:base=""^c としても,基底~URIは 包含している文書の~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^a 値を,基底~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を計算するならば,~XMLBaseに適合するとされる。 ◎ An application conforms to XML Base if it calculates base URIs in accordance with the conditions set forth in this specification.
他の標準への影響i(規範的でない)
この節は削除された。 ◎ This section has been deleted.
第 1 版からの変更点(規範的でない)
- 公表された 正誤表 を組入れた。 ◎ The published errata (see http://www.w3.org/2001/06/xmlbase-errata) have been incorporated;
- ~URI参照の定義は RFC2396 から `RFC-3986$r に切替えられた。 ◎ The definition of URI reference has been switched from RFC2396 to 3986;
- `xml:base^a 属性は、構文には変更はないが, Legacy Extended IRI として記述し直された( 2006 年 12 月の PER は~XLink改訂にて定義されることになる用語 "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);
- 実装には、今や,非~URI文字を~escapeせずに,基底 “URI” を返すことが奨励される。 ◎ Implementations are now encouraged to return base “URIs” without escaping non-URI characters;
- `xml:base=""^c / `xml:base="#frag"^c の意味を明確化した。 ◎ The meanings of xml:base="" and xml:base="#frag" have been clarified;
- 来たる XML Media Types RFC ( “3023 の~~後継” )において,~XMLBaseへの参照が期待されることについて注記した。 ◎ The expected reference to XML Base in the forthcoming XML Media Types RFC (“son of 3023”) has been noted;
- `xml:base^a 属性には通常の妥当性の規則が適用されることを明確化した。 ◎ It has been clarified that normal validity rules apply to the xml:base attribute;
- 他の仕様への効果について述べた付録は、古くなったので除去した。 ◎ The out-of-date appendix describing effects on other standards has been removed;
- 様々な編集上の小さな変更。 ◎ Various minor editorial changes have been made.