A posting from Mark Reinhold (Sun Microsystems, Inc.) announces the version 1.0 early access implementation release of the Java Architecture for XML Binding (JAXB), previously referenced as the "Adelard" project. JAXB "provides an API and tools that automate the mapping between XML documents and Java objects. It is being developed through the Java Community Process program under [Java Specification Request] JSR-31. JAXB makes XML easy to use by compiling an XML schema into one or more classes. The generated classes handle all the details of XML parsing and formatting, they ensure that the constraints expressed in the schema are enforced, and in many cases they are much more efficient than using a SAX (Simple API for XML) parser or an implementation of the DOM (Document Object Model) API. An application that uses the generated classes can build a Java object tree representing an XML document, manipulate the content of the tree, and re-generate XML documents from the tree, all without requiring the developer to write complex parsing and processing code. JAXB 1.0 will be available as an optional package for the Java 2 Platform, Standard Edition (J2SE). JAXB may be included in future releases of J2SE or the Java 2 Platform, Enterprise Edition (J2EE). According to the working draft issued in conjunction with the implementation: "The primary components of the XML data-binding facility described in this specification are the schema compiler, the binding framework, and the binding language. (1) The schema compiler transforms, or binds, a source schema to a set of derived classes. As used in this specification, the term 'schema' includes the document-type definition language of the XML 1.0 specification. (2) The binding framework is a set of public interfaces and classes upon which derived classes rely to implement the operations of unmarshalling, marshalling, and validation. (3) The binding language is an XML-based language that describes the binding of a source schema to a set of derived classes. A binding schema written in this language specifies the details of the classes derived from a particular source schema."
From the User's Guide: "Essentially, JAXB provides a bridge between these two complementary technologies. JAXB includes a compiler that maps a schema to a set of Java classes. Once you have your classes, you can build Java object representations of the XML data that follow the rules that the schema defines. Just as an XML document is an instance of a schema, a Java object is an instance of a class. Thus, JAXB allows you to create Java objects at the same conceptual level as the XML data. Representing your data in this way allows you to manipulate it in the same manner you manipulate Java objects, making it easier to create applications to process XML data. Once you have your data in the form of Java objects, it is easy to access it. In addition, after working with the data, you can write the Java objects to a new XML document. With the easy access to XML data that JAXB provides, you only need to write the applications that will actually use the data, rather than spend time writing code to format the data..."