User.java
package generated;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"id",
"name",
"vaddresses"
})
@XmlRootElement(name = "user")
public class User {
protected int id;
@XmlElement(required = true)
protected String name;
@XmlElement(required = true)
protected User.Vaddresses vaddresses;
public int getId() {
return id;
}
public void setId(int value) {
this.id = value;
}
public String getName() {
return name;
}
public void setName(String value) {
this.name = value;
}
public User.Vaddresses getVaddresses() {
return vaddresses;
}
public void setVaddresses(User.Vaddresses value) {
this.vaddresses = value;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"address"
})
public static class Vaddresses {
@XmlElement(required = true)
protected List<User.Vaddresses.Address> address;
public List<User.Vaddresses.Address> getAddress() {
if (address == null) {
address = new ArrayList<User.Vaddresses.Address>();
}
return this.address;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"street"
})
public static class Address {
@XmlElement(required = true)
protected String street;
public String getStreet() {
return street;
}
public void setStreet(String value) {
this.street = value;
}
}
}
}
JaxBExample.java
package generated;
import generated.User.Vaddresses.Address;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class JAXBExample {
public static void main(String[] args) {
try {
File file = new File("D:\\StackOverFlow\\JAXBTest\\file.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(User.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
User user = (User) jaxbUnmarshaller.unmarshal(file);
System.out.println("ID::"+user.getId());
System.out.println("Name::"+user.getName());
System.out.print("Addresses::");
for(Address address:user.getVaddresses().getAddress())
{
System.out.println(address.getStreet());
}
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
output:--
ID::123
Name::John Doe
Addresses::Street XYZ
Street ABC