SlideShare a Scribd company logo
1 of 14
Download to read offline
JAXB
“JAVA ARCHITECTURE
  FOR XML BINDING”
JAXB

JAXB (Java Architecture for XML Binding) เป็ น Library ของ
Java ที่ใช้ เชื่อมโยง ภาษา XML กับ ภาษา JAVA ทาให้ การเชื่อม
   เอกสาร XML กับ Object ที่เป็ น Java class ทาได้ ง่ายขึ ้น
Binding between XML Schema
and Java Classes

• JAXB มีการรองรับวิธีที่สะดวกและรวดเร็วในการเชื่อมโยงระหว่าง
XML Schema กับ Java Class
• มี 2 ขันตอน
         ้
• แปลงเอกสาร XML ให้ กลายเป็ น Java object (Unmarshalling)
• แปลง Java object กลับมาเป็ นเอกสาร XML(Marshalling)
• JAXB รองรับการสร้ าง XML schema จาก Java object ได้
JAXB Architecture

                    Schema               Application Code
                   Generator
    XML
  Schema                                                  Package
                                 Portable JAXB-        javax.xml.bind
                                   annotated
  XML/Java                          classes
                   Schema                                Annotation-
Customization      Complier
   Binding                                              driven Binding
                                    Object               Framework
 Declarations                                          Implementation
                                    Factory

                Schema to Java                Application

                Java to Schema
JAXB Architecture

ขันตอนของ JAXB ประกอบด้ วยองค์ประกอบทางสถาปั ตยกรรมดังต่อไปนี ้
  ้
• Schema compiler
• Schema generator
• Binding runtime framework
Architecture
• Schema compiler
   เป็ นส่วนสาคัญที่ทาการแปลงหรื อเชื่อมโยง source schema กับกลุมของ
                                                               ่
   JAXB class ที่เป็ นโปรแกรมภาษา Java
• Schema generator
   เป็ นการจับคูกลุมโปรแกรมที่มีอยูเ่ พื่อให้ ได้ schema ออกมา
               ่ ่
• Binding runtime framework
   มีการเตรี ยม unmarshalling และ marshalling เพื่อให้ สามารถเข้ าถึง
   จัดการและตรวจสอบเนื ้อหาใน XML ด้ วยการใช้ schema ที่ได้ มาและ
   โปรแกรมที่มีอยู่
JAXB Binding Process

                              JAXB
       Schema      bind      mapped
                             classes



   follows                       Instances of

                Unmarshal
                (validate)
      Docume
                             Objects
        nt
                 marshal
                (validate)
JAXB Binding Process
ขันตอนทัวไปในกระบวนการเชื่อมโยงข้ อมูลของ JAXB คือ
  ้       ่
1. Generate classes : XML Schema จะถูกนามาใช้ เป็ นตัว Input เพื่อที่จะให้ ตว  ั
Complier สร้ าง Class JAXB ที่มาจาก Schema นันๆ    ้
2. Compile classes : ทุก Class ที่ถกสร้ างขึ ้น Source File ต่างๆ และ โค้ ดโปรแกรม
                                   ู
จะต้ องถูก 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 เพื่อเป็ นเหตุผลในการ
  ้
เปลี่ยนแปลงก่อนจะ marshal content กลับไปเป็ นเอกสาร XML
6. Process content: Client สามารถเปลี่ยนแปลงข้ อมูล XML ที่ถกแทนด้ วย Java
                                                               ู
content tree โดยความหมายของ interface ต่างๆถูกสร้ างโดย binding compiler
7. Marshal: เป็ นขันตอนที่ content tree ถูก marshal ออกมาเป็ นเอกสาร XML เป็ น 1
                   ้
หรื อ มากกว่า 1 เอกสาร
Marshalling

 • Marshalling ได้ เตรี ยม client application ที่สามารถแปลง Java
 object ไปเป็ นเอกสาร XML
 • โดยปกติแล้ วตอนที่สร้ างเอกสาร XML ตัว Marshal จะใช้ การ
 เข้ ารหัสแบบ UTF-8
 • นอกจากนี ้ยังมีข้อกาหนดว่า Java content tree จะต้ องถูกต้ อง
 เมื่อเทียบกับ Schema เดิม เพื่อจะได้ marshal กลับไปเป็ นข้ อมูล
 XML ได้
Unmarshalling

 Unmarshalling ได้ เตรี ยม client application ที่สามารถแปลง
         ข้ อมูล XML ให้ กลายเป็ น Java objects
Validation
• Validation เป็ นกระบวนการตรวจสอบเอกสาร XML ซึงมีคณสมบัติตรงตาม
                                                      ่ ุ
ข้ อกาหนดที่แสดงใน Schema
• ใน JAXB เวอร์ ชน 1.0 มีการเตรี ยมให้ มีการตรวจสอบขณะที่ทา unmarshal
                  ั่
• JAXB เวอร์ ชน 2.0 อนุญาตให้ มีการตรวจสอบขณะทา unmarshal และ
              ั่
marshal ได้
• รูปแบบการทางาน Web service มีความหละหลวมในเรื่ องการอ่านข้ อมูลแต่
เข้ มงวดในการเขียนข้ อมูลออกมา เพื่อที่จะตอบสนองการทางานดังกล่าว ใน
ขันตอน validation จึงได้ เพิ่มขึ ้นมาในตอนทา marshal เพื่อที่จะเป็ นการยืนยัน
   ้
ว่ามันจะไม่ทาให้ เอกสาร XML เกิดความผิดพลาดเมื่อมีการเปลี่ยนแปลง
เอกสารในรูปแบบของ JAXB
Adventage
• Valid Data ได้ ข้อมูลที่ถกต้ อง : ใน JAXB Application ตามที่อธิบายไว้ ใน schema แล้ ว จะ
                           ู
ไม่อนุญาตให้ มีการสร้ างข้ อมูล Java object ที่ไม่ถกต้ องเด็ดขาด
                                                   ู
• Speed มีความรวดเร็ ว : สามารถทางานได้ รวดเร็ วด้ วยการใช้ วิธี Binding
• Ease of Use ใช้ งานง่าย : มันจะมี JAXB Compiler ที่เป็ นตัวประมวลผลโค้ ด ซึงให้ ความ
                                                                               ่
อิสระแก่นกพัฒนาได้ ลงมือเขียนและแก้ bug โค้ ดด้ วยตัวเอง โดยนักพัฒนาจะสามารถเขียน
         ั
Application ในการเข้ าถึงข้ อมูล XML ผ่านทาง Java Interface
• Data Conversion การแปลงข้ อมูล : ข้ อมูลเอกสารใน XML สามารถนามาแปลงเป็ น Data
type ใน Java ได้
• Customization การปรับแต่ง : ตอนทา Binding schema จะสามารถปรับแต่งได้ ตาม
ต้ องการ
• Extensibility ความสามารถในการ Extend : คลาสที่ถกสร้ างขึ ้น จะสามารถนาไป extend
                                                         ู
ให้ สามารถเพิ่มฟั งก์ชนการทางานต่อไปได้
                      ั่
Disadventage

• ต้ องการความรู้หลายด้ านในการใช้ งานพอสมควร
• เราต้ องสร้ าง Class ที่มีโครงสร้ างเช่นเดียวกับโครงสร้ างใน XMLFile เอง

More Related Content

Viewers also liked (20)

Lect04
Lect04Lect04
Lect04
 
Quickpoint How To
Quickpoint How ToQuickpoint How To
Quickpoint How To
 
Оборот 2013 // Как освежить отношения с клиентами ? // OZON.ru (Кира Жесткова)
Оборот 2013 // Как освежить отношения с клиентами ? // OZON.ru (Кира Жесткова)Оборот 2013 // Как освежить отношения с клиентами ? // OZON.ru (Кира Жесткова)
Оборот 2013 // Как освежить отношения с клиентами ? // OZON.ru (Кира Жесткова)
 
Lect17
Lect17Lect17
Lect17
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
 
The journey(www)
The journey(www)The journey(www)
The journey(www)
 
Intro
IntroIntro
Intro
 
Terra rosa.pps
Terra rosa.ppsTerra rosa.pps
Terra rosa.pps
 
Presentation to News:Rewired 2011
Presentation to News:Rewired 2011Presentation to News:Rewired 2011
Presentation to News:Rewired 2011
 
Tele3113 wk2tue
Tele3113 wk2tueTele3113 wk2tue
Tele3113 wk2tue
 
B2B Part III
B2B Part IIIB2B Part III
B2B Part III
 
Econ project
Econ projectEcon project
Econ project
 
From Performance to Health: Wearables for the Rest of Us.
From Performance to Health: Wearables for the Rest of Us.From Performance to Health: Wearables for the Rest of Us.
From Performance to Health: Wearables for the Rest of Us.
 
сараа...тест
сараа...тестсараа...тест
сараа...тест
 
Presentation tecniacustica 2013
Presentation tecniacustica 2013Presentation tecniacustica 2013
Presentation tecniacustica 2013
 
Colours.pptx ana
Colours.pptx anaColours.pptx ana
Colours.pptx ana
 
dMT SPC Presentation Rotating Equip.-E
dMT SPC Presentation Rotating Equip.-EdMT SPC Presentation Rotating Equip.-E
dMT SPC Presentation Rotating Equip.-E
 
Badalona-ILOQUID
Badalona-ILOQUIDBadalona-ILOQUID
Badalona-ILOQUID
 
安裝I qsystem考試系統
安裝I qsystem考試系統安裝I qsystem考試系統
安裝I qsystem考試系統
 
Lect13
Lect13Lect13
Lect13
 

Similar to Jaxb (6)

Assignmet1 selectedtopic Topic in Computer Engineer
Assignmet1 selectedtopic Topic in Computer EngineerAssignmet1 selectedtopic Topic in Computer Engineer
Assignmet1 selectedtopic Topic in Computer Engineer
 
Kafka for developer
Kafka for developerKafka for developer
Kafka for developer
 
Web Technology
Web TechnologyWeb Technology
Web Technology
 
ภาษา Jsp
ภาษา Jspภาษา Jsp
ภาษา Jsp
 
Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : Introduction
 
Assignmet1:Start by finding web services using SOAP and WSDL on the Internet/...
Assignmet1:Start by finding web services using SOAP and WSDL on the Internet/...Assignmet1:Start by finding web services using SOAP and WSDL on the Internet/...
Assignmet1:Start by finding web services using SOAP and WSDL on the Internet/...
 

Jaxb

  • 1. JAXB “JAVA ARCHITECTURE FOR XML BINDING”
  • 2. JAXB JAXB (Java Architecture for XML Binding) เป็ น Library ของ Java ที่ใช้ เชื่อมโยง ภาษา XML กับ ภาษา JAVA ทาให้ การเชื่อม เอกสาร XML กับ Object ที่เป็ น Java class ทาได้ ง่ายขึ ้น
  • 3. Binding between XML Schema and Java Classes • JAXB มีการรองรับวิธีที่สะดวกและรวดเร็วในการเชื่อมโยงระหว่าง XML Schema กับ Java Class • มี 2 ขันตอน ้ • แปลงเอกสาร XML ให้ กลายเป็ น Java object (Unmarshalling) • แปลง Java object กลับมาเป็ นเอกสาร XML(Marshalling) • JAXB รองรับการสร้ าง XML schema จาก Java object ได้
  • 4. JAXB Architecture Schema Application Code Generator XML Schema Package Portable JAXB- javax.xml.bind annotated XML/Java classes Schema Annotation- Customization Complier Binding driven Binding Object Framework Declarations Implementation Factory Schema to Java Application Java to Schema
  • 5. JAXB Architecture ขันตอนของ JAXB ประกอบด้ วยองค์ประกอบทางสถาปั ตยกรรมดังต่อไปนี ้ ้ • Schema compiler • Schema generator • Binding runtime framework
  • 6. Architecture • Schema compiler เป็ นส่วนสาคัญที่ทาการแปลงหรื อเชื่อมโยง source schema กับกลุมของ ่ JAXB class ที่เป็ นโปรแกรมภาษา Java • Schema generator เป็ นการจับคูกลุมโปรแกรมที่มีอยูเ่ พื่อให้ ได้ schema ออกมา ่ ่ • Binding runtime framework มีการเตรี ยม unmarshalling และ marshalling เพื่อให้ สามารถเข้ าถึง จัดการและตรวจสอบเนื ้อหาใน XML ด้ วยการใช้ schema ที่ได้ มาและ โปรแกรมที่มีอยู่
  • 7. JAXB Binding Process JAXB Schema bind mapped classes follows Instances of Unmarshal (validate) Docume Objects nt marshal (validate)
  • 8. JAXB Binding Process ขันตอนทัวไปในกระบวนการเชื่อมโยงข้ อมูลของ JAXB คือ ้ ่ 1. Generate classes : XML Schema จะถูกนามาใช้ เป็ นตัว Input เพื่อที่จะให้ ตว ั Complier สร้ าง Class JAXB ที่มาจาก Schema นันๆ ้ 2. Compile classes : ทุก Class ที่ถกสร้ างขึ ้น Source File ต่างๆ และ โค้ ดโปรแกรม ู จะต้ องถูก 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
  • 9. JAXB Binding Process 5. Validate (optional) : อยู่ในขันตอนการ unmarshal ที่เป็ นการตรวจสอบเอกสาร ้ XML ก่อนจะสร้ าง content tree ซึงถ้ ามีการปรับเปลี่ยน content tree ในขันตอนที่ 6 ่ ้ ขันต่อไปก็จะสามารถใช้ การดาเนินการแบบ JAXB Validate เพื่อเป็ นเหตุผลในการ ้ เปลี่ยนแปลงก่อนจะ marshal content กลับไปเป็ นเอกสาร XML 6. Process content: Client สามารถเปลี่ยนแปลงข้ อมูล XML ที่ถกแทนด้ วย Java ู content tree โดยความหมายของ interface ต่างๆถูกสร้ างโดย binding compiler 7. Marshal: เป็ นขันตอนที่ content tree ถูก marshal ออกมาเป็ นเอกสาร XML เป็ น 1 ้ หรื อ มากกว่า 1 เอกสาร
  • 10. Marshalling • Marshalling ได้ เตรี ยม client application ที่สามารถแปลง Java object ไปเป็ นเอกสาร XML • โดยปกติแล้ วตอนที่สร้ างเอกสาร XML ตัว Marshal จะใช้ การ เข้ ารหัสแบบ UTF-8 • นอกจากนี ้ยังมีข้อกาหนดว่า Java content tree จะต้ องถูกต้ อง เมื่อเทียบกับ Schema เดิม เพื่อจะได้ marshal กลับไปเป็ นข้ อมูล XML ได้
  • 11. Unmarshalling Unmarshalling ได้ เตรี ยม client application ที่สามารถแปลง ข้ อมูล XML ให้ กลายเป็ น Java objects
  • 12. Validation • Validation เป็ นกระบวนการตรวจสอบเอกสาร XML ซึงมีคณสมบัติตรงตาม ่ ุ ข้ อกาหนดที่แสดงใน Schema • ใน JAXB เวอร์ ชน 1.0 มีการเตรี ยมให้ มีการตรวจสอบขณะที่ทา unmarshal ั่ • JAXB เวอร์ ชน 2.0 อนุญาตให้ มีการตรวจสอบขณะทา unmarshal และ ั่ marshal ได้ • รูปแบบการทางาน Web service มีความหละหลวมในเรื่ องการอ่านข้ อมูลแต่ เข้ มงวดในการเขียนข้ อมูลออกมา เพื่อที่จะตอบสนองการทางานดังกล่าว ใน ขันตอน validation จึงได้ เพิ่มขึ ้นมาในตอนทา marshal เพื่อที่จะเป็ นการยืนยัน ้ ว่ามันจะไม่ทาให้ เอกสาร XML เกิดความผิดพลาดเมื่อมีการเปลี่ยนแปลง เอกสารในรูปแบบของ JAXB
  • 13. Adventage • Valid Data ได้ ข้อมูลที่ถกต้ อง : ใน JAXB Application ตามที่อธิบายไว้ ใน schema แล้ ว จะ ู ไม่อนุญาตให้ มีการสร้ างข้ อมูล Java object ที่ไม่ถกต้ องเด็ดขาด ู • Speed มีความรวดเร็ ว : สามารถทางานได้ รวดเร็ วด้ วยการใช้ วิธี Binding • Ease of Use ใช้ งานง่าย : มันจะมี JAXB Compiler ที่เป็ นตัวประมวลผลโค้ ด ซึงให้ ความ ่ อิสระแก่นกพัฒนาได้ ลงมือเขียนและแก้ bug โค้ ดด้ วยตัวเอง โดยนักพัฒนาจะสามารถเขียน ั Application ในการเข้ าถึงข้ อมูล XML ผ่านทาง Java Interface • Data Conversion การแปลงข้ อมูล : ข้ อมูลเอกสารใน XML สามารถนามาแปลงเป็ น Data type ใน Java ได้ • Customization การปรับแต่ง : ตอนทา Binding schema จะสามารถปรับแต่งได้ ตาม ต้ องการ • Extensibility ความสามารถในการ Extend : คลาสที่ถกสร้ างขึ ้น จะสามารถนาไป extend ู ให้ สามารถเพิ่มฟั งก์ชนการทางานต่อไปได้ ั่
  • 14. Disadventage • ต้ องการความรู้หลายด้ านในการใช้ งานพอสมควร • เราต้ องสร้ าง Class ที่มีโครงสร้ างเช่นเดียวกับโครงสร้ างใน XMLFile เอง