วันอังคารที่ 13 กันยายน พ.ศ. 2554

การทำความรู้จักกับ JAXB





JAXB คือ ?

Java Architecture for XML Binding หรือ JAXB ช่วยให้การผูกกันระหว่าง XML schemas และ Java representations



เป็นไปได้อย่างรวดเร็วและสะดวกม

ากขึ้น โดยที่มีการสร้างที่ง่ายเพื่อให้เหล่านักพัฒนา Java สามารถรวมเอาข้อมูล XML และกระบวนการทำงานของฟังก์ชั่นต่างๆใน Java application เอาไว้เข้าด้วยกัน ในส่วนหนึ่งของกระบวนการนี้ JAXB จะมี methods สำหรับการทำ unmarshalling ของเอกสารตัวอย่างของ XML ไปเป็น Java content trees และ สามารถทำการ marshalling จาก Java content tress กลับไปเป็น เอกสารตัวอย่างของ XML ได้ นอกจากนี้แล้ว

JAXB ยังสามารถช่วยในการสร้าง XML schema จาก object ของ Java ได้

JAXB Architecture






ในส่วนของ Architecture ประกอบด้วยองค์ประกอบต่อไปนี้

· Schema compiler : เป็นการผูกระหว่าง schema

กับกลุ่มของ schema ที่ได้มาจากองค์ประกอบของโปรแกรม โดยที่การผูกกันจะถูกอธิบายโดยการใช้ภาษา XML-based blinding language

· Schema generator : เป็นกลุ่มขององค์ประกอบของโปรแกรมที่มีอยู่รวมไปถึschema ที่ได้มา โดยมีการ mapping


เป็นการอธิบายแบบมีการเขียนบันทึกย่อๆของโปรแกรม

· Binding runtime framework : ในส่วนนี้จะช่วยให้การ unmarshalling (การอ่าน) และ marshalling (การเขียน) การดำเนินการสำหรับการเข้าถึง การจัดการ และการตรวจสอบเนื้อหาของ XML ที่มี โดยใช้ทั้งschema ที่ได้รับมา หรือ ส่วนประกอบของ program ที่มีอยู่

The JAXB Binding Process

\


กระบวนการในการทำ JAXB data binding process คือ

1. Generate classes : โดยเริ่มจากทำนำ XML schema

ที่จะใช้ ใส่ไปยังตัว JAXB binding compiler เพื่อทำการสร้าง JAXB classes ตาม schema นั้นๆ

2. Compile classes : classes ต่างๆที่ถูกสร้างขึ้นมา ไฟล์ source และ application code ทั้งหมดจะต้องถูก compile

3. Unmarshal : เอกสาร XML ที่เขียนเป็นไปตามข้อจำกัด ในส่วนของ source schema

เป็น unmarshalled โดยการทำ JAXB binding framework สังเกตว่า JAXB จะรวมถึงการสนับสนุนการทำ unmarshalling ของข้อมูล XML จาก source อื่นๆที่นอกเหนือจาก file หรือ
document ยกตัวอย่างเช่น DOM nodes, String buffers, SAX Source เป็นต้น

4. Generate content tree : กระบวนการทำ unmarshalling ในการสร้าง content tree

ของข้อมูล object จากการสร้างของ JAXB classes ใน content tree นี้จะแสดงให้เห็นถึงโครงสร้างและ content ของ source XML document

5. Validate (optional) : ในกระบวนการ unmarshalling จะมีตัวเลือกที่เกี่ยวข้องกับการตรวจสอบของ source XML document ก่อนจะมีการสร้างในส่วนของ content tree สังเกตว่า ถ้าคุณมีการเปลี่ยนแปลง content tree ในขั้นตอนที่ 6 คุณจะสามารถใช้การดำเนินงานของ JAXB Validate ในการ ตรวจสอบในส่วนที่มีการเปลี่ยนแปลงก่อนการทำ marshalling กับเนื้อหา กลับไปเป็น XML document

6. Process content : ในส่วนของ client application สามารถที่จะทำการปรับเปลี่ยนข้อมูล XML โดยมีการถูกแสดงโดยการใช้ Java content tree โดยมีการอธิบายเป็น interface ที่ถูกสร้างจาก binding compiler ได้

7. Marshal เป็นกระบวนการที่ content tree จะทำการ marshaled ออกไปเป็น XML

ที่อาจจะเป็น 1 document หรืออาจมากกว่านั้น โดย content อาจจะถูกตรวจสอบก่อนที่จะทำการ marshalling


Binding XML Schemas


ส่วนนี้จะอธิบายการ Binding ระหว่าง XML กับ Java โดยใช้ JAXB ทั้งหมดของการ Binding สามารถเขียนทับได้ทั้งหมดหรือสามารถใช้ได้ตามกรณีนั้นๆตามความหมายของการประกาศการbindingที่กำหนดเอง

Default DataType Bindings

ในส่วนนี้จะจะเป็นการอธิบายการแปลง schemaไปเป็นJAVA, JAXBElement, และJAVA ไปเป็นschema ยกตัวอย่างเช่น

Schema-to-JavaMapping



Java-to-Schema Mapping




ไม่มีความคิดเห็น:

แสดงความคิดเห็น