JAXB小例子

博客分类:

 

Java代码  收藏代码
  1. package jaxb.test;  
  2.   
  3. import javax.xml.bind.annotation.XmlAccessType;  
  4. import javax.xml.bind.annotation.XmlAccessorType;  
  5. import javax.xml.bind.annotation.XmlAttribute;  
  6. import javax.xml.bind.annotation.XmlElement;  
  7. import javax.xml.bind.annotation.XmlRootElement;  
  8.   
  9. @XmlRootElement  
  10. @XmlAccessorType(XmlAccessType.PROPERTY)  
  11. public class Account {  
  12.     private String id;  
  13.     private String name;  
  14.   
  15.     @XmlAttribute (name = "id")  
  16.     public String getId() {  
  17.         return id;  
  18.     }  
  19.   
  20.     public void setId(String id) {  
  21.         this.id = id;  
  22.     }  
  23.   
  24.     @XmlElement(name = "name")  
  25.     public String getName() {  
  26.         return name;  
  27.     }  
  28.   
  29.     public void setName(String name) {  
  30.         this.name = name;  
  31.     }  
  32.   
  33. }  

 

 

Java代码  收藏代码
  1. package jaxb.test;  
  2.   
  3. import java.net.URL;  
  4.   
  5. import javax.xml.bind.JAXBContext;  
  6. import javax.xml.bind.Unmarshaller;  
  7.   
  8. public class Client {  
  9.     public static void main(String[] args) throws Exception {  
  10. //      JAXBContext context = JAXBContext.newInstance(UserList.class);  
  11.         JAXBContext context = JAXBContext.newInstance(Account.class);  
  12.         Unmarshaller unmarshaller = context.createUnmarshaller();  
  13.         // URL xmlFileUrl = Client.class.getResource("users.xml");  
  14.         // UserList userList = (UserList) unmarshaller.unmarshal(xmlFileUrl);  
  15.         // System.out.println(userList.getUsers().get(0).getName());  
  16.         // System.out.println(userList.getUsers().get(0).getId());  
  17.   
  18.         URL xmlFileUrl = Client.class.getResource("account.xml");  
  19.         Account account = (Account) unmarshaller.unmarshal(xmlFileUrl);  
  20.         System.out.println(account.getId());  
  21.         System.out.println(account.getName());  
  22.     }  
  23. }  

 

 

Java代码  收藏代码
  1. package jaxb.test;  
  2.   
  3. import javax.xml.bind.annotation.XmlAttribute;  
  4. import javax.xml.bind.annotation.XmlElement;  
  5.   
  6. public class User {  
  7.     private int id;  
  8.     private String name;  
  9.    
  10.     @XmlAttribute (name = "id")  
  11.     public int getId() {  
  12.         return id;  
  13.     }  
  14.    
  15.     public void setId(int id) {  
  16.         this.id = id;  
  17.     }  
  18.    
  19.     @XmlElement(name = "name")  
  20.     public String getName() {  
  21.         return name;  
  22.     }  
  23.    
  24.     public void setName(String name) {  
  25.         this.name = name;  
  26.     }  
  27.    
  28.     public String toString() {  
  29.         return id + ":" + name;  
  30.     }  
  31. }  

 

 

Java代码  收藏代码
  1. package jaxb.test;  
  2.   
  3. import java.util.List;  
  4.   
  5. import javax.xml.bind.annotation.XmlElement;  
  6. import javax.xml.bind.annotation.XmlRootElement;  
  7.   
  8. @XmlRootElement(name = "users")  
  9. public class UserList {  
  10.     List<User> users;  
  11.    
  12.     @XmlElement(name = "user")  
  13.     public List<User> getUsers() {  
  14.         return users;  
  15.     }  
  16.    
  17.     public void setUsers(List<User> users) {  
  18.         this.users = users;  
  19.     }  
  20. }  

 

 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <account id="1">  
  3.     <name>ibm</name>  
  4. </account>  

 

 

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <users xmlns:i="http://www.w3.org/2001/XMLSchema-instance">  
  3.     <user id="1">  
  4.         <name>Unmi</name>  
  5.     </user>  
  6.     <user id="2">  
  7.         <name>She</name>  
  8.     </user>  
  9. </users> 
posted on 2013-05-26 16:16  jason_yang  阅读(159)  评论(0编辑  收藏  举报