本文主要是介绍JAXB Sample,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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
- 生成的JAXB Model Classes 如下:
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>
这篇关于JAXB Sample的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!