Defines annotations for customizing Java program elements to XML Schema mapping.

## Package Specification

The following table shows the JAXB mapping annotations that can be associated with each program element.

Program Element | JAXB annotation
--- | ---
Package | XmlAccessorOrder XmlAccessorType XmlSchema XmlSchemaType XmlSchemaTypes XmlJavaTypeAdapter XmlJavaTypeAdapters
Class | XmlAccessorOrder XmlAccessorType XmlInlineBinaryData XmlRootElement XmlType XmlJavaTypeAdapter
Enum type | XmlEnum XmlEnumValue (enum constant only) XmlRootElement XmlType XmlJavaTypeAdapter
JavaBean Property/field | XmlElement XmlElements XmlElementRef XmlElementRefs XmlElementWrapper XmlAnyElement XmlAttribute XmlAnyAttribute XmlTransient XmlValue XmlID XmlIDREF XmlList XmlMixed XmlMimeType XmlAttachmentRef XmlInlineBinaryData XmlElementDecl (only on method) XmlJavaTypeAdapter
Parameter | XmlList XmlAttachmentRef XmlMimeType XmlJavaTypeAdapter

### Terminology

JavaBean property and field: For the purposes of mapping, there is no semantic difference between a field and a JavaBean property. Thus, an annotation that can be applied to a JavaBean property can always be applied to a field. Hence in the Javadoc documentation, for brevity, the term JavaBean property or property is used to mean either JavaBean property or a field. Where required, both are explicitly mentioned.

top level class: For the purpose of mapping, there is no semantic difference between a top level class and a static nested class. Thus, an annotation that can be applied to a top level class, can always be applied to a nested static class. Hence in the Javadoc documentation, for brevity, the term "top level class" or just class is used to mean either a top level class or a nested static class.

mapping annotation:A JAXB 2.0 defined program annotation based on the JSR 175 programming annotation facility.

### Common Usage Constraints

The following usage constraints are defined here since they apply to more than annotation:

- For a property, a given annotation can be applied to either read or write property but not both.
- A property name must be different from any other property name in any of the super classes of the class being mapped.
- A mapped field name or the decapitalized name of a mapped property must be unique within a class.

### Notations

Namespace prefixes

The following namespace prefixes are used in the XML Schema fragments in this package.

Prefix | Namespace | Notes
--- | --- | ---
xs | http://www.w3.org/2001/XMLSchema | Namespace of XML Schema namespace
ref | http://ws-i.org/profiles/basic/1.1/xsd | Namespace for swaref schema component
xsi | http://www.w3.org/2001/XMLSchema-instance | XML Schema namespace for instances

@since 1.6, JAXB 2.0