JAXB試作

參考:http://docs.oracle.com/javaee/5/tutorial/doc/bnazg.html

 

@XmlRootElement
public class Foo {

private int id;
private String name;

public int getId() {
return id;
}
@XmlAttribute
public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}

}

 

=============================================================

try {
javax.xml.bind.JAXBContext.newInstance(com.test.om.Foo.class, com.test.om.Bar.class).generateSchema(new javax.xml.bind.SchemaOutputResolver(){
@Override
public javax.xml.transform.Result createOutput(String namespaceUri, String suggestedFileName) {
return new javax.xml.transform.stream.StreamResult(new java.io.File(“C:/Temp/", suggestedFileName));
}

});

com.test.om.Foo foo = new com.test.om.Foo();
foo.setId(1);
foo.setName(“Hello World");

// Marshal
java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
javax.xml.bind.Marshaller jaxbMarshaller = javax.xml.bind.JAXBContext.newInstance(com.test.om.Foo.class).createMarshaller();
jaxbMarshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(foo, baos);
// // // jaxbMarshaller.marshal(foo, new java.io.File(“C:/Temp/", “foo.xml"));
// // // jaxbMarshaller.marshal(foo, System.out);
baos.flush();
byte[] bytes = baos.toByteArray();
baos.close();

java.io.ByteArrayInputStream bais = new java.io.ByteArrayInputStream(bytes);
// Unmarshal
javax.xml.bind.Unmarshaller jaxbUnmarshaller = javax.xml.bind.JAXBContext.newInstance(com.test.om.Foo.class).createUnmarshaller();
com.test.om.Foo f = (com.test.om.Foo) jaxbUnmarshaller.unmarshal( bais );
// // // com.test.om.Foo f = (com.test.om.Foo) jaxbUnmarshaller.unmarshal(new java.io.File(“C:/Temp/", “foo.xml"));
System.out.println(f.getName());
bais.close();
} catch (java.io.IOException ex) {
ex.printStackTrace();
} catch (javax.xml.bind.JAXBException ex) {
ex.printStackTrace();
}

廣告

About fenjj

Perfect !!??...
本篇發表於 Uncategorized。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s