* 名前空間名 (XML) [1] > [定義:] [INS[[[名前空間属性]]の[SRC[引用者による追記]]]][[属性]]の[INS[正規化[SRC[正誤表による追記]]]][[値]]は、 [[URI参照]]で、[[名前空間]]を[[識別]]する[DFN[[RUBY[名前空間名][なまえくうかんめい]@en[namespace name]]]]です。 名前空間名は、その目的の達成のため、[[固有性]]と[[持続性]]を有するべきです。 [[スキーマ]]の[[取出し]] (存在するとして。) に直接利用可能であることは目標とはしていません。 この目標を踏まえて設計された構文の例に[[統一資源名]] [SRC@en[[[RFC 2141]]]] があります。しかし、普通の [[URL]] も同じ目標を達成するために使えることに注意して下さい。 [SRC[[[XML名前空間 1.0]]]] [8] >[定義: [[IRI]] [VAR@en[I]]で[[識別]]される[[名前]][VAR@en[N]]について、 [DFN[[RUBY[[[名前空間名]]][なまえくうかんめい]@en[namespace name]]]]は[VAR@en[I]]です。 [[名前空間]]に属さない[[名前]][VAR@en[N]]について、 [DFN[[RUBY[[[名前空間名]]][なまえくうかんめい]@en[namespace name]]]]は[[無値]]です。] [SRC[[[XML名前空間 1.1]] [7] 仕様書: -[[XML名前空間]] -- -- [[XML名前空間 1.0]] 第1版正誤表 -- [CSECTION@en[2.2 Use of IRIs as Namespace Names]] -- [CSECTION@en[2.3 Comparing IRI References]] [[#comment]] ** 空文字列 [10] [[空文字列]]も[[URI参照]]あるいは[[IRI参照]]としては[[合法]]ですが、 [[名前空間名]]として使うことはできません。 [SRC[1.1 2.2]] [[#comment]] ** 相対参照 [11] [[相対参照]]を[[名前空間名]]で使用するのは[[非推奨]]です。 [SRC[1.1 2.2]] [[#comment]] ** 比較 [12] [[名前空間名]]は、([[属性値]]として出現した場合) [[参照]]を[[展開]]して[[空白]]を処理した[[正規化値]]ですが、 これを[[文字列]]として[[比較]]して[[一致]]すれば、 [[名前空間名]]として[[一致]]したとみなします。 [SRC[1.1 2.3]] [[#comment]] ** @@ - [2] 仕様書には言及がありませんが、[[相対URI]]を名前空間名とすることは非推奨であると正誤表 は述べています。 - [3] 仕様書の[[同等]]の解説や [[XMLBase]] の仕様書の言及から推測すると、名前空間名が相対 URI である場合はその要素の[[基底URI]] ([[外部実体]]ならその URI, [[xml]]:[[base]] 属性があればそれも参照する。) を使って解決するのが良いみたいです。 (もちろん errata が述べているように、現時点では [[W3C]] はどうとも規定していませんし非推奨です。 XML Base も解釈例を述べているに過ぎません。) - [4] 特に、空文字列 (当該文書自身 (または基底) の [[URI]] を指す。) については errata で使用できないことが補記されています。空文字列は接頭辞無しに対して ([[xmlns]] 属性の値で) は[[既定名前空間]]であることを示します。接頭辞ありに対しては使用できません。 - [5] >>4 第1.1版では、接頭辞ありでも空に出来るようになりました ([SAMP(XML)[xmlns:foo=""]])。この場合、名前空間の宣言を取り消したことになります。(この例の場合、先祖要素で[[宣言]]した [SAMP(XML)[foo]] という接頭辞が、この要素以下では使えなくなります。) () - [6] ''W3C XML Plenary Ballot on URIs and Namespaces'' : 相対 URI 名前空間名の取り扱いについての議事。結局非推奨とし、 [[XML情報集合]]などでも未定義となっている。 [9] [[DOM 2]] では、 DOM 実装は名前空間名を単なる文字列として扱い、中身には介入しないから、空文字列さえ名前空間名として普通に扱うようなことが書いてありましたが、 errata で、空文字列は好きにしろ的に改められています。 ([[名無しさん]])