У меня есть два SOAP-запроса, один из которых работает, а другой нет. Второй создается классом, сгенерированным непосредственно из WSDL, и кажется, что он неправильный.
Рабочая
Создано soapUI 4.0.1 из файла WSDL
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
<soapenv:Header/>
<soapenv:Body>
<urn:ZWmGetEpc>
<IpLgnum>XYZ</IpLgnum>
</urn:ZWmGetEpc>
</soapenv:Body>
</soapenv:Envelope>
Не работает
Создан непосредственно из кода с классом, сгенерированным wsdl.exe
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ZWmGetEpc xmlns="urn:sap-com:document:sap:soap:functions:mc-style">
<IpLgnum>XYZ</IpLgnum>
</ZWmGetEpc>
</soap:Body>
</soap:Envelope>
Ошибка в SOAP
Я определил ошибку во втором сообщении SOAP: пространство имен urn:sap-com:document:sap:soap:functions:mc-style
как-то неправильно назначено элементу ZWmGetEpc
. Должно быть:
<urn:ZWmGetEpc
xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
<IpLgnum>FIR</IpLgnum>
</urn:ZWmGetEpc>
Вопрос
Теперь, почему класс генерирует неправильное сообщение SOAP и, что более важно, как я могу это исправить?