axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Sandholm <>
Subject Re: AnyContentType
Date Sat, 12 Jul 2003 05:15:40 GMT
At 10:26 PM 7/11/2003 -0600, Doug Davis wrote:

>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 Sandholm <> on 07/12/2003 12:24:21 AM
>Please respond to
>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.
>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
> >the RPC case, but if so why not just use Element?
> >-Dug
>Thomas Sandholm <>
>The Globus Project(tm) <>
>Ph: 630-252-1682, Fax: 630-252-1997
>Argonne National Laboratory

View raw message