## net.sf.saxon.s9api
Class ItemType

    java.lang.Object
      net.sf.saxon.s9api.ItemType

    public abstract class ItemType

extends Object

An item type, as defined in the XPath/XQuery specifications.

This class contains a number of static constant fields referring to instances that represent simple item types, such as `item()`, `node()`, and `xs:anyAtomicType`. These named types are currently based on the definitions in XSD 1.0 and XML 1.0. They may be changed in a future version to be based on a later version.

More complicated item types, especially those that are dependent on information in a schema, are available using factory methods on the `ItemTypeFactory` object. The factory methods can also be used to create variants of the types that use the rules given in the XML 1.1 and/or XSD 1.1 specifications.

Field Summary
`static ItemType` `ANY_ATOMIC_VALUE` ItemType representing the type xs:anyAtomicType, that is, any atomic value
`static ItemType` `ANY_ITEM` ItemType representing the type item(), that is, any item at all
`static ItemType` `ANY_NODE` ItemType representing the type node(), that is, any node
`static ItemType` `ANY_URI` ItemType representing the primitive type xs:anyURI
`static ItemType` `BASE64_BINARY` ItemType representing the primitive type xs:base64Binary
`static ItemType` `BOOLEAN` ItemType representing the primitive type xs:boolean
`static ItemType` `BYTE` ItemType representing the built-in (but non-primitive) type xs:byte
`static ItemType` `DATE` ItemType representing the primitive type xs:date
`static ItemType` `DATE_TIME` ItemType representing the primitive type xs:dateTime
`static ItemType` `DATE_TIME_STAMP` ItemType representing the built-in (but non-primitive) type xs:dateTimeStamp (introduced in XSD 1.1)
`static ItemType` `DAY_TIME_DURATION` ItemType representing the built-in (but non-primitive) type xs:dayTimeDuration
`static ItemType` `DECIMAL` ItemType representing the primitive type xs:decimal
`static ItemType` `DOUBLE` ItemType representing the primitive type xs:double
`static ItemType` `DURATION` ItemType representing the primitive type xs:duration
`static ItemType` `ENTITY` ItemType representing the built-in (but non-primitive) type xs:ENTITY
`static ItemType` `FLOAT` ItemType representing the primitive type xs:float
`static ItemType` `G_DAY` ItemType representing the primitive type xs:gDay
`static ItemType` `G_MONTH` ItemType representing the primitive type xs:gMonth
`static ItemType` `G_MONTH_DAY` ItemType representing the primitive type xs:gMonthDay
`static ItemType` `G_YEAR` ItemType representing the primitive type xs:gYear
`static ItemType` `G_YEAR_MONTH` ItemType representing the primitive type xs:gYearMonth
`static ItemType` `HEX_BINARY` ItemType representing the primitive type xs:hexBinary
`static ItemType` `ID` ItemType representing the built-in (but non-primitive) type xs:ID
`static ItemType` `IDREF` ItemType representing the built-in (but non-primitive) type xs:IDREF
`static ItemType` `INT` ItemType representing the built-in (but non-primitive) type xs:int
`static ItemType` `INTEGER` ItemType representing the built-in (but non-primitive) type xs:integer
`static ItemType` `LANGUAGE` ItemType representing the built-in (but non-primitive) type xs:language
`static ItemType` `LONG` ItemType representing the built-in (but non-primitive) type xs:long
`static ItemType` `NAME` ItemType representing the built-in (but non-primitive) type xs:Name
`static ItemType` `NCNAME` ItemType representing the built-in (but non-primitive) type xs:NCName
`static ItemType` `NEGATIVE_INTEGER` ItemType representing the built-in (but non-primitive) type xs:negativeInteger
`static ItemType` `NMTOKEN` ItemType representing the built-in (but non-primitive) type xs:NMTOKEN
`static ItemType` `NON_NEGATIVE_INTEGER` ItemType representing the built-in (but non-primitive) type xs:nonNegativeInteger
`static ItemType` `NON_POSITIVE_INTEGER` ItemType representing the built-in (but non-primitive) type xs:nonPositiveInteger
`static ItemType` `NORMALIZED_STRING` ItemType representing the built-in (but non-primitive) type xs:normalizedString
`static ItemType` `NOTATION` ItemType representing the primitive type xs:NOTATION
`static ItemType` `NUMERIC` A Saxon-specific item type representing the base type of double, float, and decimal
`static ItemType` `POSITIVE_INTEGER` ItemType representing the built-in (but non-primitive) type xs:positiveInteger
`static ItemType` `PRECISION_DECIMAL` ItemType representing the primitive type xs:precisionDecimal
`static ItemType` `QNAME` ItemType representing the primitive type xs:QName
`static ItemType` `SHORT` ItemType representing the built-in (but non-primitive) type xs:short
`static ItemType` `STRING` ItemType representing the primitive type xs:string
`static ItemType` `TIME` ItemType representing the primitive type xs:time
`static ItemType` `TOKEN` ItemType representing the built-in (but non-primitive) type xs:token
`static ItemType` `UNSIGNED_BYTE` ItemType representing the built-in (but non-primitive) type xs:unsignedByte
`static ItemType` `UNSIGNED_INT` ItemType representing the built-in (but non-primitive) type xs:unsignedInt
`static ItemType` `UNSIGNED_LONG` ItemType representing the built-in (but non-primitive) type xs:unsignedLong
`static ItemType` `UNSIGNED_SHORT` ItemType representing the built-in (but non-primitive) type xs:unsignedShort
`static ItemType` `UNTYPED_ATOMIC` ItemType representing the XPath-defined type xs:untypedAtomic
`static ItemType` `YEAR_MONTH_DURATION` ItemType representing the built-in (but non-primitive) type xs:yearMonthDuration

Constructor Summary
`ItemType()`

Method Summary
`abstract ConversionRules` `getConversionRules()` Get the conversion rules implemented by this type.
`abstract ItemType` `getUnderlyingItemType()` Method to get the underlying Saxon implementation object
`abstract boolean` `matches(XdmItem item)` Determine whether this item type matches a given item.
`abstract boolean` `subsumes(ItemType other)` Determine whether this ItemType subsumes another ItemType.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ANY_ITEM

    public static ItemType ANY_ITEM

  ItemType representing the type item(), that is, any item at all

### ANY_NODE

    public static final ItemType ANY_NODE

  ItemType representing the type node(), that is, any node

### ANY_ATOMIC_VALUE

    public static final ItemType ANY_ATOMIC_VALUE

  ItemType representing the type xs:anyAtomicType, that is, any atomic value

### NUMERIC

    public static final ItemType NUMERIC

  A Saxon-specific item type representing the base type of double, float, and decimal

### STRING

    public static final ItemType STRING

  ItemType representing the primitive type xs:string

### BOOLEAN

    public static final ItemType BOOLEAN

  ItemType representing the primitive type xs:boolean

### DURATION

    public static final ItemType DURATION

  ItemType representing the primitive type xs:duration

### DATE_TIME

    public static final ItemType DATE_TIME

  ItemType representing the primitive type xs:dateTime

### DATE

    public static final ItemType DATE

  ItemType representing the primitive type xs:date

### TIME

    public static final ItemType TIME

  ItemType representing the primitive type xs:time

### G_YEAR_MONTH

    public static final ItemType G_YEAR_MONTH

  ItemType representing the primitive type xs:gYearMonth

### G_MONTH

    public static final ItemType G_MONTH

  ItemType representing the primitive type xs:gMonth

### G_MONTH_DAY

    public static final ItemType G_MONTH_DAY

  ItemType representing the primitive type xs:gMonthDay

### G_YEAR

    public static final ItemType G_YEAR

  ItemType representing the primitive type xs:gYear

### G_DAY

    public static final ItemType G_DAY

  ItemType representing the primitive type xs:gDay

### HEX_BINARY

    public static final ItemType HEX_BINARY

  ItemType representing the primitive type xs:hexBinary

### BASE64_BINARY

    public static final ItemType BASE64_BINARY

  ItemType representing the primitive type xs:base64Binary

### ANY_URI

    public static final ItemType ANY_URI

  ItemType representing the primitive type xs:anyURI

### QNAME

    public static final ItemType QNAME

  ItemType representing the primitive type xs:QName

### NOTATION

    public static final ItemType NOTATION

  ItemType representing the primitive type xs:NOTATION

### UNTYPED_ATOMIC

    public static final ItemType UNTYPED_ATOMIC

  ItemType representing the XPath-defined type xs:untypedAtomic

### DECIMAL

    public static final ItemType DECIMAL

  ItemType representing the primitive type xs:decimal

### PRECISION_DECIMAL

    public static final ItemType PRECISION_DECIMAL

  ItemType representing the primitive type xs:precisionDecimal

### FLOAT

    public static final ItemType FLOAT

  ItemType representing the primitive type xs:float

### DOUBLE

    public static final ItemType DOUBLE

  ItemType representing the primitive type xs:double

### INTEGER

    public static final ItemType INTEGER

  ItemType representing the built-in (but non-primitive) type xs:integer

### NON_POSITIVE_INTEGER

    public static final ItemType NON_POSITIVE_INTEGER

  ItemType representing the built-in (but non-primitive) type xs:nonPositiveInteger

### NEGATIVE_INTEGER

    public static final ItemType NEGATIVE_INTEGER

  ItemType representing the built-in (but non-primitive) type xs:negativeInteger

### LONG

    public static final ItemType LONG

  ItemType representing the built-in (but non-primitive) type xs:long

### INT

    public static final ItemType INT

  ItemType representing the built-in (but non-primitive) type xs:int

### SHORT

    public static final ItemType SHORT

  ItemType representing the built-in (but non-primitive) type xs:short

### BYTE

    public static final ItemType BYTE

  ItemType representing the built-in (but non-primitive) type xs:byte

### NON_NEGATIVE_INTEGER

    public static final ItemType NON_NEGATIVE_INTEGER

  ItemType representing the built-in (but non-primitive) type xs:nonNegativeInteger

### POSITIVE_INTEGER

    public static final ItemType POSITIVE_INTEGER

  ItemType representing the built-in (but non-primitive) type xs:positiveInteger

### UNSIGNED_LONG

    public static final ItemType UNSIGNED_LONG

  ItemType representing the built-in (but non-primitive) type xs:unsignedLong

### UNSIGNED_INT

    public static final ItemType UNSIGNED_INT

  ItemType representing the built-in (but non-primitive) type xs:unsignedInt

### UNSIGNED_SHORT

    public static final ItemType UNSIGNED_SHORT

  ItemType representing the built-in (but non-primitive) type xs:unsignedShort

### UNSIGNED_BYTE

    public static final ItemType UNSIGNED_BYTE

  ItemType representing the built-in (but non-primitive) type xs:unsignedByte

### YEAR_MONTH_DURATION

    public static final ItemType YEAR_MONTH_DURATION

  ItemType representing the built-in (but non-primitive) type xs:yearMonthDuration

### DAY_TIME_DURATION

    public static final ItemType DAY_TIME_DURATION

  ItemType representing the built-in (but non-primitive) type xs:dayTimeDuration

### NORMALIZED_STRING

    public static final ItemType NORMALIZED_STRING

  ItemType representing the built-in (but non-primitive) type xs:normalizedString

### TOKEN

    public static final ItemType TOKEN

  ItemType representing the built-in (but non-primitive) type xs:token

### LANGUAGE

    public static final ItemType LANGUAGE

  ItemType representing the built-in (but non-primitive) type xs:language

### NAME

    public static final ItemType NAME

  ItemType representing the built-in (but non-primitive) type xs:Name

### NMTOKEN

    public static final ItemType NMTOKEN

  ItemType representing the built-in (but non-primitive) type xs:NMTOKEN

### NCNAME

    public static final ItemType NCNAME

  ItemType representing the built-in (but non-primitive) type xs:NCName

### ID

    public static final ItemType ID

  ItemType representing the built-in (but non-primitive) type xs:ID

### IDREF

    public static final ItemType IDREF

  ItemType representing the built-in (but non-primitive) type xs:IDREF

### ENTITY

    public static final ItemType ENTITY

  ItemType representing the built-in (but non-primitive) type xs:ENTITY

### DATE_TIME_STAMP

    public static final ItemType DATE_TIME_STAMP

  ItemType representing the built-in (but non-primitive) type xs:dateTimeStamp (introduced in XSD 1.1)

Constructor Detail

### ItemType

    public ItemType()

Method Detail

### getConversionRules

    public abstract ConversionRules getConversionRules()

  Get the conversion rules implemented by this type. The conversion rules reflect variations between different versions of the W3C specifications, for example XSD 1.1 allows "+INF" as a lexical representation of xs:double, while XSD 1.0 does not.

  Returns:
    the conversion rules

### matches

    public abstract boolean matches(XdmItem item)

  Determine whether this item type matches a given item.

  Parameters:
    `item` - the item to be tested against this item type
  Returns:
    true if the item matches this item type, false if it does not match.

### subsumes

    public abstract boolean subsumes(ItemType other)

  Determine whether this ItemType subsumes another ItemType. Specifically, `A.subsumes(B) is true if every value that matches the ItemType B also matches the ItemType A.

  `
  Parameters:
    `other` - the other ItemType
  Returns:
    true if this ItemType subsumes the other ItemType. This includes the case where A and B represent the same ItemType.
  Since:
    9.1

### getUnderlyingItemType

    public abstract ItemType getUnderlyingItemType()

  Method to get the underlying Saxon implementation object

  This gives access to Saxon methods that may change from one release to another.

  Returns:
    the underlying Saxon implementation object

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