Mega Code Archive

 
Categories / Java / XML
 

Marshal object with JAXB

import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlValue; public class PersonOutput {   public static void main(String[] args) throws JAXBException {     Person p = new Person();     p.setFirstName("B");     p.setLastName("H");     PersonName pn = new PersonName();     pn.setValue("L");     p.setFriend(pn);     JAXBContext context = JAXBContext.newInstance(Person.class);     context.createMarshaller().marshal(p, System.out);   } } @XmlRootElement() @XmlType(name = "") // @XmlAccessorType(XmlAccessType.FIELD) class Person {   // @XmlAttribute()   private String firstName;   private PersonName friend;   private String lastName;   public String getFirstName() {     return firstName;   }   @XmlElement(nillable = true)   // @XmlElement(required=true)   public PersonName getFriend() {     return friend;   }   // @XmlValue()   // @XmlTransient   public String getLastName() {     return lastName;   }   public void setFirstName(String s) {     firstName = s;   }   public void setFriend(PersonName friend) {     this.friend = friend;   }   // r @XmlTransient   public void setLastName(String s) {     lastName = s;   } } @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) class PersonName {   @XmlValue   private String value;   public String getValue() {     return value;   }   public void setValue(String value) {     this.value = value;   } }