Class ItemType

java.lang.Object
net.sf.saxon.s9api.ItemType
Direct Known Subclasses:
ConstructedItemType, ItemType.BuiltInAtomicItemType

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.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    (package private) static class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final ItemType
    ItemType representing the type xs:anyAtomicType, that is, any atomic value
    static ItemType
    ItemType representing the type item(), that is, any item at all
    static final ItemType
    ItemType representing the type node(), that is, any node
    static final ItemType
    ItemType representing the primitive type xs:anyURI
    static final ItemType
    ItemType representing the primitive type xs:base64Binary
    static final ItemType
    ItemType representing the primitive type xs:boolean
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:byte
    static final ItemType
    ItemType representing the primitive type xs:date
    static final ItemType
    ItemType representing the primitive type xs:dateTime
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:dateTimeStamp (introduced in XSD 1.1)
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:dayTimeDuration
    static final ItemType
    ItemType representing the primitive type xs:decimal
    static final ItemType
    ItemType representing the primitive type xs:double
    static final ItemType
    ItemType representing the primitive type xs:duration
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:ENTITY
    static final ItemType
    ItemType representing the primitive type xs:float
    static final ItemType
    ItemType representing the primitive type xs:gDay
    static final ItemType
    ItemType representing the primitive type xs:gMonth
    static final ItemType
    ItemType representing the primitive type xs:gMonthDay
    static final ItemType
    ItemType representing the primitive type xs:gYear
    static final ItemType
    ItemType representing the primitive type xs:gYearMonth
    static final ItemType
    ItemType representing the primitive type xs:hexBinary
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:ID
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:IDREF
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:int
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:integer
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:language
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:long
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:Name
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:NCName
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:negativeInteger
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:NMTOKEN
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:nonNegativeInteger
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:nonPositiveInteger
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:normalizedString
    static final ItemType
    ItemType representing the primitive type xs:NOTATION
    static final ItemType
    A Saxon-specific item type representing the base type of double, float, and decimal
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:positiveInteger
    static final ItemType
    ItemType representing the primitive type xs:QName
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:short
    static final ItemType
    ItemType representing the primitive type xs:string
    static final ItemType
    ItemType representing the primitive type xs:time
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:token
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:unsignedByte
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:unsignedInt
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:unsignedLong
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:unsignedShort
    static final ItemType
    ItemType representing the XPath-defined type xs:untypedAtomic
    static final ItemType
    ItemType representing the built-in (but non-primitive) type xs:yearMonthDuration
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Get the conversion rules implemented by this type.
    abstract ItemType
    Method to get the underlying Saxon implementation object
    abstract boolean
    Determine whether this item type matches a given item.
    abstract boolean
    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 Details

    • 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
    • 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 Details

    • ItemType

      public ItemType()
  • Method Details

    • 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