如何在Spring-WS webservice信封的主体中添加多个根元素?

时间:2016-01-12 11:37:02

标签: spring spring-ws

我问过几乎相似的问题,但更详细......很抱歉重复。 我需要Spring-ws web服务操作,它在body中有两个根元素,如:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pow="http://comp.com">
   <soapenv:Header/>
   <soapenv:Body>
         <pow:authData>
         <!-- elements -->
         </pow:authData>
         <pow:processRequestData>
         <!-- elements -->
         </pow:processRequestData>
   </soapenv:Body>
</soapenv:Envelope> 

但Spring-ws总是生成(来自xsd)信封只有一个根元素,其中包括另外两个:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pow="http://comp.com">
   <soapenv:Header/>
   <soapenv:Body>
      <pow:processRequestRequest>
         <pow:authData>
         <!-- elements -->
         </pow:authData>
         <pow:processRequestData>
         <!-- elements -->
         </pow:processRequestData>
      </pow:processRequestRequest>
   </soapenv:Body>
</soapenv:Envelope> 

如何创建包含两个根元素authDatarocessRequestData而非一个根元素的信封体?可能吗? 谢谢你的帮忙。

1 个答案:

答案 0 :(得分:1)

很快:这是不可能的。

最后,<soapenv:Body>被提取为顶级XML文档。这就是为什么它被称为payload

顶级文档只能有一个根元素。

不是Spring WS的限制。这就是SOAP如何独立于平台工作。