import java.io.Serializable;
import java.io.StringWriter;
import java.util.HashSet;
import java.util.Set;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement
@XmlType(propOrder = { "head", "body"})
public class Service implements Serializable {
private static final long serialVersionUID = 4811159653821704143L;
@XmlAttribute(name="id")
public String getId(){
return "dataSync";
}
private Head head;
@XmlElement(name="head")
public Head getHead() {
return head;
}
public void setHead(Head head) {
this.head = head;
}
private Body body;
@XmlElement(name="body")
public Body getBody() {
return body;
}
public void setBody(Body body) {
this.body = body;
}
public static void main(String[] args) {
Head h = new Head();
h.setTradeId("004de666-551f-11e0-b474-a4badb4689bc");
h.setDate("2014-07-10");
h.setCount("50");
Body b = new Body();
Set<String> s = new HashSet<String>();
s.add("zhang");
s.add("wang");
s.add("li");
b.setProgramSet(s);
Service st = new Service();
st.setHead(h);
st.setBody(b);
st.test(st);
}
public void test(Object obj){
StringWriter writer = new StringWriter();
try {
JAXBContext jc = JAXBContext.newInstance(obj.getClass());
Marshaller ms = jc.createMarshaller();
ms.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
ms.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
ms.marshal(obj, writer);
String result = writer.toString();
System.out.println(result);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
参考:http://hanhongke123.blog.163.com/blog/static/6222349420124822626759/