I'm confused - Element can map to xsd:any - whether Axis does it properly
No an xsd:any maps to a Bean containing an array of MessageElements. I think that is the proper way of doing it too, although it should really be SOAPElements to be more JAX-RPC friendly. An any is conceptually an XML payload part with lax processing or deferred deserialization, and thus maps nicely into MessageElement which is the format all SOAP payloads are coverted to before being further deserialized.
or not is something different - but its possible, so why can't Element be used in place of AnyContentType?
Part of the confusion here is that you are talking about a Java->WSDL scenario whereas I am talking about a WSDL->Java scenario. And there is no way, and in my opinion shouldn't either be a way, to define a type or construct in XML schema that maps to a DOM Element. .NET in fact does a mapping to an XML Infoset DOM like object, and we have found that to be a big limitation compared to the model currently implemented in Axis.
Not sure about the performance gain since the minute anyone wants to do something with a MessageElement it will be convert into a DOM, right?
No incorrect. We have a lot of use cases where the xsd:any travels through SOAP intermediaries not interested in the content of various pieces (and not aware of typemappings for the payload) of the request. When the payload eventually ends up at the final destination (aware of the typemappings of the payload), the MessageElement format makes it easy to kick in the correct deserialization into a particular java type without having to go through the DOM Element format. The xsd:any construct and the mapping to a MessageElement thus makes perfect sense in this scenario. The AnyContentType is just to tag beans generated from a XMLSchema complex type, and containing an xsd:any definition with an interface so that generic processing can be performed on that XML payload part. We may convert the XML to a java type, just a string buffer or a DOM Element depending on the availability of typemappings and the application context.
/Thomas
-Dug
Thomas Sandholm <[EMAIL PROTECTED]> on 07/12/2003 12:24:21 AM
Please respond to [EMAIL PROTECTED]
To: [EMAIL PROTECTED], [EMAIL PROTECTED] cc: Subject: Re: AnyContentType
The purpose of the AnyContentType is to have an interface in common for all
types that contain an xsd:any element definition, so that utilities can assume the availability of the get_any and set_any operations without knowing the actual type. There is no type or construct in wsdl that maps to
Element as far as I know, and the fact that xsd:any elements do not get deserialized into DOM Elements automatically (but instead MessageElements)
can be a big performance gain. /Thomas At 05:19 AM 7/11/2003 -0600, Doug Davis wrote:
>What's the purpose behind the AnyContentType class? >I have a feeling it might to support any generic chunk of XML as a param in >the RPC case, but if so why not just use Element? >-Dug
Thomas Sandholm <[EMAIL PROTECTED]> The Globus Project(tm) <http://www.globus.org> Ph: 630-252-1682, Fax: 630-252-1997 Argonne National Laboratory
