Despite the standardization effort around JAXB, there are numerous other Java-XML data binding frameworks available, including many under some sort of open source license. Before leaving data binding behind and moving on to the next chapter, I want to touch on a two of these non-JAXB frameworks, albeit briefly.

XMLBeans

XMLBeans was originally written by BEA, but is now a project of the Apache Software Foundation. The web site for XMLBeans is . XMLBeans is under active development, with the most recent version (2.2.0) released in June of 2006. XMLBeans is fairly unique among Java-XML data binding frameworks in that it stores the full XML infoset. This allows you to perform round-tripping of XML: unmarshall a document and then marshall the resulting object and know that the input and output will be identical, including things like processing instructions and comments. However, XMLBeans (unlike JAXB 2.0) requires that all bound classes be created with their schema compiler.

Castor

Castor is one of the oldest Java-XML data binding frameworks that are still in active development. Its web site is . The latest version (1.0.1) was released in July 2006. Castor actually does much more than Java-XML data binding, including a full implementation of Java Data Objects (JDO). The Castor developers are currently hard at work implementing the new Java Persistence API (JPA). Although it is not done with annotations and is more limited than JAXB 2.0, Castor does support binding classes that were not created by its schema compiler.