[12] [DFN[[RUBYB[[[XML名前空間]]]@en[XML Namespaces]]]]は、
[[XML]] の[[要素]]と[[属性]]の名前 (種別) を[[名前空間名]]と[[局所名]]の組によって表現する仕組みです。

[17] ほとんどすべての [[XML]] の[[応用][XML応用]]や[[文書][XML文書]]は [[XML名前空間]]を利用しています。

[58] [RUBYB[[[XML名前空間]]]@en[XML Namespaces]] (仕様) は [[XML]] における[[名前空間]]を定義しています。
[RUBYB[[[XML名前空間]]]@en[XML namespace]] (一般名詞) は、[[XML名前空間]]仕様に基づく各々の[[名前空間]]を指します。
[RUBYB[[[[CODE[xml]]名前空間]]]@en[the [CODE[xml]] namespace]] (固有名詞) は、
[[XML]] 組み込みの機能が属する[[XML名前空間]] (一般名詞) です。

;; 前2者は本項、後者はそちらの項を参照。

* XML名前空間 (仕様)

- [3] ''Namespaces in XML'' <http://www.w3.org/TR/REC-xml-names>

[8] [[QName]] [SAMP(XML)[foo:xmlbar]] は予約されていませんが、 
QName [SAMP(XML)[xmlbar]] は ([[XML]] で) 予約されている関係上、
最初の例の如き名前 (つまり、 [[LocalName]] が [CODE(ABNF)["XML"]] 
で始まる名前。) は使わないことを errata <http://www.w3.org/XML/xml-names-19990114-errata#NE06> 
は勧めています。

[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 及び周辺仕様が使用するのに予約しています。
-- <http://www.w3.org/TR/REC-xml-names#xmlReserved> 参照

[94] 
[[名前空間URL]]も参照。

* 属性の唯一性

[7] [[SGML]]/[[XML]] では、同じ名前の属性を一つの要素に複数指定することはできませんでした。

[PRE[
 ×<element attribute="value" attribute="value"/>
]PRE]

XML 名前空間を利用する場合は更に制限が加えられ、
[[修飾名]] ([[QName]]) が異なっていても[[名前空間名]]が同じであるなら、同じ local name
の属性を一つの要素に指定することはできません。

[PRE[
 ×<element xmlns:ns1="http://ns.example/"
            xmlns:ns2="http://ns.example/"
            ns1:foo="bar" ns2:foo="BAR"/>
]PRE]

ただし、名前空間無しの属性とありの属性や名前空間名の異なる属性で
local name が同じであるものは、もちろん問題ありません。

[PRE[
 ○<element xmlns="http://ns.example/1"
            xmlns:ns1="http://ns.example/1"
            xmlns:ns2="http://ns.example/2"
            foo="bar" ns1:foo="bar" ns2:foo="BAR"/>
]PRE]

[14] 
[PRE[
 <!ATTLIST foo
           ns:foo CDATA 'default'
           xmlns:ns CDATA #FIXED 'http://uri.example'>
 [INS[...]]
 <foo ns2:foo="nondefault"
      xmlns:ns2="http://uri.example"/>
]PRE]

は[[名前空間妥当]]だろうか? とふと思ったけど、[[妥当性を検証する処理系]]はまず省略属性を補って、その上で名前空間を知っている処理系は名前空間を処理するのが建前だろうから、やっぱり名前空間非妥当だろうなあ。

[23]
>>14 でも <IW:XMLNames:"#uniqAttrs"> には [Q@en[no tag may contain]]
としか書いてなくて、[[既定属性]]の話は出てこないぞ。。。
([[名無しさん]])

[24]
少なくともその宣言が内部サブセットにあって、別途 xmlns:ns2 と ns2:foo が宣言されていれば名前空間妥当だと思うけど。
([[名無しさん]] [WEAK[2006-02-18 05:29:08 +00:00]])

[[#comment]]


* XML 名前空間 (1.0) の修正

→[[XML名前空間 1.0]]


* XML 名前空間 1.1

→ [[XML名前空間 1.1]]


* 文脈

[97] 
[[Webブラウザー]]は対応が義務付けられています。
[SEE[ [[XML構文解析器]] ]]

[98] 
全面対応は必須でないが特定のパターンには対応せよとされている事例:

- [CODE[SVG ][SVG-in-OpenType]] 


* XML 名前空間の問題点

[18] [[XML名前空間]]は異常に複雑であると非難されています。 [[XML]]
を使うべきでないとの主張の重大な論拠の1つでもあります。

[42] 次のような問題点が指摘されています。
[FIG(list)[
- [43] [[要素]]と[[属性]]で[[接頭辞]]なしの場合の[[名前空間URL]]の解釈が異なり学習を困難にしている。
([[RDF/XML]] は理論的な整合性を優先して非互換に仕様変更している。)
- [44] [[名前空間接頭辞]]の任意性により、[[要素名]]や[[属性名]]の固有性が失われている。
([[DTD]] はそれが理由で使いものにならなくなった。)
- [45] [[名前空間]]の識別子に (長い) [[URL]] を用いるため記憶が困難で、転送データ量・メモリー上のデータ量が増大する。
- [50] [[名前空間]]の識別子に [[URL]] を用いるが、その [[URL]] の[[文書]]と[[名前空間]]に実際には関係がない。学習を妨げている。
- [62] [[名前空間URL]]の[[比較]]は[[文字列]]としての[[比較]]だが、
現実世界の [[URL]] は表記揺れが多い。誤った [[URL]] を[[名前空間]]として使ってしまう例も少なくない。
間違った [[URL]] でも動く実装がなぜか存在するので、誤った[[著者]]も誤っていることに気づいていない。
- [46] [[要素]]や[[属性]]の区別を名前1つだけでなく、常に名前空間と名前の組で行わなければならず (または[[名前空間]]の宣言と接頭辞の仕組みを作らなければならず)、[[要素]]や[[属性]]に応じた処理の記述が複雑になる。
- [57] そこで [[XML]] 以外で[[XML名前空間]]を参照する仕組みを作ると多かれ少なかれ [[XML]]
と違うものになり (例えば [[CSS]] の [CODE(CSS)@en[[[@namespace]]]])、
その差異が開発者の混乱の元になっている。
- [47] [[名前空間接頭辞]]を[[属性値]]や[[内容]]から参照することを認めている
(しかもそれは [[XML]]/[[XML名前空間]]レベルでは感知できない) ため、
[[接頭辞]]を任意に書き換えることはできず、保持し続けなければならない。
名前空間と名前の組だけで識別できるという原則が崩されている。
([[XSLT]] や [[RDFa]] が代表例。)
- [48] [[名前空間]]の異なる語彙を混在させて記述するのは複雑で、学習も困難。
そのため[[カメレオン名前空間]]のような[[バッドノウハウ]]が開発されているが、
[[名前空間]]の意義を根本的に否定するもので本末転倒。
- [61] これまで単純な短い文字列1つで[[要素]]や[[属性]]を説明できていたのに、
[[XML名前空間]]によって正確に記述するのが難しくなった。
[[仕様書]]や解説、議論の精密性に悪影響を及ぼしている。
-- 毎回「○○名前空間の○○要素/属性」と記述しないといけなくなり、筆者にとっても読者にとっても煩雑。
-- それを避けるため[[仕様書]]や解説文中でも ([[自然言語]]文等で[[名前空間接頭辞]]を宣言して) 
[[QName]] で表したりする。記述ミスや誤解の発生源になっている。
-- 「明記しない場合○○名前空間」のようにすることもあるが、
これも大きな混乱の元となっている。
-- わかりにくくてもどこかに注記があれば良い方で、実際にはほとんどの場合筆者と読者の暗黙の了解により解釈せざるを得ない。
- [54] [[名前空間]]により[[バージョニング]]や[[プロファイル]]の区別を行う試みがあるが、
実用上、バージョニングしない他の語彙と混在できない。 ([[SMIL]] が失敗例。)
- [49] 祖先の[[名前空間宣言]]が子孫にも適用されるため、異なる出所からの文書片を切り貼りして文書を作成するとき、名前空間を適切に扱うのは容易ではない。
- [53] [[名前空間宣言]]は一貫性のない制約があり複雑。 ([CODE(XML)@en[[[xml]]]]
や [CODE(XML)@en[[[xmlns]]]] の扱い。)
- [51] [[XML]] に対応するデータモデルが極めて複雑になる。接頭辞と [[URL]] の関係を保持し続ける必要がある、祖先の宣言が適用されるなどの性質から、簡略化しがたい。
([[DOM2]] は実際ひどい。)
- [52] [[XML名前空間]]を使わない [[XML]] は禁止されていないが、関係は明確に規定されていない。
(実際に稀に使われることがあるし、 [[DOM1]] のように古い仕様があると、互換性のために対応し続ける必要がある。) 両方に対応した実装は複雑になる。
- [55] [[名前空間]]により複数の[[語彙]]の混在を記述''できる''ようになったが、
その相互作用は一切規定されていない。にも関わらず、なぜか[[名前空間]]ですべて問題が解決されるような誤解を招いている。
[[名前空間名]]が [[URL]] なのでソフトウェアの追加モジュールがそこから入手できるといったお花畑的未来観が語られたことすらあるが、
まったく現実的ではない。
- [56] エラー処理が規定されていない。[[接頭辞]]の扱いの誤りや[[相対URL]]の[[名前空間]]がどう扱われるのか不明確。
]FIG]

[60] [[XML名前空間]]の扱いをめぐって混乱している例:
[FIG(list)[
- [[名前空間URL]]がいくつもあるもの
-- [[SMIL名前空間]]
-- [[iTunes名前空間]]
-- [[Media RSS]]
-- [[GPX]]
-- [[カメレオン名前空間]]
- [[RDFa]] - [[名前空間]]を [[HTML]] に持ち込もうとして悲惨な状況になりました。
- [[GPX]] - [CODE(XMLe)@en[extensions][extensions (GPX)]]
という謎の中間要素と [[XML名前空間]]の両方を同時に使っています。
- [[SVG]] - [[HTML]] との統合の上で歴史的な[[名前空間]]の存在が課題となっています。
- [[XML Schemaデータ型]] - 同じ[[名前空間URL]]のまま[[非互換変更]]し区別不能になりました。
[SEE[ [[XML Schema暦]] ]]
]FIG]

[85] [[XML名前空間]]と[[XML DTD]]の衝突を指摘された [[W3C Markup Validator]] は、
[[W3C]] 自身の仕様書を無視して[[名前空間宣言]]のエラーを報告しないことにしました。
もうめちゃくちゃです。

;; [CODE[xmlns]] 参照。

* 参考文献

- [13] ''XML名前空間の簡単な説明'' <http://www.kanzaki.com/docs/sw/names.html>
- [15] ''XML-NS Table of Contents'' <http://www.y-adagio.com/public/standards/tr_xml_ns/toc.htm>: 
[[JIS TR]] X 0023:1999。
- [16] ''XMLネームスペース'' <http://www.doraneko.org/xml/namespace/namespace.html>: >>15 の訳の方がまだまし。
[[#comment]]


** メモ

[20]
[[要素型名]]が [CODE(XMLe)@en[[[xmlns]]]] とか
[CODE(XMLe)@en[[[xmlns]]:[VAR[*]]]] になることは禁止されていない??

[25]
>>20 わかりにくいけど禁止はされているらしい。

[CITE[Re: Namespaces in XML 1.x test suite contribution from Richard Tobin on 2005-12-19 (xml-names-editor@w3.org from December 2005)]] 
<http://lists.w3.org/Archives/Public/xml-names-editor/2005Dec/0002.html>

([[名無しさん]])


[26]
[CITE@en[Re: porno on w3.org]] ([[Ian B. Jacobs]] 著, [TIME[2008-03-13 01:25:03 +09:00]] 版) <http://lists.w3.org/Archives/Public/w3c-translators/2008JanMar/0163.html>
([[名無しさん]])


[[#comment]]


* XML名前空間 (一般名詞)

[4]

> [定義:] [DFN[XML[RUBY[名前空間] [なまえくうかん] @en[namespace]]]]は、
[[XML文書]]中で[[要素型名]]や[[属性名]]として使われる[[名前]]の[[集成]]であり、
[[URI参照]][SRC@en[[[RFC 2396]]]]によって[[識別]]される。
[SRC[XML名前空間 1.0]]

[21]

> [定義: [DFN[XML[RUBY[名前空間] [なまえくうかん] @en[namespace]]]]は[[IRI参照]]によって[[識別]]される。
[[要素名]]と[[属性名]]はこの仕様書で説明する方法によって[[XML名前空間]]中に置くことができる。]
[SRC[XML名前空間 1.1]]

[22]
仕様書:
- [[XML名前空間]]
-- <IW:XMLNames:"#dt-namespace">

* 表記法

[1] [[XML名前空間]]における[[名前空間名]]と[[局所名]]の組の構文上や仕様上の表記法は様々なものがあります。

[FIG(short list)[
- [[QName]]
- [[展開名]]
- [[展開URL]]
- [[Clark記法]]
]FIG]

[27] [CITE[XML Namespaces]] ([TIME[1999-02-04 14:37:37 +09:00]] 版) <http://www.jclark.com/xml/xmlns.htm>

[28] [[XML名前空間]]の解説ですが、他の解説などでもわりとよく用いられた「{名前空間URL}局所名」
という表記法を (おそらく) 最初に導入した文章でもあります。

[2] 多くの仕様書では、仕様書で使う[[名前空間接頭辞]]を ([[自然言語]]により)
定義した上で、それを使って ([[自然言語]]や [[XML]] の例示で用いて) 説明しています。

[11] [[WebDAV]] の仕様書では[[特性]]の名前 ([[要素名]]) は[[展開URL]]
によって表記されることがあります。

* メモ

[95] 
[CITE@EN-US[Introduction to Namespaces]], [[InetSDK]], [TIME[2024-08-17T05:45:37.000Z]], [TIME[2000-10-25T17:11:14.629Z]] <https://web.archive.org/web/20001025171003/http://msdn.microsoft.com/xml/xmlguide/namespaces-overview.asp>


[29] [CITE@en[Re: Re'''['''4''']''': XML namespaces and RDF]]
([[Tim Berners-Lee]] 著, [TIME[2007-12-20 22:39:07 +09:00]] 版)
<http://lists.w3.org/Archives/Public/semantic-web/2007Dec/0116.html>

[30] [CITE@en[Default Prefix Declaration - W3C Blog]]
([TIME[2009-11-20 23:09:07 +09:00]] 版)
<http://www.w3.org/QA/2009/11/default_prefix_declaration.html>

[31] [CITE@en[Why bound prefixes are an anti-pattern in language design]]
([[Ian Hickson]] 著, [TIME[2009-08-06 07:28:52 +09:00]] 版)
<http://lists.w3.org/Archives/Public/public-rdf-in-xhtml-tf/2009Aug/0035.html>

[32] [CITE[XProc: An XML Pipeline Language]]
([TIME[2010-05-11 22:38:07 +09:00]] 版)
<http://www.w3.org/TR/2010/REC-xproc-20100511/#namespace-fixup-guidance>

[33] [CITE[James Clark's Random Thoughts: XML Namespaces]]
([TIME[2010-06-29 19:41:36 +09:00]] 版)
<http://blog.jclark.com/2010/01/xml-namespaces.html>

[34] [CITE[Name Spaces in XML]]
([TIME[1998-01-30 06:57:17 +09:00]] 版)
<http://www.w3.org/TR/1998/NOTE-xml-names-0119>

[35] [CITE[XML.com: XML Namespaces Don't Need URIs]]
([[Michael Day]] 著, [TIME[2010-07-07 07:57:29 +09:00]] 版)
<http://www.xml.com/pub/a/2005/04/13/namespace-uris.html>

[36] [CITE@en[Change Proposal for ISSUE-120 - WHATWG Wiki]]
([TIME[2011-01-20 05:49:03 +09:00]] 版)
<http://wiki.whatwg.org/wiki/Change_Proposal_for_ISSUE-120>

[37] [CITE[IRC logs: freenode / #whatwg / 20110210]]
( ([TIME[2011-03-21 18:25:22 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20110210#l-618>

[38] [CITE@en[Re: Re''''''[''''''4'''''']'''''': XML namespaces and RDF]]
( ([[Tim Berners-Lee]] 著, [TIME[2007-12-20 22:39:07 +09:00]] 版))
<http://lists.w3.org/Archives/Public/semantic-web/2007Dec/0116.html>

[39] [CITE@ja[MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.9 XML 関数]]
( ([TIME[2011-12-10 10:22:20 +09:00]] 版))
<http://dev.mysql.com/doc/refman/5.1/ja/xml-functions.html>

[40] [CITE[''''''[''''''whatwg'''''']'''''' Including]]
( ([TIME[2012-11-14 08:04:25 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-November/037903.html>

[41] [CITE[Web Architecture: Extensible languages]]
( ([TIME[2000-03-13 14:37:10 +09:00]] 版))
<http://www.w3.org/TR/NOTE-webarch-extlang>

[FIG(quote)[
[FIGCAPTION[
[59] [CITE@ja[ScalaでRSSフィードの処理を書いてみたら思ったより大変でした - argius note]]
([TIME[2016-01-07 17:35:27 +09:00]] 版)
<http://argius.hatenablog.jp/entry/20130830/1377867921>
]FIGCAPTION]

> 但し、Scala 2.10 の時点では、標準APIのXMLでは名前空間が使えないようです。名前空間を無視すれば、要素名(tag)は検索できますが、属性(attribute)は名前空間を無視しても検索できません。

]FIG]


[63] [CITE@en[XProc 2.0: An XML Pipeline Language]]
([TIME[2016-07-21 14:35:49 +09:00]])
<https://www.w3.org/TR/2016/NOTE-xproc20-20160721/#namespace-fixup>

[64] [CITE[XML Namespaces]]
([TIME[1999-02-04 14:37:37 +09:00]])
<http://www.jclark.com/xml/xmlns.htm>

[65] [CITE@ja[James Clarkさんのツイート: "@ndw @hsivonen TimBL pushed the WG to do XML Namespaces ASAP after XML 1.0 for RDF's benefit."]]
([TIME[2017-05-22 23:28:41 +09:00]])
<https://twitter.com/james_clark/status/866532934513184768>

[66] [CITE[w3c-sgml-wg@w3.org Mail Archives]]
([TIME[2015-01-07 09:47:06 +09:00]])
<https://lists.w3.org/Archives/Public/w3c-sgml-wg/>

[67] [CITE@en[Update on namespaces]]
([[Jon Bosak]]著, [TIME[1997-06-10 15:06:00 +09:00]])
<https://lists.w3.org/Archives/Public/w3c-sgml-wg/1997Jun/0146.html>

[68] [CITE[xml-names-issues@w3.org Mail Archives]]
([TIME[2015-01-07 05:58:23 +09:00]])
<https://lists.w3.org/Archives/Public/xml-names-issues/>

[69] [CITE@en[Change of approach on the namespace problem]]
([[Tim Bray]]著, [TIME[1997-06-23 15:53:30 +09:00]])
<https://lists.w3.org/Archives/Public/w3c-sgml-wg/1997Jun/0466.html>

[70] [CITE[Options for Implementing Namespaces in XML]]
([TIME[2010-03-28 07:56:27 +09:00]])
<http://www.textuality.com/xml/namespace.htm>

[71] [CITE@en[Namespaces, the universe, and everything]]
([[Tim Bray]]著, [TIME[1997-06-20 01:54:19 +09:00]])
<https://lists.w3.org/Archives/Public/w3c-sgml-wg/1997Jun/0349.html>

[72] [CITE@en[ERB decision:  colon as name character]]
([[Michael Sperberg-McQueen]]著, [TIME[1997-06-30 05:30:55 +09:00]])
<https://lists.w3.org/Archives/Public/w3c-sgml-wg/1997Jun/0560.html>

[73] [CITE[RDF Model and Syntax]]
([[Ora Lassila, Ralph Swick]]著, [TIME[2013-05-29 06:15:44 +09:00]])
<https://www.w3.org/TR/WD-rdf-syntax-971002/#namespaces>

[74] [CITE@en[SD5 - Namespaces - New Version 2]]
([[Andrew Layman]]著, [TIME[1997-05-23 10:35:59 +09:00]])
<https://lists.w3.org/Archives/Public/w3c-sgml-wg/1997May/0504.html>

[75] [CITE@en[SD5 - Namespaces '''['''fmt''']''']]
([[Jon Bosak]]著, [TIME[1997-05-17 05:52:52 +09:00]])
<https://lists.w3.org/Archives/Public/w3c-sgml-wg/1997May/0239.html>

[76] [CITE@en[namespaces considered harmful · Microformats Wiki]]
([TIME[2017-05-29 17:42:26 +09:00]])
<http://microformats.org/wiki/namespaces>

[77] [CITE@en[No Namespaces in JSON, Please]]
([[Henri Sivonen]]著, [TIME[2017-05-26 03:33:17 +09:00]])
<https://hsivonen.fi/no-json-ns/>

[78] [CITE@en[Re: Re'''['''4''']''': XML namespaces and RDF]]
([[Tim Berners-Lee]]著, [TIME[2007-12-20 22:39:07 +09:00]])
<https://lists.w3.org/Archives/Public/semantic-web/2007Dec/0116.html>

[79] [CITE[Reports from the SGML ERB to the SGML WG and from the XML WG to the XML SIG]]
([TIME[2000-06-26 22:49:51 +09:00]])
<https://www.w3.org/XML/9712-reports.html>

[FIG(quote)[
[FIGCAPTION[
[80] [CITE@ja[村田真のXMLブログ]]
([TIME[2017-05-30 00:31:36 +09:00]])
<http://www.xmlmaster.org/murata/xmlblog/xb061124.html>
]FIGCAPTION]

> Office Open XMLを制定しているEcma Tc 45の議長であるJean Paoliとは、名前空間を用いたユーザ拡張について、1999年ごろに寿司屋で長々と話したことがある。名前空間になにを期待するかは、XMLエキスパートごとに大きく異なるのだが、彼と私の意見はきわめて近い。それは、名前空間は一枚岩ではないXML文書を可能にするという考え方である。一つの文書中の名前空間を全部分かる人・プログラムは誰もいないかも知れない。一部しか分からないプログラムであっても、インターネット上で、互いに協調動作することができる。

]FIG]


[81] [CITE@en[Are web components *seriously* not namespaced?]]
([[Glen]]著, [TIME[2015-02-05 06:31:11 +09:00]])
<https://lists.w3.org/Archives/Public/public-webapps/2015JanMar/0452.html>

[82] [CITE@en[Re: Are web components *seriously* not namespaced?]]
([[Tab Atkins Jr.]]著, [TIME[2015-02-06 04:55:18 +09:00]])
<https://lists.w3.org/Archives/Public/public-webapps/2015JanMar/0512.html>

[83] [CITE@en[RFC 6848 - Specifying Civic Address Extensions in the Presence Information Data Format Location Object (PIDF-LO)]]
([TIME[2018-02-11 17:39:38 +09:00]])
<https://tools.ietf.org/html/rfc6848>

[FIG(quote)[
[FIGCAPTION[
[84] [CITE@en[RSS 2.0 Specification (version 2.0.11)]]
([TIME[2018-04-30 16:06:37 +09:00]])
<http://www.rssboard.org/rss-specification#extendingRss>
]FIGCAPTION]

> The elements defined in this document are not themselves members of a namespace, so that RSS 2.0 can remain compatible with previous versions in the following sense -- a version 0.91 or 0.92 file is also a valid 2.0 file. If the elements of RSS 2.0 were in a namespace, this constraint would break, a version 0.9x file would not be a valid 2.0 file.

]FIG]


[86] [CITE@en[Fix MathML namespace]]
([[dstorey]]著, [TIME[2018-05-17 05:08:15 +09:00]])
<https://github.com/w3c/svgwg/commit/33575437c21b304058c5723fa2b354cb66bc45d8>

[87] [CITE@en[Remove XML loading's namespace-based dispatching]]
([[annevk]]著, [TIME[2019-02-22 00:24:09 +09:00]])
<https://github.com/whatwg/html/commit/38cac772c17218cb01ef92e8a8f5aec2c386b127>

[FIG(quote)[
[FIGCAPTION[
[88] [CITE@en[Error 403]]
([TIME[2014-05-14 23:52:41 +09:00]])
<https://www.w3.org/XML/xml-names-19990114-errata>
]FIGCAPTION]

> Sorry, Insufficient Access Privileges

]FIG]

[89] なぜ 403・・・・[TIME[2019-07-12T11:13:27.000Z]]


[90] [CITE[あれこれポップアップ]], [TIME[2006-01-05T10:23:23.000Z]], [TIME[2022-06-14T12:18:05.804Z]] <http://www.remus.dti.ne.jp/~a-satomi/bunsyorou/ArekorePopup.html#prefdef-attrs>


[91] [[XML名前空間]]が期待の新機能だった時代に作られたソフトウェア ([[Webページ]]に組み込む用の
[[JavaScript]])。
[[JavaScript]] の[[文字列]]で[[属性名]]を指定する。
となるとその[[属性]]が[[大域属性]]のとき[[名前空間]]を指定しないといけない。
そこでこのソフトウェアでは[[QName]]で[[属性名]]を指定させ、
別の[[JavaScript]][[オブジェクト]]で[[名前空間接頭辞]]と[[名前空間名]]の対応関係を管理している。

[92] 
つまり ([[DOM]] とはまた違った形で) [[XML名前空間]]が [[JavaScript]]
に漏洩している事例。

[93] 
[[属性]]の指定を[[名前空間名]]と[[局所名]]の組にしておけば
[[JavaScript]]
[[文字列]]として記述される [[QName]]
とかいう酷いコンセプトを生み出さずに済んだのだろうけど、
そのために利用者たる[[Webページ]][[著者]] ([[XML名前空間]]に習熟しているとは限らない)
に負担を強いるべきではないという判断だろう。



[FIG(data)[ [96] [[HTML要素概説]]

:注釈:
-
[DFN[[RUBYB@ja[XML名前空間]@en[XML namespace]]]]
[[XML]] の[[要素]]や[[属性]]が属する[[名前空間]]。
[[名前空間名]]を使って互いに区別される。
現在の [[HTML]] や [[DOM]] では、
[[要素名]]や[[属性名]]が同じでも、
[[名前空間]]が異なれば別の[[要素]]や[[属性]]として扱われる。
[[名前空間]]の扱い方にはこの他にもいろいろな考え方があった。
-
[DFN[[RUBYB@ja[名前空間名]@en[namespace name]]]]
[[XML名前空間]]を識別する名前。
[[絶対URL]]を使うことになっている。
現在の [[XML]] や [[DOM]] の仕様上はこの [[URL]] に自動的にアクセスすることはないが、
[[スキーマ]]の [[URL]] とするなどいろいろな考え方があった。

]FIG]
