You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Erik Wright <er...@radialpoint.com> on 2006/01/31 21:44:27 UTC

array serialization in 1.3

Hi,

I have noticed that array parameters (in or out) seem to be serialized
incorrectly in Axis 1.3. I am attaching a sample WSDL here, along with
the corresponding input and output. In summary, instead of creating an
element for the array parameter (containing the array members) it
creates one element for each member, without any all-enclosing parent. 

Note that we are using WSDL2Java to generate the service implementation
from existing wsdl.

WSDL snippet (complete wsdl attached):

  <wsdl:message name="DemoResponse">
    <wsdl:part name="Foos" type="impl:ArrayOfFoos" />
    <wsdl:part name="Bars" type="impl:ArrayOfBars" />
    <wsdl:part name="SomeNumber" type="impl:positiveFloat" />
  </wsdl:message>

Serialized output (simplified slightly - complete output attached):

  <GetDemoResponse>
    <Foos xsi:type="ns1:Foo">
      <MyPayload>hello</MyPayload>
    </Foos>
    <Bars xsi:type="ns2:Bar">
      <MyPayload>good</MyPayload>
    </Bars>
    <Bars xsi:type="ns3:Bar">
      <MyPayload>bye</MyPayload>
    </Bars>
    <SomeNumber xsi:type="ns4:positiveFloat">11.7</SomeNumber>
  </GetDemoResponse>

In Axis 1.1 this worked as expected. Is there anyway to get this to
serialize as:

  <GetDemoResponse>
    <Foos xsi:type="ns1:ArrayOfFoos" soapenc:arrayType="ns1:Foo[1]" >
      <Foo xsi:type="ns1:Foo">
        <MyPayload>hello</MyPayload>
      </Foo>
    </Foos>
    <Bars xsi:type="ns1:ArrayOfBars" soapenc:arrayType="ns1:Bar[2]" >
      <Bar xsi:type="ns2:Bar">
        <MyPayload>good</MyPayload>
      </Bar>
      <Bar xsi:type="ns3:Bar">
        <MyPayload>bye</MyPayload>
      </Bar>
    </Bars>
    <SomeNumber xsi:type="ns4:positiveFloat">11.7</SomeNumber>
  </GetDemoResponse>

Thanks for your help in advance.

-Erik