JAXB คือ อะไร
JAXB ก็คือ สถาปัตยกรรม ที่ช่วยให้สร้างความสดวกสบายให้กับ Deverlopers ในการ แปลงข้อมูลจาก XML ไปเป็น Java ( Unmashalling ) หรือ จาก Java ไปเป็น XML ( Mashalling ) นั่นเอง
JAXB ARCHITECTURE
-------------> Schema to Java
JAVA to Schema
ขั้นตอนการดำเนินงานตาม โครงสร้างดังภาพด้านบน สามารถแบ่งได้ดังนี้
- Schema compiler : เป็นส่วนที่คอยแปลงหรือเชื่อมโยง Source Schema กับกลุ่มของ JAXB Class ที่เป็นโปรแกรมภาษา Java
- Schema generator : เป็นขั้นตอนการจับคู่กลุ่มโปรแกรมที่มีอยู่เพื่อให้ได้ Schema ออกมา
- Binding runtime framework : เป็นการเตรียม unmarshalling และ marshalling เพื่อให้สามารถเข้าถึง จัดการและตรวจสอบเนื้อหาใน XML ด้วยการใช้ schema ที่ได้มาและโปรแกรมที่มีอยู่ได้
The JAXB Binding Process
ขั้นตอนในการเชื่อมโยงข้อมูลการทำงานสามารถแบ่งได้ดังนี้
1. Generate classes : XML Schema จะถูกนำมาใช้เป็นตัว Input เพื่อที่จะให้ตัว Complier สร้าง Class JAXB ที่มาจาก Schema นั้นๆ
2. Compile classes : ทุกๆ Class ที่ถูกสร้างขึ้น Source File ต่างๆและ Code โปรแกรมจะต้องถูก Complier ตรงส่วนนี้
3. Unmarshal: เอกสาร XML ที่เขียนขึ้นตามข้อจำกัดต่างๆใ นthe source schema จะถูก unmarshal โดยJAXB binding framework นอกจากนั้น JAXB ยังสนับสนุนการunmarshal ข้อมูล XML จากข้อมูลอื่นๆเช่น DOM, string buffers, SAX และอื่นๆ
4. Generate content tree : กระบวนการ unmarshal จะสร้างcontent tree ของ Object ที่ได้มาจากการสร้างJAXB classต่างๆซึ่ง content tree นี้จะเป็นตัวแทนโครงสร้างและหัวข้อของเอกสาร XML
JAXB Binding Process
5. Validate (optional) : อยู่ในขั้นตอนการ unmarshal ที่เป็นการตรวจสอบเอกสาร XML ก่อนจะสร้าง content tree ซึ่งถ้ามีการปรับเปลี่ยน content tree ในขั้นตอนที่ 6 ขั้นต่อไปก็จะสามารถใช้การดำเนินการแบบ JAXB Validate เพื่อเป็นเหตุผลในการเปลี่ยนแปลงก่อนจะ marshalcontent กลับไปเป็นเอกสาร XML
6. Process content: Client สามารถเปลี่ยนแปลงข้อมูล XML ที่ถูกแทนด้วย Java content tree โดยความหมายของ interface ต่างๆถูกสร้างโดย binding compiler
7. Marshal: เป็นขั้นตอนที่ content tree ถูก marshal ออกมาเป็นเอกสาร XML เป็น 1 หรือ มากกว่า 1 เอกสาร
Unmarshalling คือ อะไร
คือ การแปลงเอกสาร XML ไปเป็น Java Object
Marshalling คืออะไร
คือ การแปลงจาก Java Object ไปเป็น เอกสาร XML
Validation คือ อะไร
XML Schema ต่างๆ
Mapping Schema to Java or Java to Schema
สำหรับรูปแบบการแปลง Shema เป็น Java นั้น หรือ จาก Java เป็น Schema นั้น สามารถ ศึกษาได้จาก http://download.oracle.com/javaee/5/tutorial/doc/bnazq.html นะครับ
สำหรับ ทำความรู้จักกับเจ้า JAXB ตอนที่ 1 ก็ขอจบไว้เพียงเท่านี้ก่อนนะครับ ติดตามอ่านตอนต่อไปได้ เร็วๆ นี้ ^^
JAXB ก็คือ สถาปัตยกรรม ที่ช่วยให้สร้างความสดวกสบายให้กับ Deverlopers ในการ แปลงข้อมูลจาก XML ไปเป็น Java ( Unmashalling ) หรือ จาก Java ไปเป็น XML ( Mashalling ) นั่นเอง
JAXB ARCHITECTURE
-------------> Schema to Java
JAVA to Schema
ภาพแสดงการนำ JAXB ไปใช้งาน
ขั้นตอนการดำเนินงานตาม โครงสร้างดังภาพด้านบน สามารถแบ่งได้ดังนี้
- Schema compiler : เป็นส่วนที่คอยแปลงหรือเชื่อมโยง Source Schema กับกลุ่มของ JAXB Class ที่เป็นโปรแกรมภาษา Java
- Schema generator : เป็นขั้นตอนการจับคู่กลุ่มโปรแกรมที่มีอยู่เพื่อให้ได้ Schema ออกมา
- Binding runtime framework : เป็นการเตรียม unmarshalling และ marshalling เพื่อให้สามารถเข้าถึง จัดการและตรวจสอบเนื้อหาใน XML ด้วยการใช้ schema ที่ได้มาและโปรแกรมที่มีอยู่ได้
The JAXB Binding Process
ภาพแดงการทำงานที่เกิดขึ้นในการสร้างใช้ JAXB
ขั้นตอนในการเชื่อมโยงข้อมูลการทำงานสามารถแบ่งได้ดังนี้
1. Generate classes : XML Schema จะถูกนำมาใช้เป็นตัว Input เพื่อที่จะให้ตัว Complier สร้าง Class JAXB ที่มาจาก Schema นั้นๆ
2. Compile classes : ทุกๆ Class ที่ถูกสร้างขึ้น Source File ต่างๆและ Code โปรแกรมจะต้องถูก Complier ตรงส่วนนี้
3. Unmarshal: เอกสาร XML ที่เขียนขึ้นตามข้อจำกัดต่างๆใ นthe source schema จะถูก unmarshal โดยJAXB binding framework นอกจากนั้น JAXB ยังสนับสนุนการunmarshal ข้อมูล XML จากข้อมูลอื่นๆเช่น DOM, string buffers, SAX และอื่นๆ
4. Generate content tree : กระบวนการ unmarshal จะสร้างcontent tree ของ Object ที่ได้มาจากการสร้างJAXB classต่างๆซึ่ง content tree นี้จะเป็นตัวแทนโครงสร้างและหัวข้อของเอกสาร XML
JAXB Binding Process
5. Validate (optional) : อยู่ในขั้นตอนการ unmarshal ที่เป็นการตรวจสอบเอกสาร XML ก่อนจะสร้าง content tree ซึ่งถ้ามีการปรับเปลี่ยน content tree ในขั้นตอนที่ 6 ขั้นต่อไปก็จะสามารถใช้การดำเนินการแบบ JAXB Validate เพื่อเป็นเหตุผลในการเปลี่ยนแปลงก่อนจะ marshalcontent กลับไปเป็นเอกสาร XML
6. Process content: Client สามารถเปลี่ยนแปลงข้อมูล XML ที่ถูกแทนด้วย Java content tree โดยความหมายของ interface ต่างๆถูกสร้างโดย binding compiler
7. Marshal: เป็นขั้นตอนที่ content tree ถูก marshal ออกมาเป็นเอกสาร XML เป็น 1 หรือ มากกว่า 1 เอกสาร
Unmarshalling คือ อะไร
คือ การแปลงเอกสาร XML ไปเป็น Java Object
Marshalling คืออะไร
คือ การแปลงจาก Java Object ไปเป็น เอกสาร XML
Validation คือ อะไร
คือ กระบวนการตรวจสอบเอกสาร XML กระบวนการนี้ได้ถูกเพิ่มขึ้นมาในตอนทำ marshal เพื่อที่จะเป็นการยืนยันว่ามันจะไม่ทำให้เอกสาร XMLเกิดความผิดพลาดเมื่อมีการเปลี่ยนแปลงเอกสารในรูปแบบของ JAXB
XML Schema คืออะไร
คือ วิธีการที่จะใช้จำแนกชนิดของเอกสารแบบ XMLโดยจะบอกถึงโครงสร้างและชนิดของข้อมูลในเอกสาร XML แต่ละชนิด
โดยตัว schema เองมีหน้าตาเหมือนเนื้อหา XML ตามปรกติเช่น XML Schema (W3C) และ RELAX NG หรือนิยามขึ้นโดยภาษาพิเศษโดยเฉพาะและเป็นส่วนหนึ่งของ XML เช่น Document Type Definition (DTD) ซึ่งพัฒนาขึ้นก่อนแบบอื่นที่กล่าวมาข้างต้นโดยพัฒนามาจาก SGML โดยมีข้อจำกัดเช่นการไม่รองรับ XML Namespace ( http://th.wikipedia.org/wiki/XML_schema )
XML Schema ต่างๆ
- XML stands for Extensible Markup Language
- XML is a markup language much like HTML
- XML was designed to carry data, not to display data
- XML tags are not predefined. You must define your own tags
- XML is designed to be self-descriptive
- XML is a W3C Recommendation
Language
Java Representation of XML Schema
JAXB จะสนับสนุนการจัดกลุ่ม เพื่อสร้างเป็น class ใน Java Package โดยจะประกอบไปด้วย
- ชื่อ Class ที่ได้มาจาก XML element name หรือ ที่กำหนดโดย binding customization
- ObjectFactory class คือ factory ที่ใช้ในการ return instances of a bound Java class
Mapping Schema to Java or Java to Schema
สำหรับรูปแบบการแปลง Shema เป็น Java นั้น หรือ จาก Java เป็น Schema นั้น สามารถ ศึกษาได้จาก http://download.oracle.com/javaee/5/tutorial/doc/bnazq.html นะครับ
สำหรับ ทำความรู้จักกับเจ้า JAXB ตอนที่ 1 ก็ขอจบไว้เพียงเท่านี้ก่อนนะครับ ติดตามอ่านตอนต่อไปได้ เร็วๆ นี้ ^^
ไม่มีความคิดเห็น:
แสดงความคิดเห็น