Additional Features

In addition to the unique three-pass architecture, Zeus offers several features beyond the standardized data binding functionality defined by JAXB. If these features are particularly attractive to you, you may want to consider using Zeus in your own applications so that you can take advantage of them.

Self-Containment

One of the more powerful features of Zeus is the self-containment that its classes have. If you recall from the earlier chapters, JAXB-generated classes must be added to the application classpath once compiled. Additionally, the JAXB classes themselves were required for operation. Many of the mechanics of marshalling and unmarshalling, as well as exception handling, are in the JAXB jar file, and these must be available for use at runtime. However, this builds in a version dependency on JAXB and can sometimes result in two different applications, using different versions of JAXB, being unable to communicate. Marshaled objects in one version may not be unmarshallable in another.

As a result, Zeus removes any runtime dependency on the zeus.jar archive. When Zeus classes are generated, they include all necessary facilities for marshalling and unmarshalling, including exceptions. The only external requirement that these classes have is a SAX-compliant parser for XML processing. This can be Xerces, Crimson, or any commercial parser; in fact, you can use one parser for class generation and another for runtime marshalling and unmarshalling.

The generated ...

Get Java & XML Data Binding now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.