O'Reilly logo

Java & XML Data Binding by Brett McLaughlin

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 8. Castor

The next package I want to visit is Castor, from the Exolab group. Like Zeus, Castor is a free, open source package that provides XML-to-Java data binding, as well as several other additional features discussed later. The project is hosted at http://castor.exolab.org and is one of the oldest data binding projects around. As a result, it has a lot of maturity, which provides stability and a rich feature set. On the downside, it was around long before JAXB, so there are some significant differences in how it functions as compared to JAXB. That said, it remains an excellent choice for data binding when JAXB support is not required.

Process Flow

Castor follows the basic process flow outlined in the first six chapters. However, like Zeus, it deviates from this basic path to support some additional feature sets. Furthermore, Castor was developed before JAXB was more than a twinkling in Sun’s eye and therefore had to come up with original solutions for many problems that are fairly standardized now. This section looks at how Castor deals with class generation, marshalling, and unmarshalling.

Class generation in Castor is handled through a utility class, org.xml.castor.xml.SourceGenerator . This class functions much like JAXB’s schema compiler (xjc) and Zeus’s DTDSourceGenerator class. As a result, you should already be familiar with how this process works. An input XML constraint set is supplied, along with several options like a Java package, a destination directory, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required