JAX-B Marshal
- Read a XML file with DOM
- Create XML file with DOM
- Delete XML nodes with DOM
- Read a XML file with SAX
- JAX-B Marshal
- JAX-B Unmarshal
- Convert properties file into XML file
- Convert XML file into properties file
- XPath tutorial
- From XML to JSON
- JAX-B Marshal
- JAX-B Unmarshal
Comments (0)
Java Architecture for XML Binding (JAXB) is a Java standard that defines how Java objects are converted to/from XML (specified using a standard set of mappings. JAXB defines a programmer API for reading and writing Java objects to / from XML documents and a service provider which / from from XML documents allows the selection of the JAXB implementation JAXB applies a lot of defaults thus making reading and writing of XML via Java very easy.
Model
JAX-B uses annotation to declare the XML nodes.
package com.camelcode;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Book {
private Long id;
private String author;
private String title;
private Integer year;
private Double price;
public Book() {
}
public Book(String author, String title, Integer year, Double price) {
this.author = author;
this.title = title;
this.year = year;
this.price = price;
}
public Long getId() {
return id;
}
@XmlAttribute
public void setId(Long id) {
this.id = id;
}
public String getAuthor() {
return author;
}
@XmlElement
public void setAuthor(String author) {
this.author = author;
}
public String getTitle() {
return title;
}
@XmlElement
public void setTitle(String title) {
this.title = title;
}
public Integer getYear() {
return year;
}
@XmlElement
public void setYear(Integer year) {
this.year = year;
}
public Double getPrice() {
return price;
}
@XmlElement
public void setPrice(Double price) {
this.price = price;
}
@Override
public String toString() {
return "Book{" +
"id='" + id + '\'' +
", author='" + author + '\'' +
", title='" + title + '\'' +
", year=" + year +
", price=" + price +
'}';
}
}
Java Code
It's realy straight forward to use this API. Just use the marshal method, and the rest is done for you. realy nice !
package com.camelcode;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import java.io.File;
public class Marshal {
public static void main(String[] args) {
Book book = new Book("Olivier", "Hitchhikers guide to the galaxy", 2005, 32.6);
book.setId(1L);
try {
File file = new File("newBook.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Book.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(book, file);
jaxbMarshaller.marshal(book, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
Output
Generated output on the console. It's also the same as the generated XML file (newBook.xml).





Latest Posts
Latest Comments
Tag cloud