javax.xml.bind.annotation

## Annotation Type XmlID

    @Retention(RUNTIME)
    @Target({FIELD,METHOD})
    public @interface XmlID

Maps a JavaBean property to XML ID.

To preserve referential integrity of an object graph across XML serialization followed by a XML deserialization, requires an object reference to be marshalled by reference or containment appropriately. Annotations `@XmlID` and `@XmlIDREF` together allow a customized mapping of a JavaBean property's type by containment or reference.

Usage

The `@XmlID` 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 constraints:

- At most one field or property in a class can be annotated with `@XmlID`.
- The JavaBean property's type must be `java.lang.String`.
- The only other mapping annotations that can be used with `@XmlID` are: `@XmlElement` and `@XmlAttribute`.

Example: Map a JavaBean property's type to `xs:ID`

        // Example: code fragment
        public class Customer {
            @XmlAttribute
            @XmlID
            public String getCustomerID();
            public void setCustomerID(String id);
            .... other properties not shown
        }

        <!-- Example: XML Schema fragment -->
        <xs:complexType name="Customer">
          <xs:complexContent>
            <xs:sequence>
              ....
            </xs:sequence>
            <xs:attribute name="customerID" type="xs:ID"/>
          </xs:complexContent>
        </xs:complexType>

Since:
  1.6, JAXB 2.0
See Also:
  `XmlIDREF`