Nice!
I would like to propose an effort to fork the serialization and
deserialization/XML-Java Mapping subsystem to define a more generic API
based on popular frameworks already out there. While I agree that any
current API might have to be proprietary, it could be better split from
the rest of the Axis framework. I did, in fact, have to do this a while
back due some of the same limitations listed here - sequence, choice,
enums, wildcards, elements with same name and different namespaces etc.
What, in essence I am proposing is to design a metadata model for
language mappings (schema, wsdl, java MAPPINGS) and keep it distinct
from the execution framework (serializationContext does not _require_ a
messageContext ;-).
Is there any effort like this already? If not, do we have any takers?
Mukund Balasubramanian
Harald Schmitt wrote:
>Hi all,
>
>I think this would be a good FAQ point.
>
>
>
>>Hi Tim!
>>
>>It is certainly possible to store the metadata anywhere you want - the
>TypeDesc.getTypeDescForClass()
>>method is the control point there. Right now we look for a) inline static metdata,
>and b) a "Helper" class
>>which contains the metadata. This could easily be extended to include scanning for
>an XML or a
>>properties file.
>>
>>The TypeDesc class contains XML <-> Java databinding information in a
>well-structured form. The
>>BeanInfo class just gives you name/value pairs, so we'd still need to come up with
>some kind of data
>>structure to store the actual information about mapping fields/properties to XML
>elements/attributes even
>>if we got that data from BeanInfo classes. We've discussed getting the TypeDesc
>from a BeanInfo
>>structure, but haven't gone there yet.
>>
>>In terms of publishing existing beans without modifying them, this works fine in
>that a) the default
>>serialization will apply to beans with no metadata (all public fields represented as
>XML elements, and I
>>think the schema uses <all>) and b) we support external metadata in the form of a
>Helper class right
>>now, and may support other file-based formats in the future.
>>
>>TypeDesc/FieldDesc should expand to handle capturing more of what schema can do
>>(all/sequence/choice/etc), and we also hope to include a constraint system at some
>point to support
>>schema restriction types with limited value sets.
>>
>>As for "Axis-specific", any XML<->Java databinding framework (JAXB, Castor, Axis) is
>going to be
>>proprietary right now, in that the metadata gets read by some tool that is
>deserializing or serializing XML
>>in some custom way. It may be that this stuff gets standardized (that's where JAXB
>is trying to go, for
>>instance), but we're not there yet. Until a standard we like better arrives, we're
>going to try to make Axis
>>do this as efficiently and simply as we can. It's also the plan at some point to
>tease the databinding
>>framework away from the rest of Axis so that it can be used independently from, as
>well as in concert
>>with, the SOAP/Handler stuff.
>>
>>--Glen
>>
>> -----Original Message-----
>> From: Tim Blake [mailto:[EMAIL PROTECTED]]
>> Sent: Tuesday, April 23, 2002 6:52 AM
>> To: [EMAIL PROTECTED]
>> Subject: JavaBeans and metadata
>>
>> Hi,
>>
>> Could somebody please give me a summary of the design decisions taken vis-a-vis
>storing
>> metadata inline with generated complexTypes? I appreciate that this has
>already been the
>> subject of some discussion (and maybe even disagreement ;-)) and I'm genuinely
>trying to
>> understand, not just rock the boat...
>>
>> - Why do you store metadata inline, as opposed to in separate files (or maybe
>this is
>> possible as well)?
>> - Why do you use "org.apache.axis.description.TypeDesc" for describing metadata
>on
>> JavaBeans, rather than the existing BeanInfo framework? Is this intended to be
>more
>> generic than BeanInfo, since it can be used in other contexts? How does this
>"proprietary"
>> metadata layer affect the use case where people want to publish existing
>JavaBeans
>> without modifying them?
>> My real interest here is in solving the problem of mapping the XML schema
>comparators all
>> | sequence | choice into Java in the best possible non-AXIS-specific way. This
>isn't so
>> much a question of "interoperability" as "uniformity" of solution. If you've
>discussed this to
>> death previously then please point me to the relevant posts. If not, what do
>y'all think?
>>
>> Thanks,
>> Tim
>>
>>
>>