The Apache Web Services Project has posted version 0.3 of JaxMe 2, an open source implementation of the Java API for XML Binding. Quoting from the web page,
JaxMe 2 is an open source implementation of JAXB, the specification for Java/XML binding.
A Java/XML binding compiler takes as input a schema description (in most cases an XML schema but it may be a DTD, a RelaxNG schema, a Java class inspected via reflection or a database schema). The output is a set of Java classes:
- A Java bean class compatible with the schema description. (If the schema was obtained via Java reflection, then the original Java bean class.)
- An unmarshaller that converts a conforming XML document into the equivalent Java bean.
- Vice versa, a marshaller that converts the Java bean back into the original XML document.
In the case of JaxMe, the generated classes may also
- Store the Java bean into a database. Preferrably an XML database like eXist, Xindice, or Tamino, but it may also be a relational database like MySQL. (If the schema is sufficiently simple. :-)
- Query the database for bean instances.
- Implement an EJB entity or session bean with the same abilities.
In other words, by simply creating a schema and running the JaxMe binding compiler, you have automatically generated classes that implement the complete workflow of a typical web application: