net.sf.saxon.type
Class Type

java.lang.Object
  extended by net.sf.saxon.type.Type
All Implemented Interfaces:
Serializable

public abstract class Type
extends Object
implements Serializable

This class contains static information about types and methods for constructing type codes. The class is never instantiated.

See Also:
Serialized Form

Field Summary
static 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)
static int ANY_SIMPLE_TYPE
           
static int ANY_URI
          Item type representing the type xs:anyURI
static short ATTRIBUTE
          Item type representing an attribute node - attribute()
static int BASE64_BINARY
          Item type representing the type xs:base64Binary
static int BOOLEAN
          Item type representing the type xs:boolean
static int BYTE
          Item type representing the type xs:byte
static short COMMENT
          Item type representing a comment node
static int DATE
          Item type representing the type xs:date
static int DATE_TIME
          Item type representing the type xs:dateTime
static int DAY_TIME_DURATION
          Item type representing the type xs:dayTimeDuration
static int DECIMAL
          Item type representing the type xs:decimal
static short DOCUMENT
          Item type representing a document node
static int DOUBLE
          Item type representing the type xs:double
static int DURATION
          Item type representing the type xs:duration
static short ELEMENT
          Type representing an element node - element()
static short EMPTY
          Item type that matches no items (corresponds to SequenceType empty())
static int ENTITY
          Item type representing the type xs:ENTITY
static int FLOAT
          Item type representing the type xs:float
static int G_DAY
          Item type representing the type xs:gDay
static int G_MONTH
          Item type representing the type xs:gMonth
static int G_MONTH_DAY
          Item type representing the type xs:monthDay
static int G_YEAR
          Item type representing the type xs:gYear
static int G_YEAR_MONTH
          Item type representing the type xs:gYearMonth
static int HEX_BINARY
          Item type representing the type xs:hexBinary
static int ID
          Item type representing the type xs:ID
static int IDREF
          Item type representing the type xs:IDREF
static int IDREFS
          Content type representing the complex type xs:IDREFS
static int INT
          Item type representing the type xs:int
static int INTEGER
          Item type representing the type xs:integer
static short ITEM
          An item type that matches any item
static ItemType ITEM_TYPE
           
static int LANGUAGE
          Item type representing the type xs:language
static int LONG
          Item type representing the type xs:long
static short MAX_NODE_TYPE
           
static int NAME
          Item type representing the type xs:NAME
static short NAMESPACE
          Item type representing a namespace node
static int NCNAME
          Item type representing the type xs:NCNAME
static int NEGATIVE_INTEGER
          Item type representing the type xs:negativeInteger
static int NMTOKEN
          Item type representing the type xs:NMTOKEN
static int NMTOKENS
          Content type representing the complex type xs:NMTOKENS
static short NODE
          An item type that matches any node
static ItemType NODE_TYPE
           
static int NON_NEGATIVE_INTEGER
          Item type representing the type xs:nonNegativeInteger
static int NON_POSITIVE_INTEGER
          Item type representing the type xs:nonPositiveInteger
static int NORMALIZED_STRING
          Item type representing the type xs:normalizedString
static int NOTATION
          Item type representing the type xs:NOTATION
static int NUMBER
          Constant denoting any numeric type (the union of float, double, and decimal)
static int OBJECT
          Constant representing the type of an external object (for use by extension functions)
static short PARENT_POINTER
          Dummy node kind used in the tiny tree to contain a parent pointer
static int POSITIVE_INTEGER
          Item type representing the type xs:positiveInteger
static short PROCESSING_INSTRUCTION
          Item type representing a processing-instruction node
static int QNAME
          Item type representing the type xs:QName
static int SHORT
          Item type representing the type xs:short
static short STOPPER
          Dummy node kind used in the tiny tree to mark the end of the tree
static int STRING
          Constants representing primitive data types defined in Schema Part 2
static short TEXT
          Item type representing a text node - text()
static int TIME
          Item type representing the type xs:time
static int TOKEN
          Item type representing the type xs:token
static int UNSIGNED_BYTE
          Item type representing the type xs:unsignedByte
static int UNSIGNED_INT
          Item type representing the type xs:unsignedInt
static int UNSIGNED_LONG
          Item type representing the type xs:unsignedLong
static int UNSIGNED_SHORT
          Item type representing the type xs:unsignedShort
static int UNTYPED_ATOMIC
          Item type representing the type xs:untypedAtomic (the type of the content of a schema-less node)
static short WHITESPACE_TEXT
          Item type representing a text node stored in the tiny tree as compressed whitespace
static int YEAR_MONTH_DURATION
          Item type representing the type xs:yearMonthDuration
 
Method Summary
static String displayTypeName(Item item)
          Output (for diagnostics) a representation of the type of an item.
static ItemType getBuiltInItemType(String namespace, String localName)
          Get the SimpleType object for a built-in simple type code
static ItemType getCommonSuperType(ItemType t1, ItemType t2, TypeHierarchy th)
          Get a type that is a common supertype of two given types
static ItemType getItemType(Item item, TypeHierarchy th)
          Get the ItemType of an Item
static boolean isComparable(BuiltInAtomicType t1, BuiltInAtomicType t2, boolean ordered)
          Determine whether two primitive atomic types are comparable
static boolean isNodeType(ItemType type)
          Test whether a given type is (some subtype of) node()
static boolean isPrimitiveType(int code)
          Determine whether this type is a primitive type.
static int schemaTypeRelationship(SchemaType s1, SchemaType s2)
          Get the relationship of two schema types to each other
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

MAX_NODE_TYPE

public static final short MAX_NODE_TYPE
See Also:
Constant Field Values

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 xs:untypedAtomic (the type of the content of a schema-less node)

See Also:
Constant Field Values

ANY_SIMPLE_TYPE

public static final int ANY_SIMPLE_TYPE
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

ID

public static final int ID
Item type representing the type xs:ID

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 xs:yearMonthDuration

See Also:
Constant Field Values

DAY_TIME_DURATION

public static final int DAY_TIME_DURATION
Item type representing the type xs:dayTimeDuration

See Also:
Constant Field Values
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()

getItemType

public static ItemType getItemType(Item item,
                                   TypeHierarchy th)
Get the ItemType of an Item


displayTypeName

public static final 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(String namespace,
                                          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, xs:dayTimeDuration and xs:yearMonthDuration; xs:untypedAtomic; the 7 node kinds; and all supertypes of these (item(), node(), xs:anyAtomicType, xs:numeric, ...)

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(BuiltInAtomicType t1,
                                   BuiltInAtomicType 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


Copyright (C) Michael H. Kay. All rights reserved.