Student.java
package com.conv.xml;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Student {
private String id;
private String name;
private String sex;
private int age;
private Classroom classroom;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Classroom getClassroom() {
return classroom;
}
public void setClassroom(Classroom classroom) {
this.classroom = classroom;
}
public Student() {
super();
}
public Student(String id, String name, String sex, int age,
Classroom classroom) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
this.classroom = classroom;
}
}
Classroom.java
package com.conv.xml;
public class Classroom {
private String id;
private String name;
private String grade;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public Classroom(String id, String name, String grade) {
super();
this.id = id;
this.name = name;
this.grade = grade;
}
public Classroom() {
super();
}
}
测试类:
package com.conv.xml;
import java.io.StringReader;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
public class Test {
@org.junit.Test
public void test1(){
try {
JAXBContext context = JAXBContext.newInstance(Student.class);
Marshaller marshaller = context.createMarshaller();
Student stu = new Student("1","zhangsan","男",25,new Classroom("1","计071-2","2011"));
marshaller.marshal(stu, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
@org.junit.Test
public void test2(){
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><age>25</age><classroom><grade>2011</grade><id>1</id><name>计071-2</name></classroom><id>1</id><name>zhangsan</name><sex>男</sex></student>";
try {
JAXBContext context = JAXBContext.newInstance(Student.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Student stu = (Student)unmarshaller.unmarshal(new StringReader(xml));
System.out.println("name:"+stu.getName()+" className:"+stu.getClassroom().getName());
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
使用了JUNIT进行测试。