我有这个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?
谢谢。