Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Invalid
-
Version 2.4
-
None
Description
I have following SOAP request.
<soapenv:Envelope xmlns:ns="http://schemas.qqq.com/wsdl/spi/profile/1.0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<ns:getRights>
<ns:customerCredential xsi:type="ns:CustomerCredentialMsisdn">
<ns:msisdn>420123456789</ns:msisdn>
</ns:customerCredential>
</ns:getRights>
</soapenv:Body>
</soapenv:Envelope>
I only need to bind the payload:
<ns:getRights>
<ns:customerCredential xsi:type="ns:CustomerCredentialMsisdn">
<ns:msisdn>420123456789</ns:msisdn>
</ns:customerCredential>
</ns:getRights>
Please note that namespace prefix ns is not defined. Usually this is not a problem since in DOM namespaces are already resolved. There is one exception - attribute value. When XmlBeans try to unmarshall the element, they are not able to resolve the namespace and do not work correctly.
If following request is used (the only difference is position of ns prefix declaration) everything works fine
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<ns:getRights xmlns:ns="http://schemas.qqq.com/wsdl/spi/profile/1.0">
<ns:customerCredential xsi:type="ns:CustomerCredentialMsisdn">
<ns:msisdn>420123456789</ns:msisdn>
</ns:customerCredential>
</ns:getRights>
</soapenv:Body>
</soapenv:Envelope>