Jintrick.netagenda2004年06月アーカイブ → 2004年06月04日

名前空間接頭辞とXSLT出力 ――結論

やっと見つけた。直接語られているわけではないので演繹が必要。

The created element node will also have a copy of the namespace nodes that were present on the element node in the stylesheet tree with the exception of any namespace node whose string-value is the XSLT namespace URI (http://www.w3.org/1999/XSL/Transform), a namespace URI declared as an extension namespace (see [14.1 Extension Elements]), or a namespace URI designated as an excluded namespace.

このnamespace nodeはXPathのデータモデルに属する。namespace nodeは展開名(expanded name)と文字列値(string-value)の二つをもち、前者のローカルパートは名前空間接頭辞だ。即ち、namespace nodeがコピーされたなら、名前空間接頭辞もコピーされるのであるから、出力時に勝手な名前空間接頭辞をつけるということは、勝手なnamespace nodeを生成することと同義だ。

xsl:element要素にnamespace属性を付けた時には、xsl:element要素のname属性に与えられたQNameの接頭辞を利用しても良いことになっている。それはつまり、新しいnamespace nodeの生成を例外的に許可していることと同義である。そしてこの新しい(コピーされるわけではない)namespace nodeについて、展開名の生成方法が厳密に規定されている箇所が見つからないから、name属性のQNameに接頭辞が見つからない場合は任意の接頭辞をつけられても文句は言えない筈。もしname属性のQNameに接頭辞があったとしても同じである。

アヤシーーーネッ(横山剣風に)

てなところで。


webmaster@jintrick.net
公開: 2004年06月04日
カテゴリ: XSLT