#?SuikaWiki/0.9 * xmlns() scheme (XPointer) [1] [[XPointer]] の [[scheme]] である [CODE(XPointerScheme)[xmlns]] の[[指示子部分]]を使うと、 [[名前空間接頭辞]]に[[名前空間名]]を束縛できます。 [3] 構文 : - [CODE(ABNF)[[DFN[xmlns 指示子部分]] := 'xmlns(' xmlns scheme データ ")" ]] - [CODE(ABNF)[[DFN[xmlns scheme データ]] := 名前空間接頭辞 *xml.[[S]] "=" *xml.S escape された名前空間名]] - [CODE(ABNF)[[DFN[名前空間接頭辞]] := [[NCName]]]] - [CODE(ABNF)[[DFN[escape された名前空間名]] := *[[EscapedData]]]] [4] 例: - [SAMP(XPointer)[[CODE(XPointerScheme)[xmlns]](foo = http://foo.example/)]] [5] [[XPointer枠組み]]の規定により、 [[名前空間束縛文脈]]の変更はその指示子部分より後ろの指示子部分に影響を与えます。 [CODE(XPointerScheme)[xmlns]] scheme の指示子部分は、 接頭辞と名前の束縛を新たに行い、以降の指示子部分で使えるようにします。 既に接頭辞が束縛されていれば、古い束縛は上書きされて新しい束縛になります。 名前空間名は空文字列になることもあり得ますが、 どう解釈するべきかは仕様書に書かれていません。 また、束縛を削除する方法も [CODE(XPointerScheme)[xmlns]] scheme にはないようです。 [6] XPointer 枠組みによれば [CODE(XML)[xml]] と [CODE(XML)[xmlns]] の接頭辞・名前は規定の通りにしかできませんで、 それ以外に [CODE(XPointerScheme)[xmlns]] scheme で無理に束縛しようとしても、単に無視されます。 また、 >>3 の構文に一致しないときも無視されます。 [WEAK[(誤りにはなりません。)]] - [2] ''XPointer xmlns() Scheme'' - [7] 名前空間名に U+0000〜U+10FFFF までなんでも使えるというのがまた素晴らしいよねえ(w - [8] >>7 [[Unicoder]] が何も言わなかったのかな? 不思議なことだ。 [[#comment]] * メモ