要素コンストラクターの要素名の部分には、xs:QName
要素名を生成するためのが必要です。文字列が指定されている場合は、 `xs:QName('my-element-name')を呼び出したかのようにQNameに強制します。
xs:QName()
したがって、明示的なコンストラクターがあるかのように、従うすべてのルールに従う必要があります。つまり、名前空間プレフィックス(などif:
)を使用している場合は、静的コンテキストでこの名前空間を解決できる必要があります。
あなたができる最も簡単なことはif:
、あなたのプロローグであなたの名前空間を宣言することです(おそらくあなたがあなたのcp:
名前空間を宣言したように):
declare namespace if = "http://example.org/if";
element {fn:concat('if:GICS','1234') } {}
(: usually produces <if:GICS1234 xmlns:if="http://example.org/if"/> :)
これを行いたくない場合は、fn:QName()
関数との完全な名前空間を使用して、QNameを明示的に作成できますif:
。(注*fn:*QName
は!とは異なり*xs:*QName
ます)
element {fn:QName('http://example.org/if', fn:concat('GICS', '1234'))} {}
(: usually produces <GICS1234 xmlns="http://www.example.org/if"/> :)
使用するプレフィックスを制御する場合は、2番目の引数に「if:」を含めることができます。
element {fn:QName('http://example.org/if', fn:concat('if:GICS','1234'))} {}
(: produces <if:GICS1234 xmlns:if="http://example.org/if"/> :)
xml出力で取得するプレフィックスは、xqueryプロセッサや作成するxmlの構造によって異なる場合がありますが、常に同等のXMLインフォセットを取得することに注意してください。