Hi all,

I'm trying to use suds to consume a WSDL and use a vendor's service. I've found that things work pretty well unless I need to get a complex argument as a response. The WSDL defines a type ArrayOfInt as follows:

<complexType name="ArrayOfInt">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="soapenc:int[]" />
</restriction>
</complexContent>
</complexType>

A typical request/response using ArrayOfInt might look something like this:

>>> client.service.getUserDeviceList(test_settings.username, test_settings.password, 41768)
83133

Here's the raw XML from that response:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getUserDeviceListResponse xmlns="https://www.roamsecure.net/Roamalert">
<s-gensym3 xsi:type="xsd:int">83133</s-gensym3>
<s-gensym5 xsi:type="xsd:int">83134</sgensym5>
</getUserDeviceListResponse>
</soap:Body>
</soap:Envelope>

The trouble I'm having is that suds is failing to convert this response into an ArrayOfInt. It only gives me the first number - e.g. 83133. And the type of the result, per suds, is 'int', so it's not like it's creating an ArrayOfInt with only 1 element.

Is there something I should be doing to get an ArrayOfInt out of this response?

Thanks.

--
Jeremy Boyd
c: (512) 586-4587