JavaBean To XML By JAXB
2011-12-26 16:09 _9527 阅读(538) 评论(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
浙公网安备 33010602011771号