22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package javax.xml.bind.annotation; 27 28 import java.lang.annotation.Target; 29 import java.lang.annotation.Retention; 30 import static java.lang.annotation.ElementType.*; 31 import static java.lang.annotation.RetentionPolicy.*; 32 33 /** 34 * <p> 35 * Enables mapping a class to a XML Schema complex type with a 36 * simpleContent or a XML Schema simple type. 37 * </p> 38 * 39 * <p> 40 * <b> Usage: </b> 41 * <p> 42 * The <tt>@XmlValue</tt> annotation can be used with the following program 43 * elements: 44 * <ul> 45 * <li> a JavaBean property.</li> 46 * <li> non static, non transient field.</li> 47 * </ul> 48 * 49 * <p>See "Package Specification" in javax.xml.bind.package javadoc for 50 * additional common information.</p> 51 * 52 * The usage is subject to the following usage constraints: 53 * <ul> 54 * <li>At most one field or property can be annotated with the 55 * <tt>@XmlValue</tt> annotation. </li> 56 * 57 * <li><tt>@XmlValue</tt> can be used with the following 58 * annotations: {@link XmlList}. However this is redundant since 59 * {@link XmlList} maps a type to a simple schema type that derives by 60 * list just as {@link XmlValue} would. </li> 61 * 62 * <li>If the type of the field or property is a collection type, 63 * then the collection item type must map to a simple schema 64 * type. </li> 65 * 66 * <li>If the type of the field or property is not a collection 67 * type, then the type must map to a XML Schema simple type. </li> 68 * 69 * </ul> 70 * <p> 71 * If the annotated JavaBean property is the sole class member being 72 * mapped to XML Schema construct, then the class is mapped to a 73 * simple type. 74 * 75 * If there are additional JavaBean properties (other than the 76 * JavaBean property annotated with <tt>@XmlValue</tt> annotation) 77 * that are mapped to XML attributes, then the class is mapped to a 78 * complex type with simpleContent. 79 * </p> 80 * 81 * <p> <b> Example 1: </b> Map a class to XML Schema simpleType</p> 82 * 83 * <pre> 84 * 85 * // Example 1: Code fragment 86 * public class USPrice { 87 * @XmlValue 88 * public java.math.BigDecimal price; 89 * } 90 * {@code 91 * 92 * <!-- Example 1: XML Schema fragment --> 93 * <xs:simpleType name="USPrice"> 94 * <xs:restriction base="xs:decimal"/> 95 * </xs:simpleType> 96 * | 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package javax.xml.bind.annotation; 27 28 import java.lang.annotation.Target; 29 import java.lang.annotation.Retention; 30 import static java.lang.annotation.ElementType.*; 31 import static java.lang.annotation.RetentionPolicy.*; 32 33 /** 34 * <p> 35 * Enables mapping a class to a XML Schema complex type with a 36 * simpleContent or a XML Schema simple type. 37 * </p> 38 * 39 * <p> 40 * <b> Usage: </b> 41 * <p> 42 * The {@code @XmlValue} annotation can be used with the following program 43 * elements: 44 * <ul> 45 * <li> a JavaBean property.</li> 46 * <li> non static, non transient field.</li> 47 * </ul> 48 * 49 * <p>See "Package Specification" in javax.xml.bind.package javadoc for 50 * additional common information.</p> 51 * 52 * The usage is subject to the following usage constraints: 53 * <ul> 54 * <li>At most one field or property can be annotated with the 55 * {@code @XmlValue} annotation. </li> 56 * 57 * <li>{@code @XmlValue} can be used with the following 58 * annotations: {@link XmlList}. However this is redundant since 59 * {@link XmlList} maps a type to a simple schema type that derives by 60 * list just as {@link XmlValue} would. </li> 61 * 62 * <li>If the type of the field or property is a collection type, 63 * then the collection item type must map to a simple schema 64 * type. </li> 65 * 66 * <li>If the type of the field or property is not a collection 67 * type, then the type must map to a XML Schema simple type. </li> 68 * 69 * </ul> 70 * <p> 71 * If the annotated JavaBean property is the sole class member being 72 * mapped to XML Schema construct, then the class is mapped to a 73 * simple type. 74 * 75 * If there are additional JavaBean properties (other than the 76 * JavaBean property annotated with {@code @XmlValue} annotation) 77 * that are mapped to XML attributes, then the class is mapped to a 78 * complex type with simpleContent. 79 * </p> 80 * 81 * <p> <b> Example 1: </b> Map a class to XML Schema simpleType</p> 82 * 83 * <pre> 84 * 85 * // Example 1: Code fragment 86 * public class USPrice { 87 * @XmlValue 88 * public java.math.BigDecimal price; 89 * } 90 * {@code 91 * 92 * <!-- Example 1: XML Schema fragment --> 93 * <xs:simpleType name="USPrice"> 94 * <xs:restriction base="xs:decimal"/> 95 * </xs:simpleType> 96 * |