# Attribute
Date: 2013-02-18

## org.simpleframework.xml
Annotation Type Attribute

    @Retention(value=RUNTIME)
    public @interface Attribute

The `Attribute` annotation represents a serializable XML attribute within an XML element. An object annotated with this is typically a primitive or enumerated type. Conversion from the attribute to primitive type is done with a `Transform` object. If a suitable transform can be found then this will convert the attribute string value to an object instance, which can be assigned to the annotated field, or passed to the annotated method.

Author:
  Niall Gallagher
See Also:
  `Transformer`

Optional Element Summary
`java.lang.String` `empty` This is used to provide a default value for the attribute if the annotated field or method is null.
`java.lang.String` `name` This represents the name of the XML attribute.
`boolean` `required` Determines whether the attribute is required within an XML element.

### name

    public abstract java.lang.String name

  This represents the name of the XML attribute. Annotated fields or methods can optionally provide the name of the XML attribute they represent. If a name is not provided then the field or method name is used in its place. A name can be specified if the field or method name is not suitable for the XML attribute.

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

### empty

    public abstract java.lang.String empty

  This is used to provide a default value for the attribute if the annotated field or method is null. This ensures the the serialization process writes the attribute with a value even if the value is null, and allows deserialization to determine whether the value within the object was null or not.

  Returns:
    this returns the default attribute value to use
  Default:
    ""

### required

    public abstract boolean required

  Determines whether the attribute is required within an XML element. 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 attribute is required, false otherwise
  Default:
    true