javax.xml.bind

## Class JAXBElement<T>

- java.lang.Object
- - javax.xml.bind.JAXBElement<T>

- All Implemented Interfaces:
    Serializable

      public class JAXBElement<T>
      extends Object
      implements Serializable

  JAXB representation of an Xml Element.

  This class represents information about an Xml Element from both the element declaration within a schema and the element instance value within an xml document with the following properties

  - element's xml tag `name`
  - `value` represents the element instance's atttribute(s) and content model
  - element declaration's `declaredType` (`xs:element @type` attribute)
  - `scope` of element declaration
  - boolean `nil` property. (element instance's `xsi:nil` attribute)

  The `declaredType` and `scope` property are the JAXB class binding for the xml type definition.

  `Scope` is either `JAXBElement.GlobalScope` or the Java class representing the complex type definition containing the schema element declaration.

  There is a property constraint that if `value` is `null`, then `nil` must be `true`. The converse is not true to enable representing a nil element with attribute(s). If `nil` is true, it is possible that `value` is non-null so it can hold the value of the attributes associated with a nil element.

  Since:
    JAXB 2.0
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `JAXBElement.GlobalScope` | Designates global scope for an xml element.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected Class<T>` | `declaredType` | Java datatype binding for xml element declaration's type.
    `protected QName` | `name` | xml element tag name
    `protected boolean` | `nil` | true iff the xml element instance has xsi:nil="true".
    `protected Class` | `scope` | Scope of xml element declaration representing this xml element instance.
    `protected T` | `value` | xml element value.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `JAXBElement(QName name, Class<T> declaredType, Class scope, T value)` | Construct an xml element instance.
    `JAXBElement(QName name, Class<T> declaredType, T value)` | Construct an xml element instance.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Class<T>` | `getDeclaredType()` | Returns the Java binding of the xml element declaration's type attribute.
    `QName` | `getName()` | Returns the xml element tag name.
    `Class` | `getScope()` | Returns scope of xml element declaration.
    `T` | `getValue()` | Return the content model and attribute values for this element.
    `boolean` | `isGlobalScope()` | Returns true iff this xml element declaration is global.
    `boolean` | `isNil()` | Returns `true` iff this element instance content model is nil.
    `boolean` | `isTypeSubstituted()` | Returns true iff this xml element instance's value has a different type than xml element declaration's declared type.
    `void` | `setNil(boolean value)` | Set whether this element has nil content.
    `void` | `setValue(T t)` | Set the content model and attributes of this xml element.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### name

          protected final QName name

      xml element tag name

    - #### declaredType

          protected final Class<T> declaredType

      Java datatype binding for xml element declaration's type.

    - #### scope

          protected final Class scope

      Scope of xml element declaration representing this xml element instance. Can be one of the following values: - `JAXBElement.GlobalScope` for global xml element declaration. - local element declaration has a scope set to the Java class representation of complex type defintion containing xml element declaration.

    - #### value

          protected T value

      xml element value. Represents content model and attributes of an xml element instance.

    - #### nil

          protected boolean nil

      true iff the xml element instance has xsi:nil="true".

  - ### Constructor Detail

    - #### JAXBElement

          public JAXBElement(QName name,
                             Class<T> declaredType,
                             Class scope,
                             T value)

      Construct an xml element instance.

      Parameters:
        `name` - Java binding of xml element tag name
        `declaredType` - Java binding of xml element declaration's type
        `scope` - Java binding of scope of xml element declaration. Passing null is the same as passing `GlobalScope.class`
        `value` - Java instance representing xml element's value.
      See Also:
        `getScope()`, `isTypeSubstituted()`

    - #### JAXBElement

          public JAXBElement(QName name,
                             Class<T> declaredType,
                             T value)

      Construct an xml element instance. This is just a convenience method for `new JAXBElement(name,declaredType,GlobalScope.class,value)`

  - ### Method Detail

    - #### getDeclaredType

          public Class<T> getDeclaredType()

      Returns the Java binding of the xml element declaration's type attribute.

    - #### getName

          public QName getName()

      Returns the xml element tag name.

    - #### setValue

          public void setValue(T t)

      Set the content model and attributes of this xml element.

      When this property is set to `null`, `isNil()` must by `true`. Details of constraint are described at `isNil()`.

      See Also:
        `isTypeSubstituted()`

    - #### getValue

          public T getValue()

      Return the content model and attribute values for this element.

      See `isNil()` for a description of a property constraint when this value is `null`

    - #### getScope

          public Class getScope()

      Returns scope of xml element declaration.
      Returns:
        `GlobalScope.class` if this element is of global scope.
      See Also:
        `isGlobalScope()`

    - #### isNil

          public boolean isNil()

      Returns `true` iff this element instance content model is nil.

      This property always returns `true` when `getValue()` is null. Note that the converse is not true, when this property is `true`, `getValue()` can contain a non-null value for attribute(s). It is valid for a nil xml element to have attribute(s).

    - #### setNil

          public void setNil(boolean value)

      Set whether this element has nil content.

      See Also:
        `isNil()`

    - #### isGlobalScope

          public boolean isGlobalScope()

      Returns true iff this xml element declaration is global.

    - #### isTypeSubstituted

          public boolean isTypeSubstituted()

      Returns true iff this xml element instance's value has a different type than xml element declaration's declared type.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.