[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