Неправильное SOAP-сообщение, сгенерированное классом из WSDL.exe - PullRequest
1 голос
/ 21 февраля 2012

У меня есть два 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 и, что более важно, как я могу это исправить?

...