Customizing Generated Classes and Java Program Elements (original) (raw)
2. Using the Tutorial Examples
3. Getting Started with Web Applications
5. JavaServer Pages Technology
7. JavaServer Pages Standard Tag Library
10. JavaServer Faces Technology
11. Using JavaServer Faces Technology in JSP Pages
12. Developing with JavaServer Faces Technology
13. Creating Custom UI Components
14. Configuring JavaServer Faces Applications
15. Internationalizing and Localizing Web Applications
16. Building Web Services with JAX-WS
17. Binding between XML Schema and Java Classes
Java Representation of XML Schema
About the Schema-to-Java Bindings
Building and Running the Modify Marshal Example Using NetBeans IDE
Building and Running the Modify Marshal Example Using Ant
Building and Running the Unmarshal Validate Example Using NetBeans IDE
Building and Running the Unmarshal Validate Example Using Ant
Inline and External Customizations
Scope, Inheritance, and Precedence
Customization Namespace Prefix
Building and Running the Customize Inline Example Using NetBeans IDE
Building and Running the Customize Inline Example Using Ant
Building and Running the Datatype Converter Example Using NetBeans IDE
Building and Running the Datatype Converter Example Using Ant
JAXB Version, Namespace, and Schema Attributes
Global and Schema Binding Declarations
Building and Running the External Customize Example Using NetBeans IDE
Building and Running the External Customize Example Using Ant
Building and Running the Create Marshal Example Using NetBeans IDE
Building and Running the Create Marshal Example Using Ant
Using the @XmlAccessorOrder Annotation to Define Schema Element Ordering
Using the @XmlType Annotation to Define Schema Element Ordering
Schema Content Ordering in the Example
Building and Running the XmlAccessorOrder Example Using NetBeans IDE
Building and Running the XmlAccessorOrder Example Using Ant
Building and Running the XmlAdapter Field Example Using NetBeans IDE
Building and Running the XmlAdapter Field Example Using Ant
Building and Running the XmlAttribute Field Example Using NetBeans IDE
Building and Running the XmlAttribute Field Example Using Ant
Building and Running the XmlRootElement Example Using NetBeans IDE
Building and Running the XmlRootElement Example Using Ant
Building and Running the XmlSchemaType Class Example Using NetBeans IDE
Building and Running the XmlSchemaType Class Example Using Ant
Building and Running the XmlType Example Using NetBeans IDE
Building and Running the XmlType Example Using Ant
Further Information about JAXB
19. SOAP with Attachments API for Java
21. Getting Started with Enterprise Beans
23. A Message-Driven Bean Example
24. Introduction to the Java Persistence API
25. Persistence in the Web Tier
26. Persistence in the EJB Tier
27. The Java Persistence Query Language
28. Introduction to Security in the Java EE Platform
29. Securing Java EE Applications
31. The Java Message Service API
32. Java EE Examples Using the JMS API
36. The Coffee Break Application
37. The Duke's Bank Application
Customizing Generated Classes and Java Program Elements
The following sections explain how to customize generated JAXB classes and Java program elements.
Schema-to-Java
Custom JAXB binding declarations allow you to customize your generated JAXB classes beyond the XML-specific constraints in an XML schema to include Java-specific refinements, such as class and package name mappings.
JAXB provides two ways to customize an XML schema:
- As inline annotations in a source XML schema
- As declarations in an external binding customization file that is passed to the JAXB binding compiler
Code examples that show how to customize JAXB bindings are provided later in this chapter.
Java-to-Schema
The JAXB annotations defined in the javax.xml.bind.annotations package can be used to customize Java program elements to XML schema mapping. Table 17-3 summarizes the JAXB annotations that can be used with a Java package.
Table 17-3 JAXB Annotations Associated with a Java Package
Annotation | Description and Default Setting |
---|---|
@XmlSchema | Maps a package to an XML target namespace. Default Settings: @XmlSchema ( xmlns = {}, namespace = "", elementFormDefault = XmlNsForm.UNSET, attributeFormDefault = XmlNsForm.UNSET ) |
@XmlAccessorType | Controls default serialization of fields and properties. Default Settings: @XmlAccessorType ( value = AccessType.PUBLIC_MEMBER ) |
@XmlAccessorOrder | Controls the default ordering of properties and fields mapped to XML elements. Default Settings: @XmlAccessorOrder ( value = AccessorOrder.UNDEFINED ) |
@XmlSchemaType | Allows a customized mapping to an XML Schema built-in type. Default Settings: @XmlSchemaType ( namespace = "http://www.w3.org/2001/XMLSchema", type = DEFAULT.class ) |
@XmlSchemaTypes | A container annotation for defining multiple @XmlSchemaType annotations. Default Settings: None |
Table 17-4 summarizes JAXB annotations that can be used with a Java class.
Table 17-4 JAXB Annotations Associated with a Java Class
Annotation | Description and Default Setting |
---|---|
@XmlType | Maps a Java class to a schema type. Default Settings: @XmlType ( name = "##default", propOrder = {""}, namespace = "##default", factoryClass = DEFAULT.class, factoryMethod = "" ) |
@XmlRootElement | Associates a global element with the schema type to which the class is mapped. Default Settings: @XmlRootElement ( name = "##default", namespace = "##default" ) |
Table 17-5 summarizes JAXB annotations that can be used with a Java enum type.
Table 17-5 JAXB Annotations Associated with a Java enum Type
Annotation | Description and Default Setting |
---|---|
@XmlEnum | Maps a Java type to an XML simple type. Default Settings: @XmlEnum ( value = String.class ) |
@XmlEnumValue | Maps a Java type to an XML simple type. Default Settings: None |
@XmlType | Maps a Java class to a schema type. Default Settings: @XmlType ( name = "##default", propOrder = {""}, namespace = "##default", factoryClass = DEFAULT.class, factoryMethod = "" ) |
@XmlRootElement | Associates a global element with the schema type to which the class is mapped. Default Settings: @XmlRootElement ( name = "##default", namespace = "##default" ) |
Table 17-6 summarizes JAXB annotations that can be used with Java properties and fields.
Table 17-6 JAXB Annotations Associated with Java Properties and Fields
Annotation | Description and Default Setting |
---|---|
@XmlElement | Maps a JavaBeans property/field to an XML element derived from a property/field name. Default Settings: @XmlElement ( name = "##default", nillable = false, namespace = "##default", type = DEFAULT.class, defaultValue = "\u0000" ) |
@XmlElements | A container annotation for defining multiple @XmlElement annotations. Default Settings: None |
@XmlElementRef | Maps a JavaBeans property/field to an XML element derived from a property/field’s type. Default Settings: @XmlElementRef ( name = "##default", namespace = "##default", type = DEFAULT.class ) |
@XmlElementRefs | A container annotation for defining multiple @XmlElementRef annotations. Default Settings: None |
@XmlElementWrapper | Generates a wrapper element around an XML representation. Typically a wrapper XML element around collections. Default Settings: @XmlElementWrapper ( name = "##default", namespace = "##default", nillable = false ) |
@XmlAnyElement | Maps a JavaBeans property to an XML infoset representation and/or JAXB element. Default Settings: @XmlAnyElement ( lax = false, value = W3CDomHandler.class ) |
@XmlAttribute | Maps a JavaBeans property to an XML attribute. Default Settings: @XmlAttribute ( name = ##default, required = false, namespace = "##default" ) |
@XmlAnyAttribute | Maps a JavaBeans property to a map of wildcard attributes. Default Settings: None |
@XmlTransient | Prevents the mapping of a JavaBeans property to an XML representation. Default Settings: None |
@XmlValue | Defines mapping of a class to an XML Schema complex type with a simpleContent or an XML Schema simple type. Default Settings: None |
@XmlID | Maps a JavaBeans property to an XML ID. Default Settings: None |
@XmlIDREF | Maps a JavaBeans property to an XML IDREF. Default Settings: None |
@XmlList | Maps a property to a list simple type. Default Settings: None |
@XmlMixed | Marks a JavaBeans multi-valued property to support mixed content. Default Settings: None |
@XmlMimeType | Associates the MIME type that controls the XML representation of the property. Default Settings: None |
@XmlAttachmentRef | Marks a field/property that its XML form is a URI reference to mime content. Default Settings: None |
@XmlInlineBinaryData | Disables consideration of XOP encoding for data types that are bound to base64-encoded binary data in XML. Default Settings: None |
Table 17-7 summarizes the JAXB annotation that can be used with object factories.
Table 17-7 JAXB Annotations Associated with Object Factories
Annotation | Description and Default Setting |
---|---|
@XmlElementDecl | Maps a factory method to an XML element. Default Settings: @XmlElementDecl ( scope = GLOBAL.class, namespace = "##default", substitutionHeadNamespace = "##default", substitutionHeadName = "" ) |
Table 17-8 summarizes JAXB annotations that can be used with adapters.
Table 17-8 JAXB Annotations Associated with Adapters
Annotation | Description and Default Setting |
---|---|
@XmlJavaTypeAdapter | Use the adapter that implements the @XmlAdapter annotation for custom marshalling. Default Settings: @XmlJavaTypeAdapter ( type = DEFAULT.class ) |
@XmlJavaTypeAdapters | A container annotation for defining multiple @XmlJavaTypeAdapter annotations at the package level. Default Settings: None |
Copyright © 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices