[4] [DFN[XML [RUBYB[名前空間] [namespace]]]]: [Q[[[URI参照]]により識別される、 XML 文書において要素型及び属性の名前として使用される名前の[RUBYB[集成] [collection]]]]。 ( より) - [3] ''Namespaces in XML'' [8] [[QName]] [SAMP(XML)[foo:xmlbar]] は予約されていませんが、 QName [SAMP(XML)[xmlbar]] は ([[XML]] で) 予約されている関係上、 最初の例の如き名前 (つまり、 [[LocalName]] が [CODE(ABNF)["XML"]] で始まる名前。) は使わないことを errata は勧めています。 [9] Errata は仕様書にはない[[名前空間整形式]], [[名前空間妥当]]という2つの重要な用語を定義しています。 [10] このほかにも errata には重要な修正があります。 修正に気づいてない人も少なくないでしょうから、とっとと [[SE]] を出して欲しいところですが、担当 [[WG]] は第1.1版出して誤魔化す気かな? [19] 名前空間 1.1 は、 XML 1.1 と併用する物だと仕様書に書いてありますが、無印名前空間は、 単に XML としか書かれていません。だとすると XML 1.1 + 無印名前空間も可能かも、 だとするといろいろ不整合が出てきて都合が悪いよなあ、 と思ってよく調べてみると、ちゃんと無印 Errata で手は打ってあって、 XML 1.0 に適用すると修正されていました。 [[#comment]] * 構文 [5] 厳密には仕様書 (>>3) の記述を参照して下さい。 - NSAttName = PrefixedAttName / DefaultAttName - PrefixedAttName = 'xmlns:' prefix ;; NSC: Leading "XML" - prefix = (NCName -("XML" NCName)) / "XML" NCName - DefaultAttName = 'xmlns' - NCName = (xml.Letter | '_') (NCNameChar)* ;; xml.Name -":" - NCNameChar = xml.Letter / xml.Digit / "." / "-" / "_" / xml.CombiningChar / xml.Extender - [6] 「Leading “XML”」 [[NSC]]: 接頭辞で最初の3文字が [CODE(ABNF)["XML"]] である (大文字・小文字の組合せは任意。) ものは、 XML 及び周辺仕様が使用するのに予約しています。 -- 参照 [[#comment]] * 属性の唯一性 [7] [[SGML]]/[[XML]] では、同じ名前の属性を一つの要素に複数指定することはできませんでした。 [PRE[ × ]PRE] XML 名前空間を利用する場合は更に制限が加えられ、 [[修飾名]] ([[QName]]) が異なっていても[[名前空間名]]が同じであるなら、同じ local name の属性を一つの要素に指定することはできません。 [PRE[ × ]PRE] ただし、名前空間無しの属性とありの属性や名前空間名の異なる属性で local name が同じであるものは、もちろん問題ありません。 [PRE[ ○ ]PRE] [14] [PRE[ [INS[...]] ]PRE] は[[名前空間妥当]]だろうか? とふと思ったけど、[[妥当性を検証する処理系]]はまず省略属性を補って、その上で名前空間を知っている処理系は名前空間を処理するのが建前だろうから、やっぱり名前空間非妥当だろうなあ。 [[#comment]] * XML 名前空間 (1.0) の修正 →[[XML名前空間 1.0]] * XML 名前空間 1.1 → [[XML名前空間 1.1]] * 参考文献 - [13] ''XML名前空間の簡単な説明'' - [15] ''XML-NS Table of Contents'' : [[JIS TR]] X 0023:1999。 - [16] ''XMLネームスペース'' : >>15 の訳の方がまだまし。 [[#comment]] * メモ [20] [[要素型名]]が [CODE(XMLe)@en[[[xmlns]]]] とか [CODE(XMLe)@en[[[xmlns]]:[VAR[*]]]] になることは禁止されていない?? ([[名無しさん]])