Good summary, José, but I'll add that even with manual binding definitions JiBX can't handle all aspects of schema correctly. Of course, that's also true of most data binding frameworks. XMLBeans was designed from the start to handle all of schema, and aside from some quirks and peculiarities it does so pretty well. But schema is a mess, and not all parts of it can be handled cleanly. The biggest downsides to XMLBeans for Java developers are that (1) many people find the generated data model API awkward to work with, (2) XMLBeans performance can be relatively poor (both in terms of time and memory usage), and (3) schema is being misused (especially in the web services world) in ways which AFAIK XMLBeans cannot handle.

For (3), I'll point in particular at the use of "flexible" unmarshalling. What this means is taking the schema as a base, but then ignoring any elements which do not match the schema. This was the way most of the first- and second-generation web services frameworks operated, and some users now demand it. JAXB 2.0 operates this way by default (over my objections), and I added support for it in JiBX due to client requests. I personally think it's a bad way to go - why have a schema at all, if you're not going to enforce it? - but can see the appeal. It allows groups to use a common schema with ad hoc extensions for individual needs.

JiBX was originally designed with the focus on providing fast and flexible conversions between XML and Java. Schema was an afterthought for JiBX, though it's become more of a driving force as developers using JiBX have wanted to support different parts of schema. But some aspects of schema are still not handled by JiBX, with type substitution probably the most important. Because the binding definitions used by JiBX were not designed with schema in mind there are also many things you can do with JiBX bindings which cannot be represented in schema.

I'd like to improve JiBX support for schema in the future (not because I like schema - IMHO it's an ugly monstrosity that never should have been allowed to live - but because it's become impossible to avoid, especially in the web services world). Short-term that involves a replacement for the very outdated Xsd2Jibx tool that's currently the only way to generate code and bindings from schema. I've been working on a tool for this purpose, and should finally have an initial release in April. Long-term there are some structural changes required for JiBX which I've been hoping to do as part of a 2.0 rewrite of the JiBX code generation. The 2.0 rewrite is going to be a low priority unless I find a client who needs some of those features and is willing to pay for part of the development effort, so I don't currently have any scheduled completion date for that.

 - Dennis

Dennis M. Sosnoski
SOA and Web Services in Java
Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117



José Antonio Sánchez wrote:
Not exactly. Xmlbeans can generate classes for every possible schema
automatically. JiBX only generates both classes and mapping
description for a limited set of schemas (for example, no xsd:anyType
is allowed). For that schemas you have to define the mapping manually.

On 3/26/07, Josh <[EMAIL PROTECTED]> wrote:
Just for my own knowledge, is this a true statement?: "This is because
XMLBeans implementation can understand all the XSD (i.e. schema)
constructs."  Does JiBX have mapping limitations?

Regards,

Joshua



On 3/26/07, Nilesh Ghorpade <[EMAIL PROTECTED]> wrote:
>
>
>
> Hi,
>
> As per my understanding AXIS 2 uses AXIOM API's internally for any XML
related activities. Hence as you have mentioned that you are confused to
choose between POJO, AXIOM, JIBX, ADB or XMLBeans, the AXIOM is an invalid
option here.
>
> Secondly in AXIS 2 you can create web services using either the Spring
Framework or POJO.
>
> JiBX, XMLBeans and ADB are more related to the data binding frameworks
which AXIS 2 supports. Hence it depends on your schema on which data binding framework you would want to select. As per my knowledge XMLBeans is the best when it comes to complex schemas. This is because XMLBeans implementation
can understand all the XSD ( i.e. schema) constructs.
>
> To answer your second question, the answer is YES. If you want to use the
wsdl2java command from AXIS2 for generating your stubs and skeletons you
will need the WSDL. Generating a WSDL is also not a diccficult task. YOu can
have your SEI defined i.e. the Service Endpoint Interface with all the
method signatures which you want to expose as web service operations. On
executing the java2wsdl command from AXIS2 you would be able to get the
WSDL. And using this WSDL you can generate the remaining artifacts of your
web service. WSDL is nothing but an interface and hence even if you have
defined an interface in Java, you can generate a WSDL from it.
>
>
> Hope that answers your queries.
>
>
> Regards
>
> Niles
>
> ----- Original Message ----
> From: Martin Gainty < [EMAIL PROTECTED]>
> To: [email protected]
>
> Sent: Monday, March 26, 2007 3:15:01 AM
> Subject: Re: [Axis2] AXIOM or JBIX
>
>
> Anil-
>
> I found this whitepaper quite informative
> SAX2 processes fastest..with DOM bein
>
http://www.mail-archive.com/[email protected]/msg01044.html
>
> FWIW,
> M--
>
--------------------------------------------------------------------------- > This e-mail message (including attachments, if any) is intended for the
use of the individual or entity to which it is addressed and may contain
information that is privileged, proprietary , confidential and exempt from disclosure. If you are not the intended recipient, you are notified that any
dissemination, distribution or copying of this communication is strictly
prohibited.
>
--------------------------------------------------------------------------- > Le présent message électronique (y compris les pièces qui y sont annexées,
le cas échéant) s'adresse au destinataire indiqué et peut contenir des
renseignements de caractère privé ou confidentiel. Si vous n'êtes pas le
destinataire de ce document, nous vous signalons qu'il est strictement
interdit de le diffuser, de le distribuer ou de le reproduire.
> ----- Original Message -----
> From: "Anil" <[EMAIL PROTECTED]>
> To: < [email protected]>
> Sent: Sunday, March 25, 2007 4:37 PM
> Subject: [Axis2] AXIOM or JBIX
>
>
> > Hi,
> >
> > I'm new to Axis2, what is the criteria to choose
> > between POJO, AXIOM, JIBX, ADB or XMLBeans. How do we
> > decide architecture wise.
> >
> > My second question is, is wsdl file mandatory to
> > create stub and skeleton interfaces or can we use just
> > skeleton file to create wsdl file.
> >
> > Thanks.
> >
> >
> >
> >
____________________________________________________________________________________
> > Bored stiff? Loosen up...
> > Download and play hundreds of games for free on Yahoo! Games.
> > http://games.yahoo.com/games/front
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail:
[EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> ________________________________
 TV dinner still cooling?
> Check out "Tonight's Picks" on Yahoo! TV.





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to