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 >> >> >>