如何在没有XSD的情况下返回SOAP消息

时间:2018-10-18 19:49:01

标签: web-services soap

我有这个soap-WS客户端,它期望得到响应,但是他们不会给我XSD,只有期望的XML响应。 我已经尝试了许多页面来从中提取模式,但是multiref元素给了我一个不可能的时间。

他们还坚持要求响应必须具有精确的前缀,例如 soapenv 而不是大写的 S ,我不能从服务端进行控制。

他们期望的响应是:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Body>
         <ns1:doChargeResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                xmlns:ns1="http://ws.srs.sm.com">
                <doChargeReturn href="#id0" />
         </ns1:doChargeResponse>
         <multiRef id="id0" soapenc:root="0"
                soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">3</multiRef>
   </soapenv:Body>

我能给出的最接近的响应是:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns8:doChargeResponse xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns1="http://gwsservices.ib.sdp.huawei.com" xmlns:ns4="http://request.gwsservices.ib.sdp.huawei.com" xmlns:ns3="http://schema.ib.sdp.huawei.com" xmlns:ns0="http://telecomservices.ib.sdp.huawei.com" xmlns:ns5="http://response.telecomservices.ib.sdp.huawei.com" xmlns:ns6="http://request.telecomservices.ib.sdp.huawei.com" xmlns:ns7="http://response.gwsservices.ib.sdp.huawei.com" xmlns:ns8="http://ws.srs.sm.com">
         <doChargeReturn/>
         <ns7:multiRef>2001</ns7:multiRef>
      </ns8:doChargeResponse>
   </S:Body>
</S:Envelope>

但是对于他们来说是不可接受的。

如何在没有XSD的情况下使用JAXB创建POJO?

谢谢。

0 个答案:

没有答案