π Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
✅ Some premium posts are free to read — no account needed. Follow me on Medium to stay updated and support my writing.
π Top 10 Udemy Courses (Huge Discount): Explore My Udemy Courses — Learn through real-time, project-based development.
▶️ Subscribe to My YouTube Channel (172K+ subscribers): Java Guides on YouTube
- JAXB Marshalling means Converting a Java Object to XML.
- JAXB Unmarshalling means Converting XML to Java Object.
- Unmarshaller interface is used to convert XML to Java Object.
- JAXBContext class is the entry point for JAXB and provides methods to get marshaller and unmarshalled object.
This is simple get starting JAXB tutorial, you can learn in-depth about JAXB on official JAXB Users Guide.
- @XmlRootElement: This is a must have an annotation for the Object to be used in JAXB. It defines the root element for the XML content.
- @XmlType: It maps the class to the XML schema type. We can use it for ordering the elements in the XML.
- @XmlTransient: This will make sure that the Object property is not written to the XML.
- @XmlAttribute: This will create the Object property as an attribute.
- @XmlElement(name = “abc”): This will create the element with name “abc”
Technologies used in this article
- JDK 1.8
- JAXB 2.0
Create a User class and Add JAXB annotations
package net.javaguides.javaxmlparser.jaxb;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "Users")
@XmlType(propOrder = {
"id",
"firstName",
"lastName",
"age",
"gender"
})
public class User {
private int id;
private String firstName;
private String lastName;
private int age;
private String gender;
private String password;
@XmlAttribute
public int getId() {
return id;
}
public void setId(int i) {
this.id = i;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@XmlTransient
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", firstName=" + firstName + ", lastName=" + lastName + ", age=" + age + ", gender=" +
gender + "]";
}
}
Convert Java Object to XML - JAXB Marshalling
package net.javaguides.javaxmlparser.jaxb;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
public class ConvertObjectToXML {
private static final String FILE_NAME = "jaxb-users.xml";
public static void main(String[] args) {
User user = new User();
user.setId(1);
user.setAge(25);
user.setFirstName("Ramesh");
user.setGender("Male");
user.setLastName("Fadatare");
user.setPassword("sensitive");
jaxbObjectToXML(user);
}
private static void jaxbObjectToXML(User user) {
try {
JAXBContext context = JAXBContext.newInstance(User.class);
Marshaller m = context.createMarshaller();
// for pretty-print XML in JAXB
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
// Write to System.out for debugging
m.marshal(user, System.out);
// Write to File
m.marshal(user, new File(FILE_NAME));
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Users id="1">
<firstName>Ramesh</firstName>
<lastName>Fadatare</lastName>
<age>25</age>
<gender>Male</gender>
</Users>
Check out more examples on How to Convert Java Object to XML - JAXB Marshalling
Convert XML to Java Object - JAXB Unmarshalling
package net.javaguides.javaxmlparser.jaxb;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class ConvertXMLToObject {
private static final String FILE_NAME = "jaxb-users.xml";
public static void main(String[] args) {
User userFromFile = jaxbXMLToObject();
System.out.println(userFromFile.toString());
}
private static User jaxbXMLToObject() {
try {
JAXBContext context = JAXBContext.newInstance(User.class);
Unmarshaller un = context.createUnmarshaller();
User user = (User) un.unmarshal(new File(FILE_NAME));
return user;
} catch (JAXBException e) {
e.printStackTrace();
}
return null;
}
}
User [id=1, firstName=Ramesh, lastName=Fadatare, age=25, gender=Male]
Check out more examples on How to Convert XML to Java Object - JAXB Unmarshalling
This is simple get starting JAXB tutorial, you can learn in-depth about JAXB on official JAXB Users Guide.
Comments
Post a Comment
Leave Comment