JAXB: Binding between XML Schema and Java Classes Asst. Prof. Dr. - - PDF document

jaxb binding between xml schema and java classes
SMART_READER_LITE
LIVE PREVIEW

JAXB: Binding between XML Schema and Java Classes Asst. Prof. Dr. - - PDF document

JAXB: Binding between XML Schema and Java JAXB: Binding between XML Schema and Java Classes Asst. Prof. Dr. Kanda Runapongsa (krunapon@kku.ac.th) Department of Computer Engineering Khon Kaen University Agenda JAXB Architecture


slide-1
SLIDE 1

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 1

JAXB: Binding between XML Schema and Java Classes

  • Asst. Prof. Dr. Kanda Runapongsa

(krunapon@kku.ac.th) Department of Computer Engineering Khon Kaen University

Agenda

JAXB Architecture Representing XML Content Binding XML Schemas Customizing JAXB Bindings General Usage Instructions Basic Examples Customizing JAXB Bindings Java-toSchema Examples

slide-2
SLIDE 2

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 2

What is JAXB?

JAXB stands fro Java Architecture for

XML Binding

JAXB provides a fast and convenient

way to bind between XML schemas and Java representations

JAXB makes it easy for Java

developers to incorporate XML data and processing functions in Java applications

JAXB Architectural Overview

slide-3
SLIDE 3

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 3

JAXB Architectural Components (1/2)

Schema compiler

Binds a source schema to a set of

schema derived program elements

The binding is described by an XML-

based binding language

Schema generator

Maps a set of existing program elements

to a derived schema

The mapping is described by program

annotations

JAXB Architectural Components (2/2)

Binding runtime framework

Provides unmarshalling

(reading) and marshalling (writing) operations

Accessing, manipulating and

validating XML content using

Schema-derived or Existing program elements

slide-4
SLIDE 4

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 4

The JAXB Binding Process

Steps in the JAXB Binding Process (1/4)

  • 1. Generate classes

An XML schema is used as input to

the JAXB binding compiler to generate JAXB classes based on that schema

  • 2. Compile classes

All of the generated classes,

source files, and application code must be compiled

slide-5
SLIDE 5

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 5

Steps in the JAXB Binding Process (2/4)

  • 3. Unmarshal

XML documents written according to

the constraints in the source schema are unmarshalled by the JAXB binding framework

JAXB also supports unmarshalling XML

data from sources other than files/document, such as DOM nodes, string buffers, SAX Sources, and so forth

Steps in the JAXB Binding Process (3/4)

  • 4. Generate content tree

The unmarshalling process generates a

content tree of data objects instantiated from the generated JAXB classes

This content tree represents the structure and

content of the source XML documents

  • 5. Validate (optional)

The unmarshalling process optionally

involves validation of the source XML document before generating the content tree

slide-6
SLIDE 6

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 6

Steps in the JAXB Binding Process (4/4)

  • 6. Process content

The client application can modify the

XML data represented by the Java content tree by means of interfaces generated by the binding compiler

  • 7. Marshal

The processed content tree is

marshalled out to one or more XML

  • utput documents

The content may be validated before

marshalling

Java Representation of XML Schema Java Representation of XML Schema

JAXB supports the grouping of

generated classes in Java packages. A package comprises:

A Java class name is derived from the

XML element name, or specified by a binding customization.

An ObjectFactory class is a factory that

is used to return instances of a bound Java class.

slide-7
SLIDE 7

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 7

Default Data Type Bindings (1/5)

short xsd:short long xsd:long int xsd:int java.math.BigInteger xsd:integer java.lang.String xsd:string Java Data Type XML Schema Type

Default Data Type Bindings (2/5)

byte xsd:byte boolean xsd:boolean double xsd:double float xsd:float java.math.BigDecimal xsd:decimal Java Data Type XML Schema Type

slide-8
SLIDE 8

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 8

Default Data Type Bindings (3/5)

long Xsd:unsignedInt byte[] xsd:hexBinary byte[] xsd:base64Binary Javax.xml.datatype. XMLGregorianCalendar xsd:dateTime javax.xml.namespace.Q Name xsd:QName Java Data Type XML Schema Type

Default Data Type Bindings (4/5)

javax.xml.datatype. XMLGregorianCalendar xsd:g javax.xml.datatype. XMLGregorianCalendar xsd:date javax.xml.datatype. XMLGregorianCalendar xsd:time short xsdunsignedByte int xsd:unsignedShort Java Data Type XML Schema Type

slide-9
SLIDE 9

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 9

Default Data Type Bindings (5/5)

javax.xml.namespace .QName xsd:NOTATION javax.xml.datatype. Duration xsd:duration java.lang.Object xsd:anySimpleType Java Data Type XML Schema Type

Mapping of Java Classes to XML Data Types (1/3)

xs:dateTime java.util.Date xs:dateTime java.util.Calendar xs:decimal java.math.BigDecimal xs:integer java.math.BigInteger xs:string java.lang.String XML Data Type Java Class

slide-10
SLIDE 10

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 10

Mapping of Java Classes to XML Data Types (2/3)

xs:string java.util.UUID xs:anySimpleType javax.xml.datatype. XMLGregorianCalendar xs:string java.net.URI xs:QName javax.xml.namespace. QName XML Data Type Java Class

Mapping of Java Classes to XML Data Types (3/3)

xs:base64Binary Javax.xml.transform.Sour ce xs:base64Binary javax.activiation. DataHandler xs:base64Binary java.awt.Image xs:anyType javax.lang.Object xs:duration javax.xml.datatype. Duration XML Data Type Java Class

slide-11
SLIDE 11

JAXB: Binding between XML Schema and Java

  • Dr. Kanda Runapongsa, Computer Engineering, Khon Kaen

University 11

Customizing JAXB Bindings

Schema-to-Java

Custom JAXB binding declarations also allow

you to customize your generated JAXB classes to include Java-specific refinements such as class and pacage name mappings

JAXB provides two ways to customize an

XML schema

As inline annotations in a source XML schema As declaration in an external binding

customizations file that is passed to the JAXB binding compiler

Java-to-Schema

XML schema that is generated from Java objects

can be customized with JAXB annotations

References

Java Web Services Developer Pack 2.0 http://java.sun.com/webservices/downlo

ads/webservicespack.html