我正在嘗試構建一個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>
這是正確的行爲?