## 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
`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
`boolean` `equals(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.
`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`.
`String` `getPIName()` Returns the name of the processing instruction type.
`URI` `getSchemaURI()` Returns the schema location URI of the schema that contains the item's element or type definition.
`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.
`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

    String toString()

  Returns a human-readable implementation-defined string representation of the item type.

  Specified by:
    `toString` in interface `XQSequenceType`
  Overrides:
    `toString` in class `Object`
  Returns:
    String a string representation of the item type

### getNodeName

    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

    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

    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

    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(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 `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 `Object`
  Returns:
    hash code for this item type

Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.