jaxb.JaxbDemo
pojo.AbstractPeople
pojo.People
People.xml
package jaxb;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import pojo.People;
public class JaxbDemo {
// 编组数据
public static void marshalData() throws JAXBException, IOException {
JAXBContext context = JAXBContext.newInstance(People.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, "gb2312");// 编码格式
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串
// 是否省略xml头信息(<?xml version="1.0" encoding="gb2312" standalone="yes"?>)
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);
People people = new People();
people.setLogo("=====");
people.setId(1);
people.setName("son");
People father = new People();
father.setId(2);
father.setName("father");
people.setFather(father);
FileOutputStream os = new FileOutputStream("People.xml");
marshaller.marshal(people, os);
os.close();
}
// 解组数据
public static void unmarshalData() throws JAXBException, FileNotFoundException {
JAXBContext context = JAXBContext.newInstance(People.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
People p = (People) unmarshaller.unmarshal(new FileInputStream("People.xml"));
System.out.println(p.getId() + " : " + p.getName());
}
}
pojo.AbstractPeople
package pojo;
public class AbstractPeople {
private String logo;
public String getLogo() {
return logo;
}
public void setLogo(String logo) {
this.logo = logo;
}
}
pojo.People
package pojo;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "People")
@XmlAccessorType(XmlAccessType.FIELD)
public class People extends AbstractPeople{
private int id;
private String name;
private People father;
public People() {
}
public People(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public People getFather() {
return father;
}
public void setFather(People father) {
this.father = father;
}
}
People.xml
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<People>
<logo>=====</logo>
<id>1</id>
<name>son</name>
<father>
<id>2</id>
<name>father</name>
</father>
</People>