org.simpleframework.xml
Annotation Type Element


@Retention(value=RUNTIME)
public @interface Element

The Element annotation is used to represent a field or method that appears as an XML element. Fields or methods that are annotated with this can be either primitive or compound, that is, represent an object that can be serialized and deserialized. Below is an example of the serialized format for a compound object.

If this annotates a type that contains no XML annotations then this will look for a suitable Transform for the type using the Transformer. For instance, all primitives and primitive arrays that are annotated with this will make use of a transform in order to convert its value to and from suitable XML representations.

 
    <example class="demo.Example">
       <data/>
    <example>
 
 
Each element may have any number of attributes and sub-elements representing fields or methods of that compound object. Attribute and element names can be acquired from the annotation or, if the annotation does not explicitly declare a name, it is taken from the annotated field or method. There are exceptions in some cases, for example, the class attribute is reserved by the serialization framework to represent the serialized type.

Author:
Niall Gallagher

Optional Element Summary
 boolean data
          This is used to determine whether the element data is written in a CDATA block or not.
 java.lang.String name
          This represents the name of the XML element.
 boolean required
          Determines whether the element is required within the XML document.
 java.lang.Class type
          This represents an explicit type that should be used for the annotated field or method.
 

name

public abstract java.lang.String name
This represents the name of the XML element. Annotated fields can optionally provide the name of the element. If no name is provided then the name of the annotated field or method will be used in its place. The name is provided if the field or method name is not suitable as an XML element name.

Returns:
the name of the XML element this represents
Default:
""

data

public abstract boolean data
This is used to determine whether the element data is written in a CDATA block or not. If this is set to true then the text is written within a CDATA block, by default the text is output as escaped XML. Typically this is useful for primitives only.

Returns:
true if the data is to be wrapped in a CDATA block
Default:
false

required

public abstract boolean required
Determines whether the element is required within the XML document. Any field marked as not required will not have its value set when the object is deserialized. If an object is to be serialized only a null attribute will not appear as XML.

Returns:
true if the element is required, false otherwise
Default:
true

type

public abstract java.lang.Class type
This represents an explicit type that should be used for the annotated field or method. Typically this is used when the element forms part of a union group. It allows the union to distinguish the annotation to use based on the type.

Returns:
this returns the explicit type to use for this
Default:
void.class