JAXB 2X Tutorial

JAXB 2X Tutorial

JAXB stands for Java Architecture for XML Binding. It provides mechanism to marshal (write) java objects into XML and unmarshal (read) XML into object. Simply, you can say it is used to convert java object into xml and vice-versa. It constitutes a convenient framework for processing XML documents, providing significant benefits as compared to previously available methods such as the one following the Document Object Model (DOM).


What is new in JAXB 2.x?
JAXB 2.x includes several features that were not present in JAXB 1.x. They are as follows:

1) Annotation support: JAXB 2.x provides support to annotation so less coding is required to develop JAXB application. The javax.xml.bind.annotation package provides classes and interfaces for JAXB 2.x.

2) Support for all W3C XML Schema features: it supports all the W3C schema unlike JAXB 1.0.

3) Additional Validation Capabilities: it provides additional validation support by JAXP 1.3 validation API.

4) Small Runtime Library: it required small runtime library that JAXB 1.0.

5) Reduction of generated schema-derived classes: it reduces a lot of generated schema-derived classes.

Unmarshalling an XML document with the appropriate JAXB method also results in a tree of objects, with the significant difference being that the nodes in this tree correspond to XML elements, which contain attributes and the content as instance variables and refer to child elements by object references.

Schemas written in the XML Schema Language can describe structural relationships and data types, with a very high level of distinctiveness. The scalar datatypes of the XML Schema Language are mapped to Java data types. Lists of values and certain element groupings are mapped to Java’s java.util.List. It should be noted that the XML Schema language is capable of defining XML structures that cannot be bound by a schema compiler. In many of these cases it is possible to circumnavigate the problem by adding binding declarations to direct the schema compiler in some specific way to achieve a successful binding.

JAXB 2 – Java Architecture for XML Binding

JAXB uses annotations to indicate the central elements.
Annotation Description
@XmlRootElement(namespace = “namespace”) Define the root element for an XML tree
@XmlType(propOrder = { “field2”, “field1”,.. }) Allows to define the order in which the fields are written in the XML file
@XmlElement(name = “neuName”) Define the XML element which will be used. Only need to be used if the neuNeu is different then the JavaBeans Name

Contents for JAXB

1. https://jaxb.java.net/