以下の関数から返るようにXML文書を構築しようとしています。 let
を使用して別の変数に評価置換を保存すると、評価置換はなぜ機能しますか?表現を評価することはできますか?結果の最後に表示されるように、結果のXMLには、変数変数$x
に変数値が格納されています。中式の評価が機能しない
declare function local:oim-to-canonical($oimContent as node()) {
let $x := $oimContent/account/domain/text()
return
<person xmlns="http://schemas.abbvienet.com/people-db/model">
<account>
<domain>{ $oimContent/account/domain/text() }</domain>
<username>{ $oimContent/account/username/text() }</username>
<status>{ $oimContent/account/status/text() }</status>
<x>{ $x }</x>
</account>
</person>
};
local:oim-to-canonical(
<person>
<account>
<domain>MYDOMAIN</domain>
<username>ttt</username>
<status>ENABLED</status>
</account>
</person>
)
結果:
<person xmlns="http://schemas.abbvienet.com/people-db/model">
<account>
<domain/>
<username/>
<status/>
<x>MYDOMAIN</x>
</account>
</person>
これは正しい動作ですか?あなたが書いた答えの後にコメント