Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

## javax.xml.bind.annotation
Annotation Type XmlValue

    @Retention(value=RUNTIME)
    @Target(value={FIELD,METHOD})
    public @interface XmlValue

Enables mapping a class to a XML Schema complex type with a simpleContent or a XML Schema simple type.

Usage:

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

- a JavaBean property.
- non static, non transient field.

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

The usage is subject to the following usage constraints:

- At most one field or property can be annotated with the `@XmlValue` annotation.
- `@XmlValue` can be used with the following annotations: `XmlList`. However this is redundant since `XmlList` maps a type to a simple schema type that derives by list just as `XmlValue` would.
- If the type of the field or property is a collection type, then the collection item type must map to a simple schema type.
- If the type of the field or property is not a collection type, then the type must map to a XML Schema simple type.

If the annotated JavaBean property is the sole class member being mapped to XML Schema construct, then the class is mapped to a simple type. If there are additional JavaBean properties (other than the JavaBean property annotated with `@XmlValue` annotation) that are mapped to XML attributes, then the class is mapped to a complex type with simpleContent.

Example 1: Map a class to XML Schema simpleType

         // Example 1: Code fragment
         public class USPrice {
             @XmlValue
             public java.math.BigDecimal price;
         }

         <!-- Example 1: XML Schema fragment -->
         <xs:simpleType name="USPrice">
           <xs:restriction base="xs:decimal"/>
         </xs:simpleType>

Example 2: Map a class to XML Schema complexType with with simpleContent.

       // Example 2: Code fragment
       public class InternationalPrice {
           @XmlValue
           public java.math.BigDecimal price;

           @XmlAttribute
           public String currency;
       }

       <!-- Example 2: XML Schema fragment -->
       <xs:complexType name="InternationalPrice">
         <xs:simpleContent>
           <xs:extension base="xs:decimal">
             <xs:attribute name="currency" type="xs:string"/>
           </xs:extension>
         </xs:simpleContent>
       </xs:complexType>

Since:
  JAXB2.0
See Also:
  `XmlType`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.