[Fedora-suds-list] ArrayOf_xsd_string not working as expected
Jeff Ortel
jortel at redhat.com
Thu Sep 4 00:47:28 UTC 2008
Hey Steffen,
Thanks for your interest in suds. One thing you might want to try is to
print ArrayOf_xsd_string after it is created to see what its structure
looks like. Based on the error, 'value' doesn't seem match the schema.
Also, if you can include a copy or public link to your wsdl, I can be
much more helpful.
Regards,
Jeff
Steffen Steidten wrote:
> Hallo,
>
> I'm having trouble to generate a service method's input consisting of
> an array of strings. WSDL file see below, it works fine with ZSI.
> What's wrong with my input variable? Is there a missing feature in suds,
> I have to wait for?
>
>
> Regards,
> Steffen
>
>
>
> The code is:
> from suds.client import Client
> clt = Client("file:///wmsservice.xml")
> print clt
>
> The output indicates a correctly handled wsdl file:
>
> suds
> version=0.2.8
> service (WMSClientService)
> prefixes:
> ns0 = "urn:WMSClientAdapter"
> methods (1):
> generateEvent(ArrayOf_xsd_string in0, )
> types (1):
> ArrayOf_xsd_string
>
>
> When sending the request
> in0 = clt.factory.create("ArrayOf_xsd_string")
> in0.value = ["x", "-A"]
> clt.service.generateEvent(in0)
>
> the following error is returned:
> ERROR:suds.resolver:(value) not-found
> Traceback (most recent call last):
> File "testsuds.py", line 12, in <module>
> clt.service.generateEvent(in0)
> File "C:\Util\Python25\lib\site-packages\suds\client.py", line
> 187, in __call__
> result = self.client.invoke(self, args, kwargs)
> File "C:\Util\Python25\lib\site-packages\suds\client.py", line
> 297, in invoke
> msg = binding.get_message(method.name, args, soapheaders)
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\binding.py",
> line 77, in get_message
> p = self.param(method_name, pdef, arg)
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\binding.py",
> line 155, in param
> return marshaller.process(pdef[0], object, pdef[1])
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
> line 505, in process
> result = MBase.process(self, content)
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
> line 366, in process
> self.append(root, content)
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
> line 384, in append
> self.appender.append(parent, content)
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
> line 123, in append
> appender.append(parent, content)
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
> line 286, in append
> Appender.append(self, child, cont)
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
> line 184, in append
> self.marshaller.append(parent, content)
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
> line 383, in append
> if self.start(content):
> File
> "C:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
> line 535, in start
> raise TypeNotFound(content.tag)
> suds.TypeNotFound: Type not found: 'value'
>
>
> --------------- wmsservice.xml -------------------------------
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="urn:WMSClientAdapter"
> xmlns:impl="urn:WMSClientAdapter" xmlns:intf="urn:WMSClientAdapter"
> xmlns:apachesoap="http://xml.apache.org/xml-soap"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns="http://schemas.xmlsoap.org/wsdl/">
> <wsdl:types>
> <schema xmlns="http://www.w3.org/2001/XMLSchema"
> targetNamespace="urn:WMSClientAdapter">
> <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
> <complexType name="ArrayOf_xsd_string">
> <complexContent>
> <restriction base="soapenc:Array">
> <attribute ref="soapenc:arrayType"
> wsdl:arrayType="xsd:string[]"/>
> </restriction>
> </complexContent>
> </complexType>
> </schema>
> </wsdl:types>
>
> <wsdl:message name="generateEventResponse">
>
> </wsdl:message>
>
> <wsdl:message name="generateEventRequest">
>
> <wsdl:part name="in0" type="impl:ArrayOf_xsd_string"/>
>
> </wsdl:message>
>
> <wsdl:portType name="WMSClient">
>
> <wsdl:operation name="generateEvent" parameterOrder="in0">
>
> <wsdl:input name="generateEventRequest"
> message="impl:generateEventRequest"/>
>
> <wsdl:output name="generateEventResponse"
> message="impl:generateEventResponse"/>
>
> </wsdl:operation>
>
> </wsdl:portType>
>
> <wsdl:binding name="WMSClientSoapBinding" type="impl:WMSClient">
>
> <wsdlsoap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>
> <wsdl:operation name="generateEvent">
>
> <wsdlsoap:operation soapAction=""/>
>
> <wsdl:input name="generateEventRequest">
>
> <wsdlsoap:body use="encoded"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:WMSClientAdapter"/>
>
> </wsdl:input>
>
> <wsdl:output name="generateEventResponse">
>
> <wsdlsoap:body use="encoded"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="urn:WMSClientAdapter"/>
>
> </wsdl:output>
>
> </wsdl:operation>
>
> </wsdl:binding>
>
> <wsdl:service name="WMSClientService">
>
> <wsdl:port name="WMSClient" binding="impl:WMSClientSoapBinding">
>
> <wsdlsoap:address
> location="http://localhost:7070/wmsWebService/services/WMSClient"/>
>
> </wsdl:port>
>
> </wsdl:service>
>
> </wsdl:definitions>
>
> _______________________________________________
> fedora-suds-list mailing list
> fedora-suds-list at redhat.com
> https://www.redhat.com/mailman/listinfo/fedora-suds-list
More information about the fedora-suds-list
mailing list