Orbeon将实例数据发送到Web服务

时间:2017-05-22 07:45:53

标签: web-services orbeon xforms

我为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中。

这甚至可以吗?你能指导我走向正确的方向吗?

1 个答案:

答案 0 :(得分:1)

发现如何;)我刚刚使用了&#34; saxon&#34;并写道:

<xf:setvalue
    ref="instance('ws-request-instance-get')//formData"
    value="saxon:serialize(instance('fr-form-instance'), 'xml')"/>