[Fedora-suds-list] ArrayOf_xsd_string not working as expected

Steffen Steidten steffen at steidten.de
Thu Sep 4 18:10:43 UTC 2008


Jeff,

Thanks for your quick reply. The WSDL is attached (or see the last part
of my first mail if it dowsn't work).

The ArrayOf_xsd_string  instance with the string array ["", "-A"] as
parameter seems to look good, as the following log shows (sorry, it's a
bit lengthy). It seems like the string array cannot be resolved properly.

Regards, Steffen


The log output comes here:

>>> in0.value = ["", "-A"]
>>> clt.service.generateEvent(in0)
1220458189.508:10:marshaller:process:processing:
(Content){
   tag = "in0"
   value =
      (ArrayOf_xsd_string){
         value[] =
            "",
            "-A",
      }
   type = <Complex:0xf531e8 name="ArrayOf_xsd_string" />
 }
1220458189.508:10:marshaller:encode:encoding name=(ArrayOf_xsd_string)
1220458189.508:10:marshaller:node:created - node:
<in0 xmlns:intf="urn:WMSClientAdapter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:typ
e="intf:ArrayOf_xsd_string"/>
1220458189.508:10:marshaller:append:appending parent:
<in0 xmlns:intf="urn:WMSClientAdapter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:typ
e="intf:ArrayOf_xsd_string"/>
content:
(Content){
   tag = "in0"
   value =
      (ArrayOf_xsd_string){
         value[] =
            "",
            "-A",
      }
   type = <Complex:0xf531e8 name="ArrayOf_xsd_string" />
 }
1220458189.508:10:marshaller:__metatype:type (ArrayOf_xsd_string) found
in metadata
1220458189.524:10:marshaller:start:starting content of type:
<Complex:0xf531e8 name="ArrayOf_xsd_str
ing" />
(Content){
   tag = "in0"
   value =
      (ArrayOf_xsd_string){
         value[] =
            "",
            "-A",
      }
   type = <Complex:0xf531e8 name="ArrayOf_xsd_string" />
 }
1220458189.524:10:marshaller:__metatype:type (ArrayOf_xsd_string) found
in metadata
1220458189.524:10:marshaller:encode:encoding name=(ArrayOf_xsd_string)
1220458189.524:10:marshaller:node:created - node:
<in0 xmlns:intf="urn:WMSClientAdapter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:typ
e="intf:ArrayOf_xsd_string"/>
1220458189.524:10:marshaller:append:appending parent:
<in0 xsi:type="intf:ArrayOf_xsd_string"/>
content:
(Content){
   tag = "value"
   value[] =
      "",
      "-A",
   type = None
 }
1220458189.524:10:marshaller:start:starting content of type: None
(Content){
   tag = "value"
   value[] =
      "",
      "-A",
   type = None
 }
1220458189.524:40:resolver:__find:(value) not-found
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "U:\Util\Python25\lib\site-packages\suds\client.py", line
187, in __call__
    result = self.client.invoke(self, args, kwargs)
  File "U:\Util\Python25\lib\site-packages\suds\client.py", line
297, in invoke
    msg = binding.get_message(method.name, args, soapheaders)
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\binding.py",
line 77, in get_message
    p = self.param(method_name, pdef, arg)
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\binding.py",
line 155, in param
    return marshaller.process(pdef[0], object, pdef[1])
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
line 503, in process
    result = MBase.process(self, content)
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
line 364, in process
    self.append(root, content)
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
line 382, in append
    self.appender.append(parent, content)
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
line 121, in append
    appender.append(parent, content)
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
line 284, in append
    Appender.append(self, child, cont)
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
line 182, in append
    self.marshaller.append(parent, content)
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
line 381, in append
    if self.start(content):
  File
"U:\Util\Python25\lib\site-packages\suds\bindings\marshaller.py",
line 533, in start
    raise TypeNotFound(content.tag)
suds.TypeNotFound: Type not found: 'value'




Am 4.9.2008 schrieb "Jeff Ortel" <jortel at redhat.com>:

>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
>
>_______________________________________________
>fedora-suds-list mailing list
>fedora-suds-list at redhat.com
>https://www.redhat.com/mailman/listinfo/fedora-suds-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wmsservice.xml
Type: text/xml
Size: 2481 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/fedora-suds-list/attachments/20080904/d81d4181/attachment.xml>


More information about the fedora-suds-list mailing list