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

Spartups Meeting Template
Spartups Meeting TemplateSpartups Meeting Template
Spartups Meeting Template
Saif Akhtar
 
Kamaroninfo núm 24. abril 1998
Kamaroninfo núm 24. abril 1998Kamaroninfo núm 24. abril 1998
Kamaroninfo núm 24. abril 1998
Josep Miquel
 

Viewers also liked (20)

Spartups Meeting Template
Spartups Meeting TemplateSpartups Meeting Template
Spartups Meeting Template
 
Demystifying social media 5 20-2011
Demystifying social media 5 20-2011Demystifying social media 5 20-2011
Demystifying social media 5 20-2011
 
Удержание пользователей (User Retention) // CPA Network Russia
Удержание пользователей (User Retention) // CPA Network RussiaУдержание пользователей (User Retention) // CPA Network Russia
Удержание пользователей (User Retention) // CPA Network Russia
 
Nagasaki
NagasakiNagasaki
Nagasaki
 
CCRMA - 2011
CCRMA - 2011CCRMA - 2011
CCRMA - 2011
 
আত্ম সচেনতা অর্জনের সূত্র
আত্ম সচেনতা অর্জনের সূত্রআত্ম সচেনতা অর্জনের সূত্র
আত্ম সচেনতা অর্জনের সূত্র
 
Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014Presentació curs mitjà xixona 2014
Presentació curs mitjà xixona 2014
 
Dream8
Dream8Dream8
Dream8
 
Jaxb
Jaxb Jaxb
Jaxb
 
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...
Mailing Day СПБ 2012 // Интеграция Email и Social Media // CPA Network Russia...
 
Verbinden of verdwalen?
Verbinden of verdwalen? Verbinden of verdwalen?
Verbinden of verdwalen?
 
安裝I qsystem考試系統
安裝I qsystem考試系統安裝I qsystem考試系統
安裝I qsystem考試系統
 
General Applications Info.-E
General Applications Info.-EGeneral Applications Info.-E
General Applications Info.-E
 
Designing call
Designing callDesigning call
Designing call
 
солонго
солонгосолонго
солонго
 
ইভটিজিং প্রতিরোধে দক্ষতাভিত্তিক শিক্ষা
ইভটিজিং প্রতিরোধে দক্ষতাভিত্তিক শিক্ষাইভটিজিং প্রতিরোধে দক্ষতাভিত্তিক শিক্ষা
ইভটিজিং প্রতিরোধে দক্ষতাভিত্তিক শিক্ষা
 
Slide bio3397
Slide bio3397Slide bio3397
Slide bio3397
 
Cpa network - способы монетизации трафика
Cpa network -  способы монетизации трафикаCpa network -  способы монетизации трафика
Cpa network - способы монетизации трафика
 
Ar&G
Ar&GAr&G
Ar&G
 
Kamaroninfo núm 24. abril 1998
Kamaroninfo núm 24. abril 1998Kamaroninfo núm 24. abril 1998
Kamaroninfo núm 24. abril 1998
 

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 เอง