This post shows how you can marshal a JAXB object into XML and unmarshal XML into a JAXB object.
Consider the following JAXB class:
import javax.xml.bind.annotation.*;
@XmlRootElement
public class Book {
@XmlElement
private String author;
@XmlElement
private String title;
}
Unmarshalling:
To convert an XML string into an object of class Book
:
public static Book unmarshal(final String xml) throws JAXBException {
return (Book) JAXBContext.newInstance(Book.class)
.createUnmarshaller()
.unmarshal(new StringReader(xml));
}
Marshalling:
To convert a Book
object into an XML string:
public static String marshal(Book book) throws JAXBException {
final Marshaller m = JAXBContext.newInstance(Book.class)
.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
final StringWriter w = new StringWriter();
m.marshal(book, w);
return w.toString();
}