วันพุธที่ 24 กุมภาพันธ์ พ.ศ. 2553

Covert XSD to Java โดยใช้ jaxb

1. เราจะใช้คำสั่ง xjc เพื่อที่จะแปลงข้อมูลใน xsd เป็น java object เพื่อเราจะใช้งานได้ โดยใช้คำสั่ง
xjc -p -d src
2. พอทำเสร็จเราจะได้ java class ไว้ใช้งานในระบบ ถ้ามีการยิง xml มาจะสามารถ convert เป็น java object ได้เลย
3. ต่อไปวิธีใช้งานจะเรียกกันว่า Marshall กับ UnMarshall
3.1 Marshall คือการที่เราต้องการแปลงจาก Java Object ไปเป็น XML File โดยจะมีการใช้คร่าวๆ ดังนี้

JAXBContext jaxbContext
= JAXBContext.newInstance
(<PackageName>);
Marshaller marshaller = jaxbContext.createMarshaller();
ObjectFactory factory = new ObjectFactory();
Temp aTemp = factory.createTemp();
marshaller.marshal(aTemp, <Type>);

(สามารถใช้ dom4j ที่เป็น DocumentResult ในการโยนค่าไปรับ xml ค่าได้) เช่น
DocumentResult dr = new DocumentResult(); แล้วเอา dr ไปใส่ในช่อง
3.2 UnMarshall จะทำการแปลงค่าจาก XML File มาใส่ใน Object ให้เราเลย

JAXBContext jaxbContext
= JAXBContext.newInstance
(<PackageName>);
Unmarshaller unmarshaller =
jaxbContext.createUnmarshaller();
Temp aTemp
= (Temp)unmarshaller.unmarshal(
new File("src/main/resources/dataTest.xml"));