[1] DOM2 の属性
Node.
は、その節の名前空間接頭辞です。prefix
[2] 値:
DOMString | 名前空間接頭辞 | 下記以外の場合 |
null | 接頭辞なしの場合 | |
null | 節の種類が要素又は属性のいずれでもない場合 | |
null | 節が DOM 1 method で作成された場合 |
INVALID_CHARACTER_ERR | 接頭辞に不正な文字 |
NO_MODIFICATION_ALLOWED_ERR | 節は読取専用 |
NAMESPACE_ERR | 予約名の不正な使用 |
[4] この属性の変更により、自動的に
nodeName
属性などの値も変更されます。
(逆はありません。 nodeName
などは読取専用です。)
この属性を変更しても、それに合わせて
namespaceURI
属性などが変化することはありません。
また、この属性を変更することによって、 既定値を持つ属性が再生されることはありません。
DTD 断片: <!ATTLIST foo xmlns:prefix1 CDATA #FIXED 'http://uri.example/' prefix1:attr1 CDATA 'default' > 文書実現値断片: <foo prefix1:attr1="value"/>
ここで、 prefix1:attr1 属性の節の
prefix
属性の値を prefix2
に変更したとします。
これが接頭辞の変更ではなく、
例えば属性節の削除であったなら、 nodeName
が prefix1:attr1
で nodeValue
が default である新たな属性節が「再生」
してくるところです。しかし、単なる接頭辞の変更の場合は、
この「再生」は起こりません。
[6] >>5 もし prefix2:attr1 が DTD の既定値で定義されていたらとか考えてみると嫌になりますね。
[8] >>5-7 DTD と XML 名前空間の相性の悪さに、 DOM と XML 名前空間の相性の悪さ, DOM と DTD の相性の悪さが絡まってやな感じになっているというか。 教訓:
[10] Test results for messing with Attr.prefix from Bjoern Hoehrmann on 2005-12-18 (www-archive@w3.org from December 2005) <http://lists.w3.org/Archives/Public/www-archive/2005Dec/0017.html>
名前空間属性の prefix
を変更したらどうなるのか? の実装状況
(名無しさん 2005-12-21 08:31:19 +00:00)
[11] Re: DOM3 Core: changing .prefix of namespace declarations from Ray Whitmer on 2005-12-19 (www-dom@w3.org from October to December 2005) <http://www.w3.org/mid/3CB4022A-E422-4D42-88DE-D93781579B3D@personallegal.net>
I do not find the specification confusing. I think expecting checks to occur that are not specified is what you call confusing. The spec seems fairly clear in most cases what checks occur and the rest would not occur.
[12]
createElementNS
や
createAttributeNS
で作成した Node
の
prefix
に代入してみました。
Firefox 1.5 では、どんな代入でも例外は発生せず、
指定された値 (を ToString
したもの)
が新しい prefix
となりました。
XML名前空間的に適当な値かは一切チェックされないようです。
ただし、空文字列を指定したときだけは
null
になりました。
Opera 9 では、どんな代入も例外は発生せず、
prefix
は変化しませんでした。
[13]
Opera 8.5 と Opera 9 TP1 も prefix
に空文字列を指定しても何ら変化ありませんでした。
(名無しさん)
(名無しさん)
[15]
INVALID_CHARACTER_ERR
についての言及は DOM水準2から。
DOM水準2の正誤表には XML 1.0 に従う、
DOM水準3には xmlVersion
に従うとある。
(名無しさん)
[16]
NAMESPACE_ERR
についての言及も
DOM水準2から。指定された接頭辞が不正なら、
という点について DOM水準3では XML名前空間仕様書によると追記あり。参照されているのは XML名前空間 1.0。
(名無しさん)
[17] IRC logs: freenode / #whatwg / 20110817 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20110817>
[18] XHTML+RDFa 1.1 - Second Edition ( ( 版)) <http://www.w3.org/TR/2013/REC-xhtml-rdfa-20130822/#A_prefix>
[19] HTML+RDFa 1.1 ( ( 版)) <http://www.w3.org/TR/2013/REC-html-rdfa-20130822/#extensions-to-the-html5-syntax>