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 如下:


3. 测试启动类:
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>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值