[Fedora-suds-list] How to set SOAP-ENC:arrayType

Bill Watts bwatts at modeln.com
Thu Nov 19 02:18:58 UTC 2009


Hi,

 

                I have been using suds for about a week now, and I am
very impressed with the capabilities and ease of use of this API.
Outstanding work!

 

                I am using suds to work with a fairly complex WSDL, and
have almost everything working, with the exception of the arrayType
encoding. I downloaded and installed the beta of 0.3.8 because I saw a
posting stating that the beta supports setting the arrayType. After
spending a couple of hours grepping through the code and trying
different things, I am still unable to determine how to set the
arrayType.

 

                I can make successful requests using SoapUi, and the
section I am trying to generate looks like this:

 

<item xsi:type="bus:parameterValue">

                                <name
xsi:type="xsd:string">owner_id</name>

                                <value xsi:type="soapenc:Array"
soapenc:arrayType="bus:parmValueItem[]">

                                                <item
xsi:type="bus:simpleParmValueItem">

                                                                 <use
xsi:type="xsd:string">321</use>

                                                </item>

                                </value>

                </item>

 

                The API is generating:

 

                <item xsi:type="ns0:parameterValue">

                                 <ns0:name
xsi:type="ns2:string">owner_id</ns0:name>

                                 <ns0:value xsi:type="SOAP-ENC:Array">

                                                <item
xsi:type="ns0:simpleParmValueItem">

 
<ns0:inclusive xsi:type="ns2:boolean"/>

 
<ns0:display xsi:type="ns2:string"/>

                                                                <ns0:use
xsi:type="ns2:string">321</ns0:use>

                                                </item>

                                </ns0:value>

                </item>

 

                Here is my code:

 

                def createParameter(client, name, value):

                                item =
client.factory.create('parameterValue')

 item.name = name

 item.value = client.factory.create('SOAP-ENC:Array')

 spvi = client.factory.create('simpleParmValueItem')

 spvi.use = value

 item.value.item = [spvi]

 

                The WSDL is almost 1MB, so I won't include it here. Any
help is very much appreciated.

 

Thanks,

 

-Bill

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.fedoraproject.org/pipermail/suds/attachments/20091118/f7d14fce/attachment.html 


More information about the suds mailing list