# javax.xml.bind.annotation

***

**1. Root Element Name**

```java
@XmlRootElement(name = "rootElement")
public class ExampleClass {}
```

**2. Element Name**

```java
@XmlElement(name = "elementName")
public String elementName;
```

**3. Attribute Name**

```java
@XmlAttribute(name = "attributeName")
public String attributeName;
```

**4. Type Conversion**

```java
@XmlJavaTypeAdapter(MyAdapter.class)
public String date;
```

**5. Element Wrapper**

```java
@XmlElementWrapper(name = "wrapperElement")
@XmlElement(name = "wrappedElement")
public List<String> list;
```

**6. Ignore Element**

```java
@XmlTransient
public String ignoredField;
```

**7. Default Value**

```java
@XmlElement(defaultValue = "default")
public String value;
```

**8. Nillable Element**

```java
@XmlElement(nillable = true)
public String nullableField;
```

**9. Namespace Prefix**

```java
@XmlNs(prefix = "myPrefix", namespaceURI = "http://example.com/ns")
public class ExampleClass {}
```

**10. Polymorphism**

```java
@XmlType(name = "baseClass")
public class BaseClass {}

@XmlType(name = "derivedClass")
public class DerivedClass extends BaseClass {}
```

**11. Customization**

```java
@XmlElement(namespace = "http://example.com/ns")
@XmlElementDecl(namespace = "http://example.com/ns", name = "myElement")
public String myElement;
```

**12. Transient Customization**

```java
@XmlTransient
@XmlAttribute
public String transientAttribute;
```

**13. Collection Element Wrapper**

```java
@XmlElementWrapper(name = "wrapperElement")
@XmlElementRef
public List<String> list;
```

**14. Attribute Customization**

```java
@XmlAttribute(name = "myAttribute")
@XmlElementDecl(namespace = "http://example.com/ns", name = "myAttribute")
public String myAttribute;
```

**15. Map Element Wrapper**

```java
@XmlElementWrapper(name = "wrapperElement")
@XmlElement(name = "value")
@XmlJavaTypeAdapter(HashMapAdapter.class)
public Map<String, String> map;
```

**16. Discriminator**

```java
@XmlDiscriminatorValue(value = "type1")
public class Type1 {}

@XmlDiscriminatorValue(value = "type2")
public class Type2 {}
```

**17. Enum Wrapper**

```java
@XmlElement(name = "wrapperElement")
@XmlEnumValue("value1")
public EnumClass enumValue;
```

**18. Choice**

```java
@XmlElement(type = Type1.class, name = "type1")
@XmlElement(type = Type2.class, name = "type2")
public Object choiceElement;
```

**19. Inheritance**

```java
@XmlSeeAlso({Type1.class, Type2.class})
public class ParentClass {}
```

**20. Element Collection**

```java
@XmlElementWrapper(name = "wrapperElement")
@XmlElement(name = "element")
public List<String> collection;
```

**21. Embeddable Class**

```java
@XmlAccessorType(XmlAccessType.FIELD)
public class EmbeddableClass {}

@XmlElement(name = "embeddableElement")
public EmbeddableClass embeddableClass;
```

**22. Transient Element**

```java
@XmlTransient
@XmlElement(name = "transientElement")
public String transientElement;
```

**23. Customization with XMLType**

```java
@XmlType(propOrder = {"field1", "field2"})
public class CustomizationClass {
    private String field1;
    private String field2;
}
```

**24. Override Default Type Adapter**

```java
@XmlElement(type = Date.class)
@XmlJavaTypeAdapter(MyDateAdapter.class)
public Date date;
```

**25. Collection of Embeddable Classes**

```java
@XmlElementWrapper(name = "wrapperElement")
@XmlElement(name = "embeddableElement")
public List<EmbeddableClass> embeddableList;
```

**26. Map of Embeddable Classes**

```java
@XmlElementWrapper(name = "wrapperElement")
@XmlElement(name = "value")
public Map<String, EmbeddableClass> embeddableMap;
```

**27. Override Element Name of Collection Type**

```java
@XmlElementWrapper(name = "wrapperElement")
@XmlElement(name = "customElementName")
public List<String> collection;
```

**28. Mixed Content**

```java
@XmlMixed
@XmlElement(name = "elementName")
public List<String> mixedContent;
```

**29. Ignored Embeddable Class**

```java
@XmlTransient
@XmlElement(name = "embeddableElement")
public EmbeddableClass ignoredEmbeddable;
```

**30. Customization with XmlAccessorOrder**

```java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlAccessorOrder(XmlAccessOrder.ALPHABETICAL)
public class CustomizationClass {
    private String field1;
    private String field2;
}
```

**31. Root Element Customization**

```java
@XmlRootElement(name = "rootElement", namespace = "http://example.com/ns")
public class CustomizationClass {}
```

**32. Ignored Type Adapter**

```java
@XmlElement(type = Date.class)
@XmlJavaTypeAdapter(typeAdapter = MyDateAdapter.class, 
                   disableDefaultAdapter = true)
public Date date;
```

**33. Default Polymorphism Handling**

```java
@XmlSeeAlso(Type1.class)
public class ParentClass {}
```
