background image

javaType Binding Declarations

<< Property Binding Declarations | Typesafe Enumeration Binding Declarations >>
<< Property Binding Declarations | Typesafe Enumeration Binding Declarations >>

javaType Binding Declarations

<javadoc>
customizes the Javadoc tool annotations for the property's getter method.
javaType Binding Declarations
The <javaType> declaration provides a way to customize the translation of XML data types to
and from Java data types. XML provides more data types than Java, and so the <javaType>
declaration lets you specify custom data type bindings when the default JAXB binding cannot
sufficiently represent your schema.
The target Java data type can be a Java built-in data type or an application-specific Java data
type. If an application-specific data type is used as the target, your implementation must also
provide parse and print methods for unmarshalling and marshalling data. To this end, the
JAXB specification supports a parseMethod and printMethod:
The parseMethod is called during unmarshalling to convert a string from the input
document into a value of the target Java data type.
The printMethod is called during marshalling to convert a value of the target type into a
lexical representation.
If you prefer to define your own data type conversions, JAXB defines a static class,
DatatypeConverter
, to assist in the parsing and printing of valid lexical representations of the
XML Schema built-in data types.
The syntax for the <javaType> customization is:
<javaType name=
"javaType"
[ xmlType=
"xmlType" ]
[ hasNsContext =
"true" | "false" ]
[ parseMethod=
"parseMethod" ]
[ printMethod=
"printMethod" ]>
name
is the Java data type to which xmlType is to be bound.
xmlType
is the name of the XML Schema data type to which javaType is to be bound; this
attribute is required when the parent of the <javaType> declaration is <globalBindings>.
hasNsContext
allows a namespace context to be specified as a second parameter to a print or
a parse method; can be either true, false, 1, or 0. By default, this attribute is false, and in
most cases you will not need to change it.
parseMethod
is the name of the parse method to be called during unmarshalling.
printMethod
is the name of the print method to be called during marshalling.
The <javaType> declaration can be used in:
A <globalBindings> declaration
An annotation element for simple type definitions, GlobalBindings, and <basetype>
declarations
Customizing JAXB Bindings
Chapter 17 · Binding between XML Schema and Java Classes
523