JAXB provides a Java API that can map Java objects to XML content and XML content to Java objects.
JAXB stands for Java Architecture for XML Binding
Major components of JAXB are:
Binding runtime framework
JAXB provides a Java API that can map Java objects to XML content and XML content to Java objects, wihch are known in JAXB terms are marshalling and unmarshalling.
Marshaling means to create an XML document from Java object.
Unmarshaling creates a Java object tree from an XML document.
Before you can do marsahlling and unmarshalling, you need to create the required JAXB classes.
JAXB 2.x support bidirectional binding between xml schema (XSD) and java classes -
binding from XML schema (XSD) to create java classes and
First we need to create an XSD and
provide the XML schema as the input to the JAXB compiler, and
the JAXB compiler creates the required JAXB classes.
binding of Java classes to create XML Schema components.
we need to first define a class using binding annotations.
We can create a JAXBContext from this class and
do marshaling and unmarshaling using the JAXBContext.
We can also apply the schemagen tool to generate a schema definition from this class.
You can find an example for binding from XML schema (XSD) to create JAXB classes and and then do marshalling and unmarshalling @ http://javajee.com/jaxb-2-xsd-to-java-binding-marshaling-and-unmarshalin....
You can find an example for binding from java classes to create xsd, and then do marshaling and unmarshaling: http://javajee.com/jaxb-2-java-to-xsd-binding-marshaling-and-unmarshalin....
JAX-WS and JAX-RS web services use JAXB for xml binding and hence knowledge of JAXB and bindings will be really helpful when working with web services.
One simple use case is to make our web service asynchronous and for that we need to add <enableAsyncMapping>true</enableAsyncMapping> to a bindings file.