Package javax.xml.xquery

## Interface XQItemType

- All Superinterfaces:
    `XQSequenceType`
  All Known Implementing Classes:
    `SaxonXQItemType`

      public interface XQItemType
      extends XQSequenceType

  The `XQItemType` interface represents an item type as defined in XQuery 1.0: An XML Query language.

  The `XQItemType` extends the `XQSequenceType` but restricts the occurrance indicator to be exactly one. This derivation allows passing an item type wherever a sequence type is expected, but not the other way.

  The `XQItemType` interface contains methods to represent information about the following aspects of an item type:
  - The kind of the item - one of `XQITEMKIND_*` constants
  - The base type of the item - one of the `XQBASETYPE_*` constants. For atomic types this is the closest matching built-in XML Schema type, for element and attributes the closest matching built-in XML Schema type this node is based on.
  - Name of the node, if any
  - Type name, if any. If present, then also whether the typename is an anonymous type
  - XML Schema URI associated with the type, if any
  - The nillability characteristics, if any

  An instance of the `XQItemType` is a standalone object that is independant of the `XQConnection` and any XQuery static or dynamic context.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `XQBASETYPE_ANYATOMICTYPE` | Represents the schema type `xs:anyAtomicType`
    `static int` | `XQBASETYPE_ANYSIMPLETYPE` | Represents the schema type `xs:anySimpleType`
    `static int` | `XQBASETYPE_ANYTYPE` | Represents the schema type xs:anyType
    `static int` | `XQBASETYPE_ANYURI` | Represents the schema type `xs:anyURI`
    `static int` | `XQBASETYPE_BASE64BINARY` | Represents the schema type `xs:base64Binary`
    `static int` | `XQBASETYPE_BOOLEAN` | Represents the schema type `xs:boolean`
    `static int` | `XQBASETYPE_BYTE` | Represents the schema type `xs:byte`
    `static int` | `XQBASETYPE_DATE` | Represents the schema type `xs:date`
    `static int` | `XQBASETYPE_DATETIME` | Represents the schema type `xs:dateTime`
    `static int` | `XQBASETYPE_DAYTIMEDURATION` | Represents the schema type `xs:dayTimeDuration`
    `static int` | `XQBASETYPE_DECIMAL` | Represents the schema type `xs:decimal`
    `static int` | `XQBASETYPE_DOUBLE` | Represents the schema type `xs:double`
    `static int` | `XQBASETYPE_DURATION` | Represents the schema type `xs:duration`
    `static int` | `XQBASETYPE_ENTITIES` | Represents the schema type `xs:ENTITIES`
    `static int` | `XQBASETYPE_ENTITY` | Represents the schema type `xs:ENTITY`
    `static int` | `XQBASETYPE_FLOAT` | Represents the schema type `xs:float`
    `static int` | `XQBASETYPE_GDAY` | Represents the schema type `xs:gDay`
    `static int` | `XQBASETYPE_GMONTH` | Represents the schema type `xs:gMonth`
    `static int` | `XQBASETYPE_GMONTHDAY` | Represents the schema type `xs:gMonthDay`
    `static int` | `XQBASETYPE_GYEAR` | Represents the schema type `xs:gYear`
    `static int` | `XQBASETYPE_GYEARMONTH` | Represents the schema type `xs:gYearMonth`
    `static int` | `XQBASETYPE_HEXBINARY` | Represents the schema type `xs:hexBinary`
    `static int` | `XQBASETYPE_ID` | Represents the schema type `xs:ID`
    `static int` | `XQBASETYPE_IDREF` | Represents the schema type `xs:IDREF`
    `static int` | `XQBASETYPE_IDREFS` | Represents the schema type `xs:IDREFS`.
    `static int` | `XQBASETYPE_INT` | Represents the schema type `xs:int`
    `static int` | `XQBASETYPE_INTEGER` | Represents the schema type `xs:integer`
    `static int` | `XQBASETYPE_LANGUAGE` | Represents the schema type `xs:language`
    `static int` | `XQBASETYPE_LONG` | Represents the schema type `xs:long`
    `static int` | `XQBASETYPE_NAME` | Represents the schema type `xs:Name`
    `static int` | `XQBASETYPE_NCNAME` | Represents the schema type `xs:NCName`
    `static int` | `XQBASETYPE_NEGATIVE_INTEGER` | Represents the schema type `xs:negativeInteger`
    `static int` | `XQBASETYPE_NMTOKEN` | Represents the schema type `xs:NMToken`
    `static int` | `XQBASETYPE_NMTOKENS` | Represents the schema type `xs:NMTOKENS`
    `static int` | `XQBASETYPE_NONNEGATIVE_INTEGER` | Represents the schema type `xs:nonNegativeInteger`
    `static int` | `XQBASETYPE_NONPOSITIVE_INTEGER` | Represents the schema type `xs:nonPositiveInteger`
    `static int` | `XQBASETYPE_NORMALIZED_STRING` | Represents the schema type `xs:normalizedString`
    `static int` | `XQBASETYPE_NOTATION` | Represents the schema type `xs:NOTATION`
    `static int` | `XQBASETYPE_POSITIVE_INTEGER` | Represents the schema type `xs:positiveInteger`
    `static int` | `XQBASETYPE_QNAME` | Represents the schema type `xs:QName`
    `static int` | `XQBASETYPE_SHORT` | Represents the schema type `xs:short`
    `static int` | `XQBASETYPE_STRING` | Represents the schema type `xs:string`
    `static int` | `XQBASETYPE_TIME` | Represents the schema type `xs:time`
    `static int` | `XQBASETYPE_TOKEN` | Represents the schema type `xs:token`
    `static int` | `XQBASETYPE_UNSIGNED_BYTE` | Represents the schema type `xs:unsignedByte`
    `static int` | `XQBASETYPE_UNSIGNED_INT` | Represents the schema type `xs:unsignedInt`
    `static int` | `XQBASETYPE_UNSIGNED_LONG` | Represents the schema type `xs:unsignedLong`
    `static int` | `XQBASETYPE_UNSIGNED_SHORT` | Represents the schema type `xs:unsignedShort`
    `static int` | `XQBASETYPE_UNTYPED` | Represents the schema type xs:untyped
    `static int` | `XQBASETYPE_UNTYPEDATOMIC` | Represents the schema type `xs:untypedAtomic`
    `static int` | `XQBASETYPE_YEARMONTHDURATION` | Represents the schema type `xs:yearMonthDuration`
    `static int` | `XQITEMKIND_ATOMIC` | Some atomic type.
    `static int` | `XQITEMKIND_ATTRIBUTE` | Attribute node
    `static int` | `XQITEMKIND_COMMENT` | Comment node
    `static int` | `XQITEMKIND_DOCUMENT` | Document type (the type information represents the type of the document element)
    `static int` | `XQITEMKIND_DOCUMENT_ELEMENT` | Document node containing a single element node as its child (type information represents type of the element child)
    `static int` | `XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT` | Document node containing a single schema element node as its child (type information represents type of the schema element child)
    `static int` | `XQITEMKIND_ELEMENT` | Element node
    `static int` | `XQITEMKIND_ITEM` | Any kind of item
    `static int` | `XQITEMKIND_NODE` | Some node type
    `static int` | `XQITEMKIND_PI` | Processing instruction node
    `static int` | `XQITEMKIND_SCHEMA_ATTRIBUTE` | Schema attribute node
    `static int` | `XQITEMKIND_SCHEMA_ELEMENT` | Schema element node
    `static int` | `XQITEMKIND_TEXT` | Text node

    - ### Fields inherited from interface javax.xml.xquery.XQSequenceType

      `OCC_EMPTY, OCC_EXACTLY_ONE, OCC_ONE_OR_MORE, OCC_ZERO_OR_MORE, OCC_ZERO_OR_ONE`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(java.lang.Object o)` | Compares the specified object with this item type for equality.
    `int` | `getBaseType()` | Returns the base type of the item.
    `int` | `getItemKind()` | Returns the kind of the item.
    `int` | `getItemOccurrence()` | Returns the occurrence indicator for the item type.
    `javax.xml.namespace.QName` | `getNodeName()` | Returns the name of the node in case the item kind is an `XQITEMKIND_DOCUMENT_ELEMENT`, `XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT`, `XQITEMKIND_ELEMENT`, `XQITEMKIND_SCHEMA_ELEMENT`, `XQITEMKIND_ATTRIBUTE`, or `XQITEMKIND_SCHEMA_ATTRIBUTE`.
    `java.lang.String` | `getPIName()` | Returns the name of the processing instruction type.
    `java.net.URI` | `getSchemaURI()` | Returns the schema location URI of the schema that contains the item's element or type definition.
    `javax.xml.namespace.QName` | `getTypeName()` | Represents a type name (global or local).
    `int` | `hashCode()` | Returns a hash code consistent with the definition of the equals method.
    `boolean` | `isAnonymousType()` | Represents whether the item type is an anonymous type in the schema.
    `boolean` | `isElementNillable()` | Returns whether the element type is nillable or not.
    `java.lang.String` | `toString()` | Returns a human-readable implementation-defined string representation of the item type.

    - ### Methods inherited from interface javax.xml.xquery.XQSequenceType

      `getItemType`

- - ### Field Detail

    - #### XQITEMKIND_ATOMIC

          static final int XQITEMKIND_ATOMIC

      Some atomic type.
      See Also:
        Constant Field Values

    - #### XQITEMKIND_ATTRIBUTE

          static final int XQITEMKIND_ATTRIBUTE

      Attribute node
      See Also:
        Constant Field Values

    - #### XQITEMKIND_COMMENT

          static final int XQITEMKIND_COMMENT

      Comment node
      See Also:
        Constant Field Values

    - #### XQITEMKIND_DOCUMENT

          static final int XQITEMKIND_DOCUMENT

      Document type (the type information represents the type of the document element)
      See Also:
        Constant Field Values

    - #### XQITEMKIND_DOCUMENT_ELEMENT

          static final int XQITEMKIND_DOCUMENT_ELEMENT

      Document node containing a single element node as its child (type information represents type of the element child)
      See Also:
        Constant Field Values

    - #### XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT

          static final int XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT

      Document node containing a single schema element node as its child (type information represents type of the schema element child)
      See Also:
        Constant Field Values

    - #### XQITEMKIND_ELEMENT

          static final int XQITEMKIND_ELEMENT

      Element node
      See Also:
        Constant Field Values

    - #### XQITEMKIND_ITEM

          static final int XQITEMKIND_ITEM

      Any kind of item
      See Also:
        Constant Field Values

    - #### XQITEMKIND_NODE

          static final int XQITEMKIND_NODE

      Some node type
      See Also:
        Constant Field Values

    - #### XQITEMKIND_PI

          static final int XQITEMKIND_PI

      Processing instruction node
      See Also:
        Constant Field Values

    - #### XQITEMKIND_TEXT

          static final int XQITEMKIND_TEXT

      Text node
      See Also:
        Constant Field Values

    - #### XQITEMKIND_SCHEMA_ELEMENT

          static final int XQITEMKIND_SCHEMA_ELEMENT

      Schema element node
      See Also:
        Constant Field Values

    - #### XQITEMKIND_SCHEMA_ATTRIBUTE

          static final int XQITEMKIND_SCHEMA_ATTRIBUTE

      Schema attribute node
      See Also:
        Constant Field Values

    - #### XQBASETYPE_UNTYPED

          static final int XQBASETYPE_UNTYPED

      Represents the schema type xs:untyped
      See Also:
        Constant Field Values

    - #### XQBASETYPE_ANYTYPE

          static final int XQBASETYPE_ANYTYPE

      Represents the schema type xs:anyType
      See Also:
        Constant Field Values

    - #### XQBASETYPE_ANYSIMPLETYPE

          static final int XQBASETYPE_ANYSIMPLETYPE

      Represents the schema type `xs:anySimpleType`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_ANYATOMICTYPE

          static final int XQBASETYPE_ANYATOMICTYPE

      Represents the schema type `xs:anyAtomicType`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_UNTYPEDATOMIC

          static final int XQBASETYPE_UNTYPEDATOMIC

      Represents the schema type `xs:untypedAtomic`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_DAYTIMEDURATION

          static final int XQBASETYPE_DAYTIMEDURATION

      Represents the schema type `xs:dayTimeDuration`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_YEARMONTHDURATION

          static final int XQBASETYPE_YEARMONTHDURATION

      Represents the schema type `xs:yearMonthDuration`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_ANYURI

          static final int XQBASETYPE_ANYURI

      Represents the schema type `xs:anyURI`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_BASE64BINARY

          static final int XQBASETYPE_BASE64BINARY

      Represents the schema type `xs:base64Binary`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_BOOLEAN

          static final int XQBASETYPE_BOOLEAN

      Represents the schema type `xs:boolean`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_DATE

          static final int XQBASETYPE_DATE

      Represents the schema type `xs:date`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_INT

          static final int XQBASETYPE_INT

      Represents the schema type `xs:int`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_INTEGER

          static final int XQBASETYPE_INTEGER

      Represents the schema type `xs:integer`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_SHORT

          static final int XQBASETYPE_SHORT

      Represents the schema type `xs:short`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_LONG

          static final int XQBASETYPE_LONG

      Represents the schema type `xs:long`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_DATETIME

          static final int XQBASETYPE_DATETIME

      Represents the schema type `xs:dateTime`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_DECIMAL

          static final int XQBASETYPE_DECIMAL

      Represents the schema type `xs:decimal`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_DOUBLE

          static final int XQBASETYPE_DOUBLE

      Represents the schema type `xs:double`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_DURATION

          static final int XQBASETYPE_DURATION

      Represents the schema type `xs:duration`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_FLOAT

          static final int XQBASETYPE_FLOAT

      Represents the schema type `xs:float`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_GDAY

          static final int XQBASETYPE_GDAY

      Represents the schema type `xs:gDay`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_GMONTH

          static final int XQBASETYPE_GMONTH

      Represents the schema type `xs:gMonth`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_GMONTHDAY

          static final int XQBASETYPE_GMONTHDAY

      Represents the schema type `xs:gMonthDay`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_GYEAR

          static final int XQBASETYPE_GYEAR

      Represents the schema type `xs:gYear`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_GYEARMONTH

          static final int XQBASETYPE_GYEARMONTH

      Represents the schema type `xs:gYearMonth`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_HEXBINARY

          static final int XQBASETYPE_HEXBINARY

      Represents the schema type `xs:hexBinary`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NOTATION

          static final int XQBASETYPE_NOTATION

      Represents the schema type `xs:NOTATION`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_QNAME

          static final int XQBASETYPE_QNAME

      Represents the schema type `xs:QName`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_STRING

          static final int XQBASETYPE_STRING

      Represents the schema type `xs:string`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_TIME

          static final int XQBASETYPE_TIME

      Represents the schema type `xs:time`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_BYTE

          static final int XQBASETYPE_BYTE

      Represents the schema type `xs:byte`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NONPOSITIVE_INTEGER

          static final int XQBASETYPE_NONPOSITIVE_INTEGER

      Represents the schema type `xs:nonPositiveInteger`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NONNEGATIVE_INTEGER

          static final int XQBASETYPE_NONNEGATIVE_INTEGER

      Represents the schema type `xs:nonNegativeInteger`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NEGATIVE_INTEGER

          static final int XQBASETYPE_NEGATIVE_INTEGER

      Represents the schema type `xs:negativeInteger`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_POSITIVE_INTEGER

          static final int XQBASETYPE_POSITIVE_INTEGER

      Represents the schema type `xs:positiveInteger`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_UNSIGNED_LONG

          static final int XQBASETYPE_UNSIGNED_LONG

      Represents the schema type `xs:unsignedLong`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_UNSIGNED_INT

          static final int XQBASETYPE_UNSIGNED_INT

      Represents the schema type `xs:unsignedInt`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_UNSIGNED_SHORT

          static final int XQBASETYPE_UNSIGNED_SHORT

      Represents the schema type `xs:unsignedShort`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_UNSIGNED_BYTE

          static final int XQBASETYPE_UNSIGNED_BYTE

      Represents the schema type `xs:unsignedByte`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NORMALIZED_STRING

          static final int XQBASETYPE_NORMALIZED_STRING

      Represents the schema type `xs:normalizedString`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_TOKEN

          static final int XQBASETYPE_TOKEN

      Represents the schema type `xs:token`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_LANGUAGE

          static final int XQBASETYPE_LANGUAGE

      Represents the schema type `xs:language`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NAME

          static final int XQBASETYPE_NAME

      Represents the schema type `xs:Name`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NCNAME

          static final int XQBASETYPE_NCNAME

      Represents the schema type `xs:NCName`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NMTOKEN

          static final int XQBASETYPE_NMTOKEN

      Represents the schema type `xs:NMToken`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_ID

          static final int XQBASETYPE_ID

      Represents the schema type `xs:ID`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_IDREF

          static final int XQBASETYPE_IDREF

      Represents the schema type `xs:IDREF`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_ENTITY

          static final int XQBASETYPE_ENTITY

      Represents the schema type `xs:ENTITY`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_IDREFS

          static final int XQBASETYPE_IDREFS

      Represents the schema type `xs:IDREFS`. Valid only if the item kind is `XQITEMKIND_ELEMENT`, `XQITEMKIND_DOCUMENT_ELEMENT`, or `XQITEMKIND_ATTRIBUTE`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_ENTITIES

          static final int XQBASETYPE_ENTITIES

      Represents the schema type `xs:ENTITIES`
      See Also:
        Constant Field Values

    - #### XQBASETYPE_NMTOKENS

          static final int XQBASETYPE_NMTOKENS

      Represents the schema type `xs:NMTOKENS`
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getBaseType

          int getBaseType()
                   throws XQException

      Returns the base type of the item. One of the `XQBASETYPE_*` constants.
      XQJ defines a constant for each of the built-in schema types defined in XML Schema. For atomic types this is the closest matching built-in XML Schema type, for element and attributes the closest matching built-in XML Schema type this node is based on.
      Returns:
        int one of the `XQBASETYPE_*` constants indicating the basic type of the item
      Throws:
        `XQException` - if the item kind is not one of: `XQITEMKIND_DOCUMENT_ELEMENT`, `XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT`, `XQITEMKIND_ELEMENT`, `XQITEMKIND_SCHEMA_ELEMENT`, `XQITEMKIND_ATTRIBUTE`, `XQITEMKIND_SCHEMA_ATTRIBUTE`, or `XQITEMKIND_ATOMIC`

    - #### getItemKind

          int getItemKind()

      Returns the kind of the item. One of the `XQITEMKIND_*` constants.
      Returns:
        int one of the `XQITEMKIND_*` constants indicating the basic kind of the item

    - #### getItemOccurrence

          int getItemOccurrence()

      Returns the occurrence indicator for the item type. This method will always return the value `XQSequenceType.OCC_EXACTLY_ONE`.
      Specified by:
        `getItemOccurrence` in interface `XQSequenceType`
      Returns:
        int indicating the occurrence indicator

    - #### toString

          java.lang.String toString()

      Returns a human-readable implementation-defined string representation of the item type.
      Specified by:
        `toString` in interface `XQSequenceType`
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        String a string representation of the item type

    - #### getNodeName

          javax.xml.namespace.QName getNodeName()
                                         throws XQException

      Returns the name of the node in case the item kind is an `XQITEMKIND_DOCUMENT_ELEMENT`, `XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT`, `XQITEMKIND_ELEMENT`, `XQITEMKIND_SCHEMA_ELEMENT`, `XQITEMKIND_ATTRIBUTE`, or `XQITEMKIND_SCHEMA_ATTRIBUTE`.

      For example, in the case of a type for `element "foo"` this will return the `QName foo`. For wildcard entries a `null` value will be returned.
      Returns:
        `QName` for the name of the element, attribute, or document element node. `null` if it is a wildcard
      Throws:
        `XQException` - if the item kind is not one of: `XQITEMKIND_DOCUMENT_ELEMENT`, `XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT`, `XQITEMKIND_ELEMENT`, `XQITEMKIND_SCHEMA_ELEMENT`, `XQITEMKIND_ATTRIBUTE`, or `XQITEMKIND_SCHEMA_ATTRIBUTE`

    - #### getSchemaURI

          java.net.URI getSchemaURI()

      Returns the schema location URI of the schema that contains the item's element or type definition. This method is implementation-definied and an implementation will return a `null` value if it does not support retrieving the schema location URI.

      If the item corresponds to a validated global element in a schema, the result will be the schema location URI to the XMLSchema containing the element definition. Otherwise if the item is a schema validated node, the result will be the schema location URI of the XMLSchema containing the type definition of that node. If the item is not schema validated, the result is `null`
      Returns:
        `URI` representing the schema location URI of the XMLSchema containing the global element definition or the type definition of the current item. `null` in case the item is not schema validated or if the implementation does not support retrieving the schema URI.

    - #### getTypeName

          javax.xml.namespace.QName getTypeName()
                                         throws XQException

      Represents a type name (global or local). This can be used to represent specific type name such as, element foo of type hatsize. The schema type name is represented as a single `QName`. If the return type is an anonymous type, the actual `QName` value returned is implementation defined.
      Returns:
        the `QName` of the schema type in case of a user defined or anonoymous types. For a built-in type, returns a predefined type name as QName (e.g.`xs:anyType`, `xs:decimal`, etc). Cannot be `null`
      Throws:
        `XQException` - if the item kind is not one of: `XQITEMKIND_DOCUMENT_ELEMENT`, `XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT`, `XQITEMKIND_ATOMIC`, `XQITEMKIND_ELEMENT`, `XQITEMKIND_SCHEMA_ELEMENT`, `XQITEMKIND_ATTRIBUTE`, or `XQITEMKIND_SCHEMA_ATTRIBUTE`

    - #### isAnonymousType

          boolean isAnonymousType()

      Represents whether the item type is an anonymous type in the schema.
      Returns:
        `true` if the item type is an anonymous type in the schema, `false` otherwise

    - #### isElementNillable

          boolean isElementNillable()

      Returns whether the element type is nillable or not.
      Returns:
        `true` if the element type is nillable, `false` otherwise

    - #### getPIName

          java.lang.String getPIName()
                              throws XQException

      Returns the name of the processing instruction type. As such the item kind of this `XQItemType` must be `XQITEMKIND_PI`.
      Returns:
        the name of the processing instruction type. `null` if it is a wildcard
      Throws:
        `XQException` - if the item kind is not `XQITEMKIND_PI`

    - #### equals

          boolean equals​(java.lang.Object o)

      Compares the specified object with this item type for equality. The result is `true` only if the argument is an item type object which represents the same XQuery item type.

      In order to comply with the general contract of `equals` and `hashCode` across different implementations the following algorithm must be used. Return `true` if and only if both objects are `XQItemType` and:

      - `getItemKind()` is equal
      - if `getBaseType()` is supported for the item kind, it must be equal
      - if `getNodeName()` is supported for the item kind, it must be equal
      - `getSchemaURI()` is equal
      - if `getTypeName()` is supported for the item kind, it must be equal
      - `isAnonymousType()` is equal
      - `isElementNillable()` is equal
      - if `getPIName()` is supported for the item kind, it must be equal
      Specified by:
        `equals` in interface `XQSequenceType`
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `o` - an `XQItemType` object representing an XQuery item type
      Returns:
        `true` if the input item type object represents the same XQuery item type, `false` otherwise

    - #### hashCode

          int hashCode()

      Returns a hash code consistent with the definition of the equals method.

      In order to comply with the general contract of `equals` and `hashCode` across different implementations the following algorithm must be used:

            hashCode = this.getItemKind();
            if this.getSchemaURI != null
              hashCode = 31*hashCode + this.getSchemaURI().hashCode();
            if this.getBaseType() is supported for the item kind
              hashCode = 31*hashCode + this.getbaseType();
            if this.getNodeName () is supported for the item kind and
              this.getNodeName() != null
              hashCode = 31*hashCode + this.getNodeName().hashCode()
            if this.getTypeName () is supported for the item kind
              hashCode = 31*hashCode + this.getTypeName().hashCode();
            if this.getPIName () is supported for the item kind and
              this.getPIName () != null
              hashCode = 31*hashCode + this.getPIName().hashCode();

      Specified by:
        `hashCode` in interface `XQSequenceType`
      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        hash code for this item type