Class Type

  • All Implemented Interfaces:
    java.io.Serializable

    public abstract class Type
    extends java.lang.Object
    implements java.io.Serializable
    This class contains static information about types and methods for constructing type codes. The class is never instantiated.
    See Also:
    Serialized Form
    • Field Detail

      • ELEMENT

        public static final short ELEMENT
        Type representing an element node - element()
        See Also:
        Constant Field Values
      • ATTRIBUTE

        public static final short ATTRIBUTE
        Item type representing an attribute node - attribute()
        See Also:
        Constant Field Values
      • TEXT

        public static final short TEXT
        Item type representing a text node - text()
        See Also:
        Constant Field Values
      • WHITESPACE_TEXT

        public static final short WHITESPACE_TEXT
        Item type representing a text node stored in the tiny tree as compressed whitespace
        See Also:
        Constant Field Values
      • PROCESSING_INSTRUCTION

        public static final short PROCESSING_INSTRUCTION
        Item type representing a processing-instruction node
        See Also:
        Constant Field Values
      • COMMENT

        public static final short COMMENT
        Item type representing a comment node
        See Also:
        Constant Field Values
      • DOCUMENT

        public static final short DOCUMENT
        Item type representing a document node
        See Also:
        Constant Field Values
      • NAMESPACE

        public static final short NAMESPACE
        Item type representing a namespace node
        See Also:
        Constant Field Values
      • STOPPER

        public static final short STOPPER
        Dummy node kind used in the tiny tree to mark the end of the tree
        See Also:
        Constant Field Values
      • PARENT_POINTER

        public static final short PARENT_POINTER
        Dummy node kind used in the tiny tree to contain a parent pointer
        See Also:
        Constant Field Values
      • NODE

        public static final short NODE
        An item type that matches any node
        See Also:
        Constant Field Values
      • NODE_TYPE

        public static final ItemType NODE_TYPE
      • ITEM

        public static final short ITEM
        An item type that matches any item
        See Also:
        Constant Field Values
      • ITEM_TYPE

        public static final ItemType ITEM_TYPE
      • EMPTY

        public static final short EMPTY
        Item type that matches no items (corresponds to SequenceType empty())
        See Also:
        Constant Field Values
      • ANY_ATOMIC

        public static final int ANY_ATOMIC
        Constant denoting any atomic type (the union of all primitive types and types derived from primitive types by restriction or by union)
        See Also:
        Constant Field Values
      • NUMBER

        public static final int NUMBER
        Constant denoting any numeric type (the union of float, double, and decimal)
        See Also:
        Constant Field Values
      • STRING

        public static final int STRING
        Constants representing primitive data types defined in Schema Part 2
        See Also:
        Constant Field Values
      • BOOLEAN

        public static final int BOOLEAN
        Item type representing the type xs:boolean
        See Also:
        Constant Field Values
      • DECIMAL

        public static final int DECIMAL
        Item type representing the type xs:decimal
        See Also:
        Constant Field Values
      • FLOAT

        public static final int FLOAT
        Item type representing the type xs:float
        See Also:
        Constant Field Values
      • DOUBLE

        public static final int DOUBLE
        Item type representing the type xs:double
        See Also:
        Constant Field Values
      • DURATION

        public static final int DURATION
        Item type representing the type xs:duration
        See Also:
        Constant Field Values
      • DATE_TIME

        public static final int DATE_TIME
        Item type representing the type xs:dateTime
        See Also:
        Constant Field Values
      • TIME

        public static final int TIME
        Item type representing the type xs:time
        See Also:
        Constant Field Values
      • DATE

        public static final int DATE
        Item type representing the type xs:date
        See Also:
        Constant Field Values
      • G_YEAR_MONTH

        public static final int G_YEAR_MONTH
        Item type representing the type xs:gYearMonth
        See Also:
        Constant Field Values
      • G_YEAR

        public static final int G_YEAR
        Item type representing the type xs:gYear
        See Also:
        Constant Field Values
      • G_MONTH_DAY

        public static final int G_MONTH_DAY
        Item type representing the type xs:monthDay
        See Also:
        Constant Field Values
      • G_DAY

        public static final int G_DAY
        Item type representing the type xs:gDay
        See Also:
        Constant Field Values
      • G_MONTH

        public static final int G_MONTH
        Item type representing the type xs:gMonth
        See Also:
        Constant Field Values
      • HEX_BINARY

        public static final int HEX_BINARY
        Item type representing the type xs:hexBinary
        See Also:
        Constant Field Values
      • BASE64_BINARY

        public static final int BASE64_BINARY
        Item type representing the type xs:base64Binary
        See Also:
        Constant Field Values
      • ANY_URI

        public static final int ANY_URI
        Item type representing the type xs:anyURI
        See Also:
        Constant Field Values
      • QNAME

        public static final int QNAME
        Item type representing the type xs:QName
        See Also:
        Constant Field Values
      • NOTATION

        public static final int NOTATION
        Item type representing the type xs:NOTATION
        See Also:
        Constant Field Values
      • UNTYPED_ATOMIC

        public static final int UNTYPED_ATOMIC
        Item type representing the type xdt:untypedAtomic (the type of the content of a schema-less node)
        See Also:
        Constant Field Values
      • OBJECT

        public static final int OBJECT
        Constant representing the type of an external object (for use by extension functions)
        See Also:
        Constant Field Values
      • INTEGER

        public static final int INTEGER
        Item type representing the type xs:integer
        See Also:
        Constant Field Values
      • NON_POSITIVE_INTEGER

        public static final int NON_POSITIVE_INTEGER
        Item type representing the type xs:nonPositiveInteger
        See Also:
        Constant Field Values
      • NEGATIVE_INTEGER

        public static final int NEGATIVE_INTEGER
        Item type representing the type xs:negativeInteger
        See Also:
        Constant Field Values
      • LONG

        public static final int LONG
        Item type representing the type xs:long
        See Also:
        Constant Field Values
      • INT

        public static final int INT
        Item type representing the type xs:int
        See Also:
        Constant Field Values
      • SHORT

        public static final int SHORT
        Item type representing the type xs:short
        See Also:
        Constant Field Values
      • BYTE

        public static final int BYTE
        Item type representing the type xs:byte
        See Also:
        Constant Field Values
      • NON_NEGATIVE_INTEGER

        public static final int NON_NEGATIVE_INTEGER
        Item type representing the type xs:nonNegativeInteger
        See Also:
        Constant Field Values
      • POSITIVE_INTEGER

        public static final int POSITIVE_INTEGER
        Item type representing the type xs:positiveInteger
        See Also:
        Constant Field Values
      • UNSIGNED_LONG

        public static final int UNSIGNED_LONG
        Item type representing the type xs:unsignedLong
        See Also:
        Constant Field Values
      • UNSIGNED_INT

        public static final int UNSIGNED_INT
        Item type representing the type xs:unsignedInt
        See Also:
        Constant Field Values
      • UNSIGNED_SHORT

        public static final int UNSIGNED_SHORT
        Item type representing the type xs:unsignedShort
        See Also:
        Constant Field Values
      • UNSIGNED_BYTE

        public static final int UNSIGNED_BYTE
        Item type representing the type xs:unsignedByte
        See Also:
        Constant Field Values
      • NORMALIZED_STRING

        public static final int NORMALIZED_STRING
        Item type representing the type xs:normalizedString
        See Also:
        Constant Field Values
      • TOKEN

        public static final int TOKEN
        Item type representing the type xs:token
        See Also:
        Constant Field Values
      • LANGUAGE

        public static final int LANGUAGE
        Item type representing the type xs:language
        See Also:
        Constant Field Values
      • NMTOKEN

        public static final int NMTOKEN
        Item type representing the type xs:NMTOKEN
        See Also:
        Constant Field Values
      • NMTOKENS

        public static final int NMTOKENS
        Content type representing the complex type xs:NMTOKENS
        See Also:
        Constant Field Values
      • NAME

        public static final int NAME
        Item type representing the type xs:NAME
        See Also:
        Constant Field Values
      • NCNAME

        public static final int NCNAME
        Item type representing the type xs:NCNAME
        See Also:
        Constant Field Values
      • IDREF

        public static final int IDREF
        Item type representing the type xs:IDREF
        See Also:
        Constant Field Values
      • IDREFS

        public static final int IDREFS
        Content type representing the complex type xs:IDREFS
        See Also:
        Constant Field Values
      • ENTITY

        public static final int ENTITY
        Item type representing the type xs:ENTITY
        See Also:
        Constant Field Values
      • YEAR_MONTH_DURATION

        public static final int YEAR_MONTH_DURATION
        Item type representing the type xdt:yearMonthDuration
        See Also:
        Constant Field Values
      • DAY_TIME_DURATION

        public static final int DAY_TIME_DURATION
        Item type representing the type xdt:dayTimeDuration
        See Also:
        Constant Field Values
      • YEAR_MONTH_DURATION_TYPE

        public static final BuiltInAtomicType YEAR_MONTH_DURATION_TYPE
      • DAY_TIME_DURATION_TYPE

        public static final BuiltInAtomicType DAY_TIME_DURATION_TYPE
    • Method Detail

      • isNodeType

        public static boolean isNodeType​(ItemType type)
        Test whether a given type is (some subtype of) node()
        Parameters:
        type - The type to be tested
        Returns:
        true if the item type is node() or a subtype of node()
      • displayTypeName

        public static final java.lang.String displayTypeName​(Item item)
        Output (for diagnostics) a representation of the type of an item. This does not have to be the most specific type
      • getBuiltInItemType

        public static ItemType getBuiltInItemType​(java.lang.String namespace,
                                                  java.lang.String localName)
        Get the SimpleType object for a built-in simple type code
        Returns:
        the SimpleType, or null if not found
      • schemaTypeRelationship

        public static int schemaTypeRelationship​(SchemaType s1,
                                                 SchemaType s2)
        Get the relationship of two schema types to each other
      • getCommonSuperType

        public static final ItemType getCommonSuperType​(ItemType t1,
                                                        ItemType t2,
                                                        TypeHierarchy th)
        Get a type that is a common supertype of two given types
        Parameters:
        t1 - the first item type
        t2 - the second item type
        th -
        Returns:
        the item type that is a supertype of both the supplied item types
      • isPrimitiveType

        public static boolean isPrimitiveType​(int code)
        Determine whether this type is a primitive type. The primitive types are the 19 primitive types of XML Schema, plus xs:integer, xdt:dayTimeDuration and xdt:yearMonthDuration; xdt:untypedAtomic; the 7 node kinds; and all supertypes of these (item(), node(), xdt:anyAtomicType, xdt:number, ...)
        Parameters:
        code - the item type code to be tested
        Returns:
        true if the type is considered primitive under the above rules
      • isComparable

        public static boolean isComparable​(int t1,
                                           int t2,
                                           boolean ordered)
        Determine whether two primitive atomic types are comparable
        Parameters:
        t1 - the first type to compared. This must be a primitive atomic type as defined by ItemType.getPrimitiveType()
        t2 - the second type to compared. This must be a primitive atomic type as defined by ItemType.getPrimitiveType()
        ordered - true if testing for an ordering comparison (lt, gt, le, ge). False if testing for an equality comparison (eq, ne)
        Returns:
        true if the types are comparable, as defined by the rules of the "eq" operator
      • isOrdered

        public static boolean isOrdered​(int type)
        Determine whether a primitive type is ordered. Note that the rules for this differ between XPath and XML Schema: these are the XPath rules.
        Parameters:
        type - the primitive item type being tested
        Returns:
        true if the types are potentially comparable. For abstract types (type=ATOMIC) we give the benefit of the doubt and return true.
      • isNumericPrimitiveType

        public static boolean isNumericPrimitiveType​(ItemType t)
        Test whether the supplied type, which must be a primitive type, is one of the numeric primitive types
        Parameters:
        t - the type being tested
        Returns:
        true if the type is integer, double, float, decimal, or the abstract type "numeric"
      • isNumericPrimitiveType

        public static boolean isNumericPrimitiveType​(int fp)
        Test whether the supplied type, which must be a primitive type, is one of the numeric primitive types
        Parameters:
        fp - the fingerprint of the type being tested
        Returns:
        true if the type is integer, double, float, decimal, or the abstract type "numeric"