Class JAXBElement<T>

  • All Implemented Interfaces:
    java.io.Serializable

    public class JAXBElement<T>
    extends java.lang.Object
    implements java.io.Serializable

    Jakarta XML Binding 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 attribute(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 Jakarta XML Binding 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.

    Author:
    Kohsuke Kawaguchi, Joe Fialli
    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 java.lang.Class<T> declaredType
      Java datatype binding for xml element declaration's type.
      protected javax.xml.namespace.QName name
      xml element tag name
      protected boolean nil
      true iff the xml element instance has xsi:nil="true".
      protected java.lang.Class<?> scope
      Scope of xml element declaration representing this xml element instance.
      protected T value
      xml element value.
    • Constructor Summary

      Constructors 
      Constructor Description
      JAXBElement​(javax.xml.namespace.QName name, java.lang.Class<T> declaredType, java.lang.Class<?> scope, T value)
      Construct an xml element instance.
      JAXBElement​(javax.xml.namespace.QName name, java.lang.Class<T> declaredType, T value)
      Construct an xml element instance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Class<T> getDeclaredType()
      Returns the Java binding of the xml element declaration's type attribute.
      javax.xml.namespace.QName getName()
      Returns the xml element tag name.
      java.lang.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 javax.xml.namespace.QName name
        xml element tag name
      • declaredType

        protected final java.lang.Class<T> declaredType
        Java datatype binding for xml element declaration's type.
      • scope

        protected final java.lang.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​(javax.xml.namespace.QName name,
                           java.lang.Class<T> declaredType,
                           java.lang.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​(javax.xml.namespace.QName name,
                           java.lang.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 java.lang.Class<T> getDeclaredType()
        Returns the Java binding of the xml element declaration's type attribute.
      • getName

        public javax.xml.namespace.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 java.lang.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.