我为Web服务调用和响应创建了一个实例。
<xf:instance id="ws-request-instance">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.estat.zzi.si/">
<soapenv:Header/>
<soapenv:Body>
<ws:orbeonGet>
<dokumentId/>
<type/>
<formData/>
</ws:orbeonGet>
</soapenv:Body>
</soapenv:Envelope>
</xf:instance>
<xf:instance id="ws-response-instance">
<soapenv:Envelope>
</soapenv:Envelope>
</xf:instance>
submit函数调用创建的服务:
<xf:submission id="submit" action="http://was7test.zzi.si:8081/EStat-RO-WS-91-XX/orbeon" method="post" ref="instance('ws-request-instance')" replace="instance" mediatype="application/soap+xml" instance="ws-response-instance">
<xf:message ev:event="xforms-submit-done" level="modal">Done Result:<xf:output value="instance('ws-response-instance')"/>
<xf:output value="event('error-type')"/>; Status: <xf:output value="event('response-status-code')"/>; URI: <xf:output value="event('resource-uri')"/>; Headers: <xf:output value="event('response-headers')"/>; Body: <xf:output value="event('response-body')"/>
</xf:message>
<xf:message ev:event="xforms-submit-error" level="modal">
A submission error occurred: <xf:output value="event('error-type')"/>; Status: <xf:output value="event('response-status-code')"/>; URI: <xf:output value="event('resource-uri')"/>; Headers: <xf:output value="event('response-headers')"/>; Body: <xf:output value="event('response-body')"/>
</xf:message>
</xf:submission>
单击提交按钮时,我们会将参数填写到Web服务调用中,如下所示:
<xf:action ev:event="submit-form">
<xf:setvalue ref="instance('ws-request-instance')//type" value="xxf:get-request-parameter('type')"/>
<xf:setvalue ref="instance('ws-request-instance')//dokumentId" value="xxf:get-request-parameter('documentId')"/>
<xf:setvalue ref="instance('ws-request-instance')//formData" value="instance('fr-form-instance')"/>
<xf:send submission="submit"/>
</xf:action>
在formData参数中,我想得到&#34; XML&#34; fr-form-instance的数据。例如,实例是&#34; X&#34;,我只得到X,而不是整个&#34;实例&#34;在XML中。
这甚至可以吗?你能指导我走向正确的方向吗?
答案 0 :(得分:1)
发现如何;)我刚刚使用了&#34; saxon&#34;并写道:
<xf:setvalue
ref="instance('ws-request-instance-get')//formData"
value="saxon:serialize(instance('fr-form-instance'), 'xml')"/>