Re: Multidimensionality in SOAPLite

Eric Amick <[email protected]> Mon, 14 Jul 2003 15:46:58 -0400
Newsgroups gmane.comp.windows.devel.soap.general
Organization Are you serious?
Message-ID <[email protected]>
On Mon, 14 Jul 2003 15:00:06 -0400, you wrote:

>Hi Eric,
>        It didn't work (didn't change the format of the message at all),
>then I tried
>
>@attributes= SOAP::Data->type("SOAP-ENC:Array" => "First Name", "Middle
>Name", "Last Name")->name('arg0');
>
>and it still didn't work because the message is now:
>
><?xml version="1.0" encoding="UTF-8"?>
>   <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
>xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>xmlns:xsd="http://www.w3.org/1999/XMLSchema"
>SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
>      <SOAP-ENV:Body>
>         <namesp1:getPersonData xmlns:namesp1="myService">
>            <SOAP-ENC:Array xsi:type="SOAP-ENC:Array"
>SOAP-ENC:arrayType="xsd:string[3]">
>               <arg0 xsi:type="xsd:string">First Name</arg0>
>               <arg0 xsi:type="xsd:string">Middle Name</arg0>
>               <arg0 xsi:type="xsd:string">Last Name</arg0>
>            </SOAP-ENC:Array>
>            <SOAP-ENC:Array xsi:type="SOAP-ENC:Array"
>SOAP-ENC:arrayType="xsd:string[1]">
>               <item xsi:type="xsd:string"/>
>            </SOAP-ENC:Array>
>            <SOAP-ENC:Array xsi:type="SOAP-ENC:Array"
>SOAP-ENC:arrayType="xsd:string[1]">
>               <item xsi:type="xsd:string">myApplication</item>
>            </SOAP-ENC:Array>
>         </namesp1:getPersonData>
>      </SOAP-ENV:Body>
>   </SOAP-ENV:Envelope>

You're changing the type and name in the wrong place; you're changing
the information for the array elements instead of the whole array.  

One other suggestion I have is to make the arguments

SOAP::Data->type(arg0 => \@arrayname)

but this is a real long shot.

I'm beginning to think you might have to override the array encoding in
SOAP:Serializer, which is getting out of my league; read the man pages.
Could you also post the code you tried with my suggestion, just so I can
see what you used?

-- 
Eric Amick
Columbia, MD