Annotation Interface 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 jakarta.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
See Also: