ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
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

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 ???