0

XQuery を使用して着信メッセージを変換するプロキシ サービスを WSO2 ESB に定義しました (サンプル 390に従います)。

問題は、ESBpayloadが として定義されている変数を、 として定義されELEMENTている XQuery vairable に変換することですdocument-node()elementしかし、私の XQuery は()のみを受け入れます。

declare variable $payload as element(ns:payload) external;

XQuery への入力がelement.

私は試した :

<xquery key="xquery-key-req">
<variable xmlns:nms="http://my.nms.com" name="payload" expression="$body/nms:payload" type="ELEMENT" />
</xquery>

しかし、これは次のエラーを返します。

Required item type of first argument of xf:xqueryRequest() is element({http://my.nms.com}payload); supplied value has item type document-node(element({http://my.nms.com}payload)) 
4

1 に答える 1

2

ドキュメントノードを期待するようにクエリを変更するか、要素を提供するようにクエリのクライアントを変更する必要があります。ESBがわからないので、そこで変更を加える方法がわかりませんが、クエリの変更は簡単です。

declare variable $payloadDoc as document-node(element(ns:payload)) external;
declare variable $payload as element(ns:payload) := $payloadDoc/ns:payload;
于 2012-06-01T08:05:59.247 に答える