我问过几乎相似的问题,但更详细......很抱歉重复。 我需要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>
如何创建包含两个根元素authData
和rocessRequestData
而非一个根元素的信封体?可能吗?
谢谢你的帮忙。
答案 0 :(得分:1)
很快:这是不可能的。
最后,<soapenv:Body>
被提取为顶级XML文档。这就是为什么它被称为payload
。
顶级文档只能有一个根元素。
不是Spring WS的限制。这就是SOAP如何独立于平台工作。