JavaBean To XML By JAXB
2011-12-26 16:09 _9527 阅读(533) 评论(0) 编辑 收藏 举报JAXB:
Schema:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.sidways.com.cn" xmlns="http://www.sidways.com.cn" elementFormDefault="qualified"> <xs:complexType name="User"> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="age" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:element name="user" type="User"></xs:element> <xs:complexType name="Users"> <xs:sequence> <xs:element ref="user" minOccurs="1" maxOccurs="unbounded"></xs:element> </xs:sequence> </xs:complexType> <xs:element name="users" type="Users"></xs:element> </xs:schema>
xjc:
$ xjc User.xsd -d src -p entity.userinfo
java:
package test; import java.util.List; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import entity.userinfo.ObjectFactory; import entity.userinfo.User; import entity.userinfo.Users; public class Test { public static void main(String[] args) { try { JAXBContext jc = JAXBContext.newInstance("entity.userinfo"); ObjectFactory objFactory = new ObjectFactory(); User user1 = new User(); user1.setName("Tom"); user1.setAge("16"); User user2 = new User(); user2.setName("Jay"); user2.setAge("21"); Users users = objFactory.createUsers(); List<User> list = users.getUser(); list.add(user1); list.add(user2); JAXBElement<Users> userE = objFactory.createUsers(users); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.marshal(userE, System.out); } catch (JAXBException e) { e.printStackTrace(); } } }
Console:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <users xmlns="http://www.w3school.com.cn"> <user> <name>Tom</name> <age>16</age> </user> <user> <name>Jay</name> <age>21</age> </user> </users>
源码:XMLtest.zip