1. Schema文件:
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.liulutu.com/students/" targetNamespace="http://www.liulutu.com/students/"> <element name="students"> <complexType> <sequence> <element name="student" type="tns:StudentType" maxOccurs="unbounded" /> </sequence> </complexType> </element> <simpleType name="SexType"> <restriction base="string"> <enumeration value="Male" /> <enumeration value="Female" /> </restriction> </simpleType> <complexType name="StudentType"> <attribute name="sex" type="tns:SexType" /> <attribute name="name" type="string" /> </complexType> </schema>
2. 生成Model类:
- Eclipse开发环境中,右键选中Schema文件 --> Generate --> JAXB Classes
![](https://ucc.alicdn.com/notfound.png?x-oss-process=image/resize,w_1400/format,webp)
- 生成的JAXB Model Classes 如下:
![](https://ucc.alicdn.com/notfound.png?x-oss-process=image/resize,w_1400/format,webp)
package demo; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import demo.model.ObjectFactory; import demo.model.SexType; import demo.model.StudentType; import demo.model.Students; public class JaxbDemo { private static void addStudent(ObjectFactory factory, Students students, String name, SexType type) { StudentType studentType = factory.createStudentType(); studentType.setName(name); studentType.setSex(type); students.getStudent().add(studentType); } public static void main(String[] args) throws JAXBException { ObjectFactory factory = new ObjectFactory(); Students students = factory.createStudents(); JaxbDemo.addStudent(factory, students, "Jim", SexType.MALE); JaxbDemo.addStudent(factory, students, "Merry", SexType.FEMALE); JAXBContext jaxbContext = JAXBContext.newInstance("demo.model"); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(students, System.out); } }
4. 结果输出:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:students xmlns:ns2="http://www.liulutu.com/students/"> <student sex="Male" name="Jim"/> <student sex="Female" name="Merry"/> </ns2:students>