## net.sf.saxon.xqj
Class SaxonXQItemType

    java.lang.Object
      net.sf.saxon.xqj.SaxonXQItemType

All Implemented Interfaces:
  javax.xml.xquery.XQItemType, javax.xml.xquery.XQSequenceType

    public class SaxonXQItemType

extends java.lang.Object
implements javax.xml.xquery.XQItemType

Saxon implementation of the XQJ XQItemType interface

Field Summary

Fields inherited from interface javax.xml.xquery.XQItemType

`XQBASETYPE_ANYATOMICTYPE, XQBASETYPE_ANYSIMPLETYPE, XQBASETYPE_ANYTYPE, XQBASETYPE_ANYURI, XQBASETYPE_BASE64BINARY, XQBASETYPE_BOOLEAN, XQBASETYPE_BYTE, XQBASETYPE_DATE, XQBASETYPE_DATETIME, XQBASETYPE_DAYTIMEDURATION, XQBASETYPE_DECIMAL, XQBASETYPE_DOUBLE, XQBASETYPE_DURATION, XQBASETYPE_ENTITIES, XQBASETYPE_ENTITY, XQBASETYPE_FLOAT, XQBASETYPE_GDAY, XQBASETYPE_GMONTH, XQBASETYPE_GMONTHDAY, XQBASETYPE_GYEAR, XQBASETYPE_GYEARMONTH, XQBASETYPE_HEXBINARY, XQBASETYPE_ID, XQBASETYPE_IDREF, XQBASETYPE_IDREFS, XQBASETYPE_INT, XQBASETYPE_INTEGER, XQBASETYPE_LANGUAGE, XQBASETYPE_LONG, XQBASETYPE_NAME, XQBASETYPE_NCNAME, XQBASETYPE_NEGATIVE_INTEGER, XQBASETYPE_NMTOKEN, XQBASETYPE_NMTOKENS, XQBASETYPE_NONNEGATIVE_INTEGER, XQBASETYPE_NONPOSITIVE_INTEGER, XQBASETYPE_NORMALIZED_STRING, XQBASETYPE_NOTATION, XQBASETYPE_POSITIVE_INTEGER, XQBASETYPE_QNAME, XQBASETYPE_SHORT, XQBASETYPE_STRING, XQBASETYPE_TIME, XQBASETYPE_TOKEN, XQBASETYPE_UNSIGNED_BYTE, XQBASETYPE_UNSIGNED_INT, XQBASETYPE_UNSIGNED_LONG, XQBASETYPE_UNSIGNED_SHORT, XQBASETYPE_UNTYPED, XQBASETYPE_UNTYPEDATOMIC, XQBASETYPE_YEARMONTHDURATION, XQITEMKIND_ATOMIC, XQITEMKIND_ATTRIBUTE, XQITEMKIND_COMMENT, XQITEMKIND_DOCUMENT, XQITEMKIND_DOCUMENT_ELEMENT, XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT, XQITEMKIND_ELEMENT, XQITEMKIND_ITEM, XQITEMKIND_NODE, XQITEMKIND_PI, XQITEMKIND_SCHEMA_ATTRIBUTE, XQITEMKIND_SCHEMA_ELEMENT, XQITEMKIND_TEXT`

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`

Constructor Summary
`protected` `SaxonXQItemType(ItemType itemType, Configuration config)`
`protected` `SaxonXQItemType(NodeInfo node)`

Method Summary
`boolean` `equals(java.lang.Object obj)` Compares the specified object with this item type for equality.
`int` `getBaseType()` Returns the basic pre-defined type of the item.
`int` `getItemKind()` Returns the kind of the item.
`int` `getItemOccurrence()` Returns the occurrence indicator for the item type.
`javax.xml.xquery.XQItemType` `getItemType()` Returns the type of the item in the sequence 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 class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### SaxonXQItemType

    protected SaxonXQItemType(ItemType itemType,
                              Configuration config)

### SaxonXQItemType

    protected SaxonXQItemType(NodeInfo node)

Method Detail

### getBaseType

    public int getBaseType()
                    throws javax.xml.xquery.XQException

  Description copied from interface: `javax.xml.xquery.XQItemType`
  Returns the basic pre-defined type of the item. One of the `XQBASETYPE_*` constants.

  Specified by:
    `getBaseType` in interface `javax.xml.xquery.XQItemType`
  Returns:
    int one of the `XQBASETYPE_*` constants indicating the basic type of the item
  Throws:
    `javax.xml.xquery.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

    public int getItemKind()

  Description copied from interface: `javax.xml.xquery.XQItemType`
  Returns the kind of the item. One of the `XQITEMKIND_*` constants.

  Specified by:
    `getItemKind` in interface `javax.xml.xquery.XQItemType`
  Returns:
    int one of the `XQITEMKIND_*` constants indicating the basic kind of the item

### getItemOccurrence

    public int getItemOccurrence()

  Description copied from interface: `javax.xml.xquery.XQItemType`
  Returns the occurrence indicator for the item type. This method will always return the value `XQSequenceType.OCC_EXACTLY_ONE`.

  Specified by:
    `getItemOccurrence` in interface `javax.xml.xquery.XQItemType`
  Specified by:
    `getItemOccurrence` in interface `javax.xml.xquery.XQSequenceType`
  Returns:
    int indicating the occurrence indicator

### getNodeName

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

  Description copied from interface: `javax.xml.xquery.XQItemType`
  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.

  Specified by:
    `getNodeName` in interface `javax.xml.xquery.XQItemType`
  Returns:
    `QName` for the name of the element, attribute, or document element node. `null` if it is a wildcard
  Throws:
    `javax.xml.xquery.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`

### getPIName

    public java.lang.String getPIName()
                               throws javax.xml.xquery.XQException

  Description copied from interface: `javax.xml.xquery.XQItemType`
  Returns the name of the processing instruction type. As such the item kind of this `XQItemType` must be `XQITEMKIND_PI`.

  Specified by:
    `getPIName` in interface `javax.xml.xquery.XQItemType`
  Returns:
    the name of the processing instruction type. `null` if it is a wildcard
  Throws:
    `javax.xml.xquery.XQException` - if the item kind is not `XQITEMKIND_PI`

### getSchemaURI

    public java.net.URI getSchemaURI()

  Description copied from interface: `javax.xml.xquery.XQItemType`
  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`

  Specified by:
    `getSchemaURI` in interface `javax.xml.xquery.XQItemType`
  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.

### toString

    public java.lang.String toString()

  Description copied from interface: `javax.xml.xquery.XQItemType`
  Returns a human-readable implementation-defined string representation of the item type.

  Specified by:
    `toString` in interface `javax.xml.xquery.XQItemType`
  Specified by:
    `toString` in interface `javax.xml.xquery.XQSequenceType`
  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    String a string representation of the item type

### getTypeName

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

  Description copied from interface: `javax.xml.xquery.XQItemType`
  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.

  Specified by:
    `getTypeName` in interface `javax.xml.xquery.XQItemType`
  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:
    `javax.xml.xquery.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

    public boolean isAnonymousType()

  Description copied from interface: `javax.xml.xquery.XQItemType`
  Represents whether the item type is an anonymous type in the schema.

  Specified by:
    `isAnonymousType` in interface `javax.xml.xquery.XQItemType`
  Returns:
    `true` if the item type is an anonymous type in the schema, `false` otherwise

### isElementNillable

    public boolean isElementNillable()

  Description copied from interface: `javax.xml.xquery.XQItemType`
  Returns whether the element type is nillable or not.

  Specified by:
    `isElementNillable` in interface `javax.xml.xquery.XQItemType`
  Returns:
    `true` if the element type is nillable, `false` otherwise

### getItemType

    public javax.xml.xquery.XQItemType getItemType()

  Description copied from interface: `javax.xml.xquery.XQSequenceType`
  Returns the type of the item in the sequence type.

  Specified by:
    `getItemType` in interface `javax.xml.xquery.XQSequenceType`
  Returns:
    `XQItemType` representing the item type in the sequence. `null` is returned in case of an empty sequence.

### equals

    public boolean equals(java.lang.Object obj)

  Description copied from interface: `javax.xml.xquery.XQItemType`
  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 `javax.xml.xquery.XQItemType`
  Specified by:
    `equals` in interface `javax.xml.xquery.XQSequenceType`
  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `obj` - 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

    public int hashCode()

  Description copied from interface: `javax.xml.xquery.XQItemType`
  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 `javax.xml.xquery.XQItemType`
  Specified by:
    `hashCode` in interface `javax.xml.xquery.XQSequenceType`
  Overrides:
    `hashCode` in class `java.lang.Object`
  Returns:
    hash code for this item type

Copyright (c) Saxonica Limited. All rights reserved.