У меня есть требование, согласно которому я должен проверять входящие данные на соответствие данным, представленным в константе.xml.
Скажем, ниже мой постоянный файл:
<Constant>
<data>
<Nation>India</Nation>
<EndPointURL>customers/{$custID}/Resource</EndPointURL>
</data>
<data>
<Nation>China</Nation>
<EndPointURL>customers/{$custID}/Resource</EndPointURL>
</data>
<data>
<Nation>Russia</Nation>
<EndPointURL>customers/Resource</EndPointURL>
</data>
</Constant>
и $body выглядит следующим образом:
<body>
<custID>1234</custID>
<Country>India</Country>
<ServiceURL>customers/1234/Resource</ServiceURL>
</body>
Здесь я должен проверить, что если $body/ServiceURL = $Constant/data/EndPointURL.
И кардинальность данных (1...бесконечность).
Это способ, которым я могу изменить исходный CustID из ввода fr4om и выполнить проверку с клиентами/{$custID}/Resource.
В настоящее время я использую приведенный ниже код для проверки.
let $ServiceURL :=$body/ServiceURL/text()
let $country :=$body/Country/text()
for $service in ($Constant/data) where
($service/Nation/text() = $Country)
and ($service/EndPointURL/text() = $ServiceURL)
return
<ServiceURL>{fn:concat('/REALTime/',$service/EndPointURL/text())}</ServiceURL>
};
Пожалуйста, дайте мне знать, как я могу изменить данные константы.xml в xquery