Thursday, August 20, 2009

Complete JAXB Example

Complete JAXB Example
Xml file: foo.xml




shekhar

12
Hyb
AP



Kajal

12
Hyb
AP




12
Hyb
AP


12
Hyb
AP



Pojo classes :
RootElement.java
package com.client.optrasystems.service;
@XmlRootElement
public class RootElement {
int step;
List element=new ArrayList();
List subElement=new ArrayList();

@XmlAttribute
public int getStep() {
return step;
}
public void setStep(int step) {
this.step = step;
}
@XmlElementWrapper(name="list")
@XmlElement(name="Element")
public List getElement() {
return element;
}

public void setElement(List element) {
this.element = element;
}

@XmlElement(name="SubElement")
public List getSubElement() {
return subElement;
}
public void setSubElement(List subElement) {
this.subElement = subElement;
}

}
SubElement.java
package com.client.optrasystems.service;
@XmlRootElement
public class SubElement {

private Integer home;
private String city;
private String state;

@XmlElement
public Integer getHome() {
return home;
}
public void setHome(Integer home) {
this.home = home;
}
@XmlElement
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}

@XmlElement
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}

}
Element.java
package com.client.optrasystems.service;
@XmlRootElement
public class Element {
Integer size;
String name;
Address address;

@XmlAttribute
public Integer getSize() {
return size;
}
public void setSize(Integer size) {
this.size = size;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(name="address")
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
Address.java
package com.client.optrasystems.service;
public class Address {

private Integer home;
private String city;
private String state;

@XmlElement
public Integer getHome() {
return home;
}
public void setHome(Integer home) {
this.home = home;
}
@XmlElement
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@XmlElement
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
Test class
package com.client.optrasystems.service;
import java.io.File;
import java.io.FileOutputStream;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.transform.stream.StreamSource;

public class TestWS {
public static void main(String[] args) {
try
{
JAXBContext jc=JAXBContext.newInstance(RootElement.class);
//creating java object from XML.
Unmarshaller u =jc.createUnmarshaller();
JAXBElement root = u.unmarshal(new StreamSource(new File("D:\\workspace\\webservice_client\\src\\com\\client\\optrasystems\\service\\foo.xml")),RootElement.class);
RootElement foo = root.getValue();
//creating xml file from java object using Jaxb
Marshaller marshaller=jc.createMarshaller();
marshaller.marshal(foo, new FileOutputStream(new File("c:\\foo.xml")));
}catch(Exception e){
e.printStackTrace();
}
}
}

No comments: