[Fedora-suds-list] names/type confusion on nested elements
Tim Butler
tim at itldo.org
Fri Oct 24 22:26:31 UTC 2008
I'm having a problem which, with my limited knowledge
of xml schema and soap, appears that suds is confusing
deeply nested element names with types. For all I know,
they should be equivalent and interchangeable, but my
Axis SOAP server says not.
WSDL snippet:
<schema targetNamespace="http://testme/model"
xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="ManagedEntityKey">
<sequence />
</complexType>
<complexType name="TestKey">
<complexContent>
<extension base="tns1:ManagedEntityKey">
<sequence>
<element name="testId" nillable="true"
type="xsd:string" />
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
Marshalled request:
<SOAP-ENV:Envelope xmlns:intf="http://testme/intf" xmlns:SOAP-ENC="http://schema
s.xmlsoap.org/soap/encoding/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:
tns1="http://testme/model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<intf:retrieve>
<in0 xsi:type="xs:string">NAME</in0>
<in1 xsi:type="tns1:TestKey">
<testId xsi:type="tns1:testId">TEST</testId>
</in1>
</intf:retrieve>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Axis server gags with error:
<faultstring>
org.xml.sax.SAXException: No deserializer for {.../model}testId</faultstring>
But if I replace the type tns1:testId with xs:string in the raw request,
then the request succeeds using:
<in1 xsi:type="tns1:TestKey">
<testId xsi:type="xs:string">TEST</testId>
</in1>
instead of:
<in1 xsi:type="tns1:TestKey">
<testId xsi:type="tns1:testId">TEST</testId>
</in1>
I can provide the files to reproduce this if it is considered a suds defect.
Otherwise I suppose it is an axis defect if axis cannot recognize some equivalence
of tns1:testId to xs:string. If it is an axis defect then I need a suds hook
(which I have already desperately implemented) so I can
workaround the problem and substitute 'type' attributes on the raw request text or document.
Thanks
By the way, the current subversion release is parsing multiRefs from our Axis server
** THANK YOU **.
-tim
More information about the suds
mailing list