JAXB, stands for Java Architecture for XML Binding, using JAXB annotation to convert Java object to / from XML file. In this tutorial, we show you how to use JAXB to do following stuffs :
- Marshalling – Convert a Java object into a XML file.
- Unmarshalling – Convert XML content into a Java Object.
Technologies used in this article
- JDK 1.6
- JAXB 2.2.7
JAXB Hello World Example
Working with JAXB is easy, just annotate object with JAXB annotation, later use jaxbMarshaller.marshal() or jaxbMarshaller.unmarshal() to do the object / XML conversion.
Simple JAXB Marshalling Example: Converting Object into XML
Let’s see the steps to convert java object into XML document.
- Create POJO or bind the schema and generate the classes
- Create the JAXBContext object
- Create the Marshaller objects
- Create the content tree by using set methods
- Call the marshal method
Employee.java
package com.doj.jaxb;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* @author Dinesh Rajput
*
*/
@XmlRootElement
public class Employee {
private int empid;
private String name;
private float salary;
private String address;
@XmlAttribute
public int getEmpid() {
return empid;
}
public void setEmpid(int empid) {
this.empid = empid;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
@XmlElement
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
- @XmlRootElement specifies the root element for the xml document.
- @XmlAttribute specifies the attribute for the root element.
- @XmlElement specifies the sub element for the root element.
package com.doj.jaxb;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
/**
* @author Dinesh Rajput
*
*/
public class ObjectToXMLTest {
/**
* @param args
* @throws JAXBException
* @throws FileNotFoundException
*/
public static void main(String[] args) throws JAXBException, FileNotFoundException {
JAXBContext contextObj = JAXBContext.newInstance(Employee.class);
Marshaller marshallerObj = contextObj.createMarshaller();
marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Employee emp = new Employee();
emp.setEmpid(1111);
emp.setName("Dinesh Rajput");
emp.setSalary(100000);
emp.setAddress("Noida");
marshallerObj.marshal(emp, new FileOutputStream("employee.xml"));
}
}
Run this application as java program lets see following output file in application
employee.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee empid="1111">
<address>Noida</address>
<name>Dinesh Rajput</name>
<salary>100000.0</salary>
</employee>

Download Source Code with libs
JaxBExample.zip



