0

XQuery マッピングに問題があります。エラーは次のようになります。

XML の分析中にエラーが発生しました: {err}FORG0005: 1 つのアイテムが予期されていましたが、0 アイテムを取得しました。

これは私が受け取った応答文書です:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header xmlns:cgi="http://tempuri.org/Servicios/CGI"/>
  <soap:Body xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <GetConsumosResponse xmlns="http://tempuri.org/Servicios/CGI">
      <GetConsumosResult>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
          <NewDataSet xmlns="">
            <Consumos diffgr:id="Consumos1" msdata:rowOrder="0">
              ...
            </Consumos>
          ...
          </NewDataSet>
        </diffgr:diffgram>
      </GetConsumosResult>
    </GetConsumosResponse>
  </soap:Body>
</soapenv:Envelope>

私のOSBコンソールには、次のバインディングがあります...

Replace [ entire node ] of [ . ] 
in [ getConsumosResponse ] with [ XQuery Resource... ]

XQuery リソース:OSBSettlementProxy/XQuery/NGCombustibleXQResponse

変数名とバインディング:

newDataSet1: $getConsumosResponse/GetConsumosResponse/GetConsumosResult/diffgr:diffgram/NewDataSet

私はすでにdiffgr自分の名前空間で を定義しているので、それが問題ではないことはわかっています...

4

1 に答える 1

3

GetConsumosResponseのように見えGetConsumosResult、デフォルトの名前空間にありますhttp://tempuri.org/Servicios/CGI。ただし、パス式はこの名前空間を使用していないようです。新しい名前空間定義を追加して"cgi"="http://tempuri.org/Servicios/CGI"から、パスを次のように変更してみてください。

$getConsumosResponse/cgi:GetConsumosResponse/cgi:GetConsumosResult/diffgr:diffgram/NewDataSet
于 2014-02-06T22:48:11.973 に答える