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>