2017-05-22 40 views
1

我为Web服务调用和响应创建了一个实例。Orbeon将实例数据发送到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> 

的提交函数调用像这样创建的服务:

<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参数中,我想获取fr-form-instance的“XML”数据。例如,实例是“X”,我只获取X,而不是XML中的整个“实例”。

这是否可能?你能指导我走向正确的方向吗?

回答

1

发现了如何;)我只是用 “撒克逊人” 写道:

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