<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Times New Roman; font-size: 12pt; color: #000000'>We are currently experiencing an issue with python Suds plugin, where the wsdl from a webservice is not being correctly interpreted to construct the XML request submission. The WSDL and expected XML are simple enough.<br><div style="font-family: Times New Roman; font-size: 12pt; color: rgb(0, 0, 0);"><div style="font-family: Times New Roman; font-size: 12pt; color: rgb(0, 0, 0);"><div style="font-family: Times New Roman; font-size: 12pt; color: rgb(0, 0, 0);"><span><br>We are running python 2.7, suds 0.4 on Centos kernel 2.6.18-194.11.1.el5<br><br>The issue seems to be that we have a <xsd:sequence> which defines a <xsd:choice> of 2 elements then a single <xsd:element>. This sequence tag seems to create an additional parent element around its child elements, so the XML result is not valid according to the WSDL.<br><br>The XML output we get is: <br><br><ns0:ProcessOrdersRequest><br> <ns0:profileNote0> <!-- UNDEFINED IN WSDL --><br> <ns0:MarkOrdersPacked><br> <ns0:carrierDetails><br> <ns0:orderId>100</ns0:orderId><br> <ns0:carrier>Carrier1</ns0:carrier><br> <ns0:conNote>123456</ns0:conNote><br> </ns0:carrierDetails><br> </ns0:MarkOrdersPacked><br> <ns0:profileNote0><br> <ns0:note>Nevada Ship Verification process</ns0:note><br> <ns0:noteType>Internal</ns0:noteType><br> </ns0:profileNote0><br> </ns0:profileNote0></span><span id="15ef26ab-8d42-440a-8e0d-97ea5e173a4d"> <!-- UNDEFINED IN WSDL --><br>
</span><span id="15ef26ab-8d42-440a-8e0d-97ea5e173a4d"> </ns0:ProcessOrdersRequest><br><br></span><span id="15ef26ab-8d42-440a-8e0d-97ea5e173a4d"><br>This is not consistent with the object output</span><span id="15ef26ab-8d42-440a-8e0d-97ea5e173a4d"> from the client factory:<br>
<br>(ProcessOrdersRequest){<br>
MarkOrdersPacked = <br>
(MarkOrdersPacked){<br>
carrierDetails[] = <br>
(CarrierDetails){<br>
orderId = "100"<br>
carrier = "Carrier1"<br>
conNote = "123456"<br>
},<br>
}<br>
profileNote0 = <br>
(ProfileNoteInputType0){<br>
note = "Nevada Ship Verification process"<br>
noteType = "Internal"<br>
}<br>
}<br>
<br><br></span><span id="15ef26ab-8d42-440a-8e0d-97ea5e173a4d">The WSDL request element is defined as:<br><br> <xsd:element name="ProcessOrdersRequest"><br> <xsd:complexType><br> <xsd:sequence><br> <xsd:choice><br> <!-- Mark Orders Packed --><br> <xsd:element maxOccurs="1" minOccurs="1" name="MarkOrdersPacked" type="tns:MarkOrdersPacked"/><br> <!-- AnotherRequest --><br> <xsd:element maxOccurs="1" minOccurs="1" name="AnotherRequest" type="tns:AnotherRequest"/><br> </xsd:choice><br> <xsd:element maxOccurs="1" minOccurs="0" name="profileNote0" type="tns:ProfileNoteInputType0"/><br> </xsd:sequence><br> </xsd:complexType><br> </xsd:element><br><br><br>Therefore we expect the XML to be:<br><br> <ns0:ProcessOrdersRequest><br> <ns0:MarkOrdersPacked><br> <ns0:carrierDetails><br> <ns0:orderId>100</ns0:orderId><br> <ns0:carrier>Carrier1</ns0:carrier><br> <ns0:conNote>123456</ns0:conNote><br> </ns0:carrierDetails><br> </ns0:MarkOrdersPacked><br></span><span id="15ef26ab-8d42-440a-8e0d-97ea5e173a4d"> <ns0:profileNote><br> <ns0:note>Nevada Ship Verification process</ns0:note><br> <ns0:noteType>Internal</ns0:noteType><br> </ns0:profileNote><br></span><span id="15ef26ab-8d42-440a-8e0d-97ea5e173a4d"> </ns0:ProcessOrdersRequest><br> </ns1:Body><br></SOAP-ENV:Envelope><br><br></span><span id="15ef26ab-8d42-440a-8e0d-97ea5e173a4d">We have tested the wsdl against SoapUI from eviware.com as well as created a java client using jaxb which both interpret the wsdl and create an XMLrequest exactly as expected so I dont expect that there is an issue with the wsdl definition at all.<br><br>Attached is the complete wsdl, XML output and python app.<br><br>Any help appreciated.</span><span><br><br>Cheers,<br>David<br></span></div></div></div></div></body></html>