[1] XPointer の scheme である
xmlns
の指示子部分を使うと、
名前空間接頭辞に名前空間名を束縛できます。
[3] 構文 :
xmlns 指示子部分 := 'xmlns(' xmlns scheme データ ")"
xmlns scheme データ := 名前空間接頭辞 *xml.S "=" *xml.S escape された名前空間名
名前空間接頭辞 := NCName
escape された名前空間名 := *EscapedData
[4] 例:
xmlns
(foo = http://foo.example/)[5] XPointer枠組みの規定により、
名前空間束縛文脈の変更はその指示子部分より後ろの指示子部分に影響を与えます。
xmlns
scheme の指示子部分は、
接頭辞と名前の束縛を新たに行い、以降の指示子部分で使えるようにします。
既に接頭辞が束縛されていれば、古い束縛は上書きされて新しい束縛になります。
名前空間名は空文字列になることもあり得ますが、
どう解釈するべきかは仕様書に書かれていません。
また、束縛を削除する方法も xmlns
scheme にはないようです。
[6] XPointer 枠組みによれば xml
と xmlns
の接頭辞・名前は規定の通りにしかできませんで、
それ以外に xmlns
scheme
で無理に束縛しようとしても、単に無視されます。
また、 >>3 の構文に一致しないときも無視されます。
(誤りにはなりません。)
[9]
>>7-8 名前空間名は XPointer framework の EscapedData
に丸投げしているので主としてそちらの問題なのですけど (無批判に流用したのも問題ですけど)、 U+0000
が使えることに C 氏んじゃが何も言わなかったのかということがもっと不思議じゃないでしょうか。 Unicoder より C 氏んじゃの方が多そうなものですが。
[20] ISO/IEC 21000-17 の XPointer もどきでも使われています。