Issue with SOAP response XML format for Array Types with AWS


#1

Hi All,

There is an issue with AWS in SOAP response XML generated for Array
types.

If we are using array types in signature at returns place, then in
SOAP response XML for this method array elements are represented with
tags.

How can we give another meaningful tag name or give attribute (that
uniquely identify the tag) to the tags instead of tag in the
response XML ??

Take below thing in consideration.

API signature for seach_products.

api_method :search_products,
:expects => [:string], // expects string input.
:returns => [[Product]] // returns array of strings.

Product Structure Class

class Product< ActionWebService::Struct
member :id, :integer
member :name, :string
end

Response XML Output.

<?xml version="1.0" encoding="UTF-8" ?>

<env:Envelope xmlns:xsd=“http://www.w3.org/2001/XMLSchema
xmlns:env=“http://schemas.xmlsoap.org/soap/envelope/
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
env:Body
<n1:SearchProductsResponse xmlns:n1=“urn:ActionWebService”
env:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”>


data 1-1
data 1-2


data 2-1
data 2-2


</n1:SearchProductsResponse >
</env:Body>
</env:Envelope>


Looking at the format of the XML it seems that AWS is using RPC
encoding style for WSDL and SOAP request and responses.

So taking above situation in consideration if we need to get
tag instead of tags in the SOAP response XML then how can we do
that ??

Thanks,
Piyush.