2012-06-04 2 views
-2

отрывок из XML:SoapUI и ожидаемые результаты в выражении XQuery

<ns4:Meldingen>       
      <ns4:MeldingKey> 
       <ns4:Nummer></ns4:Nummer> 
       <ns4:Locale></ns4:Locale> 
       <ns4:Kanaal></ns4:Kanaal> 
       <ns4:Severity>Error</ns4:Severity> 
       <ns4:Argumenten> 
        <ns4:Argument></ns4:Argument> 
       </ns4:Argumenten> 
       <ns4:Module></ns4:Module> 
       <ns4:Routine></ns4:Routine> 
      </ns4:MeldingKey> 
    </ns4:Meldingen> 

XQuery скрипт для возвращения данных:

<Result> 
{ 
    for $x in //Meldingen/MeldingKey 
    return<Severity>{data($x/Severity/text())}</Severity> 
} 
</Result> 

Мои ожидаемых результатов более чем один матч:

<Result> 
    <Severity>Succes</Severity> 
    </Result> 

    <Result> 
    <Severity>SuccesWithErrors</Severity> 
    </Result> 

Проблема, с которой я столкнулся, заключается в том, что XQuery может одновременно возвращать одно значение серьезности. Возможно ли в soapui утверждать на 2 возможных степенях. Поэтому, если XQuery возвращает Succes или SuccesWithErrors, чем ожидалось, иначе это не сработает.

+1

Что вы хотите сказать? каковы были ваши предыдущие результаты с вашим xquery? – smerlin

+0

Все еще не уверен, что вопрос здесь, на который можно ответить. Вы имеете в виду, что хотите определить, будет ли какой-либо из этих фрагментов согласован? Если да, то что вы хотите вернуть? –

+1

Наиболее очевидной проблемой здесь, кстати, является то, что вы проверяете 'for $ z в Meldingen/MeldingKey/Severity/text()', но, возможно, должны быть итерации над 'for $ z в ns4: Meldingen/ns4: MeldingKey/ns4: Severity/text() '(если только ваш процессор XQuery неявно преобразует его в' *: Meldingen/*: MeldingKey/*: Severity/text() '... какие старые версии BaseX сделали, но новые не). –

ответ

0

Решение для меня является то, что я изменил сценарий XQuery, который возвращает общий результат:

<Result> 
{ 
for $x in //Meldingen/MeldingKey 
where $x/Severity/text()='Succes' or $x/Severity/text()='SuccesWithErrors' 
return<Severity>Succes or SuccesWithErrors as result</Severity> 

} 
</Result> 

и мой ожидаемый результат:

<Result> 
     <Severity>Succes or SuccesWithErrors as result</Severity> 
    </Result> 

Если есть совпадение, чем огни пойти зелёным, и я точно знаю, что серьезность - одно из двух ожиданий. Если XQuery возвращает что-то еще, нет совпадения, и свет загорается красным.

Смежные вопросы