FileDocCategorySizeDatePackage
XmlElement.javaAPI DocJava SE 6 API5941Tue Jun 10 00:27:04 BST 2008javax.xml.bind.annotation

XmlElement

public class XmlElement
Maps a JavaBean property to a XML element derived from property name.

Usage

@XmlElement annotation can be used with the following program elements:

  • a JavaBean property
  • non static, non transient field
  • within {@link XmlElements}

The usage is subject to the following constraints:
  • This annotation can be used with following annotations: {@link XmlID}, {@link XmlIDREF}, {@link XmlList}, {@link XmlSchemaType}, {@link XmlValue}, {@link XmlAttachmentRef}, {@link XmlMimeType}, {@link XmlInlineBinaryData}, {@link XmlElementWrapper}, {@link XmlJavaTypeAdapter}
  • if the type of JavaBean property is a collection type of array, an indexed property, or a parameterized list, and this annotation is used with {@link XmlElements} then, @XmlElement.type() must be DEFAULT.class since the collection item type is already known.

A JavaBean property, when annotated with @XmlElement annotation is mapped to a local element in the XML Schema complex type to which the containing class is mapped.

Example 1: Map a public non static non final field to local element

//Example: Code fragment
public class USPrice {
@XmlElement(name="itemprice")
public java.math.BigDecimal price;
}

<!-- Example: Local XML Schema element -->
<xs:complexType name="USPrice"/>
<xs:sequence>
<xs:element name="itemprice" type="xs:decimal" minOccurs="0"/>
</sequence>
</xs:complexType>

Example 2: Map a field to a nillable element.


//Example: Code fragment
public class USPrice {
@XmlElement(nillable=true)
public java.math.BigDecimal price;
}

<!-- Example: Local XML Schema element -->
<xs:complexType name="USPrice">
<xs:sequence>
<xs:element name="price" type="xs:decimal" nillable="true" minOccurs="0"/>
</sequence>
</xs:complexType>

Example 3: Map a field to a nillable, required element.


//Example: Code fragment
public class USPrice {
@XmlElement(nillable=true, required=true)
public java.math.BigDecimal price;
}

<!-- Example: Local XML Schema element -->
<xs:complexType name="USPrice">
<xs:sequence>
<xs:element name="price" type="xs:decimal" nillable="true" minOccurs="1"/>
</sequence>
</xs:complexType>

Example 4: Map a JavaBean property to an XML element with anonymous type.

See Example 6 in @{@link XmlType}.

author
Sekhar Vajjhala, Sun Microsystems, Inc.
since
JAXB2.0
version
$Revision: 1.18 $

Fields Summary
Constructors Summary
Methods Summary
java.lang.StringdefaultValue()
Default value of this element.

The '\u0000' value specified as a default of this annotation element is used as a poor-man's substitute for null to allow implementations to recognize the 'no default value' state.

java.lang.Stringname()
Name of the XML Schema element.

If the value is "##default", then element name is derived from the JavaBean property name.

java.lang.Stringnamespace()
XML target namespace of the XML Schema element.

If the value is "##default", then the namespace is determined as follows:

  1. If the enclosing package has {@link XmlSchema} annotation, and its {@link XmlSchema#elementFormDefault() elementFormDefault} is {@link XmlNsForm#QUALIFIED QUALIFIED}, then the namespace of the enclosing class.
  2. Otherwise "" (which produces unqualified element in the default namespace.

booleannillable()
Customize the element declaration to be nillable.

If nillable() is true, then the JavaBean property is mapped to a XML Schema nillable element declaration.

booleanrequired()
Customize the element declaration to be required.

If required() is true, then Javabean property is mapped to an XML schema element declaration with minOccurs="1". maxOccurs is "1" for a single valued property and "unbounded" for a multivalued property.

If required() is false, then the Javabean property is mapped to XML Schema element declaration with minOccurs="0". maxOccurs is "1" for a single valued property and "unbounded" for a multivalued property.

java.lang.Classtype()
The Java class being referenced.