<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XPointer</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scheme</anchor> である
<code class="XPointerScheme">xmlns</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">指示子部分</anchor>を使うと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前空間接頭辞</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前空間名</anchor>を束縛できます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 構文 :<ul><li><code class="ABNF"><dfn>xmlns 指示子部分</dfn> := 'xmlns(' xmlns scheme データ &quot;)&quot; </code></li><li><code class="ABNF"><dfn>xmlns scheme データ</dfn> := 名前空間接頭辞 *xml.<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">S</anchor> &quot;=&quot; *xml.S escape された名前空間名</code></li><li><code class="ABNF"><dfn>名前空間接頭辞</dfn> := <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NCName</anchor></code></li><li><code class="ABNF"><dfn>escape された名前空間名</dfn> := *<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EscapedData</anchor></code></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 例:<ul><li><samp class="XPointer"><code class="XPointerScheme">xmlns</code>(foo = http://foo.example/)</samp></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XPointer枠組み</anchor>の規定により、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前空間束縛文脈</anchor>の変更はその指示子部分より後ろの指示子部分に影響を与えます。
<code class="XPointerScheme">xmlns</code> scheme の指示子部分は、
接頭辞と名前の束縛を新たに行い、以降の指示子部分で使えるようにします。
既に接頭辞が束縛されていれば、古い束縛は上書きされて新しい束縛になります。</p><p>名前空間名は空文字列になることもあり得ますが、
どう解釈するべきかは仕様書に書かれていません。
また、束縛を削除する方法も <code class="XPointerScheme">xmlns</code>
scheme にはないようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> XPointer 枠組みによれば <code class="XML">xml</code>
と <code class="XML">xmlns</code> の接頭辞・名前は規定の通りにしかできませんで、
それ以外に <code class="XPointerScheme">xmlns</code> scheme
で無理に束縛しようとしても、単に無視されます。
また、 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> の構文に一致しないときも無視されます。
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(誤りにはなりません。)</weak></p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <em>XPointer xmlns() Scheme</em> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xptr-xmlns/" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://www.w3.org/TR/xptr-xmlns/</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 名前空間名に U+0000〜U+10FFFF までなんでも使えるというのがまた素晴らしいよねえ(w</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unicoder</anchor> が何も言わなかったのかな? 不思議なことだ。</li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end>
<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;7</anchor-internal>-8 名前空間名は XPointer framework の <code class="ABNF"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EscapedData</anchor></code> に丸投げしているので主としてそちらの問題なのですけど (無批判に流用したのも問題ですけど)、 <code class="char">U+0000</code> が使えることに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">C</anchor> 氏んじゃが何も言わなかったのかということがもっと不思議じゃないでしょうか。 Unicoder より C 氏んじゃの方が多そうなものですが。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ISO/IEC 21000-17</anchor> の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XPointer</anchor> もどきでも使われています。</p></body></html>