Module java.xml.bind
Package javax.xml.bind.annotation

## Annotation Type XmlAttribute

    @Retention(RUNTIME)
    @Target({FIELD,METHOD})
    public @interface XmlAttribute

Maps a JavaBean property to a XML attribute.

Usage

The `@XmlAttribute` annotation can be used with the following program elements:

- JavaBean property
- field

A static final field is mapped to a XML fixed attribute.

See "Package Specification" in javax.xml.bind.package javadoc for additional common information.

The usage is subject to the following constraints:

- If type of the field or the property is a collection type, then the collection item type must be mapped to schema simple type.

           // Examples
           @XmlAttribute List<Integer> items; //legal
           @XmlAttribute List<Bar> foo; // illegal if Bar does not map to a schema simple type

- If the type of the field or the property is a non collection type, then the type of the property or field must map to a simple schema type.

           // Examples
           @XmlAttribute int foo; // legal
           @XmlAttribute Foo foo; // illegal if Foo does not map to a schema simple type

- This annotation can be used with the following annotations: `XmlID`, `XmlIDREF`, `XmlList`, `XmlSchemaType`, `XmlValue`, `XmlAttachmentRef`, `XmlMimeType`, `XmlInlineBinaryData`, `XmlJavaTypeAdapter`.

Example 1: Map a JavaBean property to an XML attribute.

         //Example: Code fragment
         public class USPrice {
             @XmlAttribute
             public java.math.BigDecimal getPrice() {...} ;
             public void setPrice(java.math.BigDecimal ) {...};
         }

         <!-- Example: XML Schema fragment -->
         <xs:complexType name="USPrice">
           <xs:sequence>
           </xs:sequence>
           <xs:attribute name="price" type="xs:decimal"/>
         </xs:complexType>

Example 2: Map a JavaBean property to an XML attribute with anonymous type.

See Example 7 in @`XmlType`.

Example 3: Map a JavaBean collection property to an XML attribute.

         // Example: Code fragment
         class Foo {
             ...
             @XmlAttribute List<Integer> items;
         }

         <!-- Example: XML Schema fragment -->
         <xs:complexType name="foo">
         	 ...
           <xs:attribute name="items">
             <xs:simpleType>
               <xs:list itemType="xs:int"/>
             </xs:simpleType>
         </xs:complexType>

Since:
  1.6, JAXB 2.0
Author:
  Sekhar Vajjhala, Sun Microsystems, Inc.
See Also:
  `XmlType`

### Optional Element Summary

Optional Elements
`java.lang.String` `name` Name of the XML Schema attribute.
`java.lang.String` `namespace` Specifies the XML target namespace of the XML Schema attribute.
`boolean` `required` Specifies if the XML Schema attribute is optional or required.

### Element Detail

#### name

    java.lang.String name

Name of the XML Schema attribute. By default, the XML Schema attribute name is derived from the JavaBean property name.

Default:
  "##default"

#### required

    boolean required

Specifies if the XML Schema attribute is optional or required. If true, then the JavaBean property is mapped to a XML Schema attribute that is required. Otherwise it is mapped to a XML Schema attribute that is optional.

Default:
  false

#### namespace

    java.lang.String namespace

Specifies the XML target namespace of the XML Schema attribute.

Default:
  "##default"

Copyright © 2004-2017 Oracle