To answer your second question first: 
The easy/fun/pretty solution is to write out the wsdl for the array
container and then use the WSDL2Java tool(using the "generate stubs and
skeletons option... Read about it in the axis user guide) to have axis
libraries automatically generate all the classes (including the beans
for the "complexElement", and a wrapper class for the "array" of them...
It will also generate all of the serialization logic and metadata used
by axis within those beans... Not to mention the deploy/undeploy wsdd's.
So if it doesn't lay it out the way you want, it will give you an
excellent starting point for seeing how bean serializing metadata is set
up and referenced (answering your first question, I hope).  And if it
does lay it out the way you want, you just saved a lot of time ^_^

Things to watch out for: make sure that input types are lowercase... The
metadata of the autogenerated code needs to be tweaked if you have
AddCustomer instead of addCustomer or the deserializers bork.

Hope this helps

-Peter

-----Original Message-----
From: Eric Chijioke [mailto:[EMAIL PROTECTED] 
Sent: Thursday, September 09, 2004 6:39 PM
To: [EMAIL PROTECTED]
Subject: Deserializing array of complex types

When an axis server is configured to use document/literal (wrapped),
what is the shema of arrays of complex types that it deserializes with
the default ArrayDeserializer?
 
Specifically, are the array elements wrappered by an 'arrayContainer'
element within the "<xxxResponse>" root element of the soap body (like a
collection)?
 
Like:

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope ...namespaces...>
     <soapenv:Body>
                <xxxResponse>
                        <arrayContainer>
                                <complexElement>
                               ...
                                </complexElement>
                                <complexElement>
                                       ...
                                </complexElement>
                                <complexElement>
                               ...
                                </complexElement>
                        </arrayContainer>
                </xxxResponse>
        </soapenv:Body>
</soapenv:Envelope>


If not, is there a way to make axis Deserialize them this way using the
default ArrayDeserializer (perhaps configuring .wsdd & writing
appropriate WSDL schema)?

Thanks,
Eric Chijioke
[EMAIL PROTECTED] 


Reply via email to