JAXB小例子
博客分类:
- package jaxb.test;
- import javax.xml.bind.annotation.XmlAccessType;
- import javax.xml.bind.annotation.XmlAccessorType;
- import javax.xml.bind.annotation.XmlAttribute;
- import javax.xml.bind.annotation.XmlElement;
- import javax.xml.bind.annotation.XmlRootElement;
- @XmlRootElement
- @XmlAccessorType(XmlAccessType.PROPERTY)
- public class Account {
- private String id;
- private String name;
- @XmlAttribute (name = "id")
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- @XmlElement(name = "name")
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
- package jaxb.test;
- import java.net.URL;
- import javax.xml.bind.JAXBContext;
- import javax.xml.bind.Unmarshaller;
- public class Client {
- public static void main(String[] args) throws Exception {
- // JAXBContext context = JAXBContext.newInstance(UserList.class);
- JAXBContext context = JAXBContext.newInstance(Account.class);
- Unmarshaller unmarshaller = context.createUnmarshaller();
- // URL xmlFileUrl = Client.class.getResource("users.xml");
- // UserList userList = (UserList) unmarshaller.unmarshal(xmlFileUrl);
- // System.out.println(userList.getUsers().get(0).getName());
- // System.out.println(userList.getUsers().get(0).getId());
- URL xmlFileUrl = Client.class.getResource("account.xml");
- Account account = (Account) unmarshaller.unmarshal(xmlFileUrl);
- System.out.println(account.getId());
- System.out.println(account.getName());
- }
- }
- package jaxb.test;
- import javax.xml.bind.annotation.XmlAttribute;
- import javax.xml.bind.annotation.XmlElement;
- public class User {
- private int id;
- private String name;
- @XmlAttribute (name = "id")
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- @XmlElement(name = "name")
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String toString() {
- return id + ":" + name;
- }
- }
- package jaxb.test;
- import java.util.List;
- import javax.xml.bind.annotation.XmlElement;
- import javax.xml.bind.annotation.XmlRootElement;
- @XmlRootElement(name = "users")
- public class UserList {
- List<User> users;
- @XmlElement(name = "user")
- public List<User> getUsers() {
- return users;
- }
- public void setUsers(List<User> users) {
- this.users = users;
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <account id="1">
- <name>ibm</name>
- </account>
- <?xml version="1.0" encoding="UTF-8"?>
- <users xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
- <user id="1">
- <name>Unmi</name>
- </user>
- <user id="2">
- <name>She</name>
- </user>
- </users>