Я пытаюсь согласовать значение элемента на основе определенного условия, но не могу этого сделать.Что здесь не так?
Для приведенной ниже структуры примера мне нужно согласовать значение CID на основе кода OutcomeCode.Скажем, если у нас есть OutcomeCode в качестве OC и ПК, то мы должны отобразить объединенное значение CId в строковой переменной.
<v4:ValidateResponse xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v4="http://service.com/v4">
<v4:Details>
<v4:Detail>
<v4:CId>001</v4:CId>
</v4:Detail>
<v4:OutcomeCode>FC</v4:OutcomeCode>
</v4:Details>
<v4:Details>
<v4:Detail>
<v4:CId>002</v4:CId>
</v4:Detail>
<v4:OutcomeCode>PC</v4:OutcomeCode>
</v4:Details>
<v4:Details>
<v4:Detail>
<v4:CId>003</v4:CId>
</v4:Detail>
<v4:OutcomeCode>OC</v4:OutcomeCode>
</v4:Details>
</v4:ValidateResponse>
Вот мое преобразование
as xs:string
{
for $Details in $ValidateResponse /*:Details
let $OutcomeCode := data($Details/*:OutcomeCode)
return
if (($OutcomeCode ='OC') or ($OutcomeCode='PC'))
then
contact('CID is-',data($Details/*:Detail/*:CId))
else
fn:data('Technical_Check')
};
Я не могу получитьзначения concat.
Ожидаемый результат должен быть следующим: CID - 002,003 , поскольку эти 2 соответствуют условию OC и ПК.