net.sf.saxon.type
Class Type

java.lang.Object
  |
  +--net.sf.saxon.type.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 Summary
static int ANY_SIMPLE_TYPE
           
static int ANY_URI
          Item type representing the type xs:anyURI
static AtomicType ANY_URI_TYPE
           
static int ATOMIC
          Constant denoting any atomic type (the union of all primitive types and types derived from primitive types by restriction or by union)
static AtomicType ATOMIC_TYPE
           
static short ATTRIBUTE
          Item type representing an attribute node - attribute()
static int BASE64_BINARY
          Item type representing the type xs:base64Binary
static AtomicType BASE64_BINARY_TYPE
           
static int BOOLEAN
          Item type representing the type xs:boolean
static AtomicType BOOLEAN_TYPE
           
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 AtomicType DATE_TIME_TYPE
           
static AtomicType DATE_TYPE
           
static int DAY_TIME_DURATION
          Item type representing the type xdt:dayTimeDuration
static AtomicType DAY_TIME_DURATION_TYPE
           
static int DECIMAL
          Item type representing the type xs:decimal
static AtomicType DECIMAL_TYPE
           
static short DOCUMENT
          Item type representing a document node
static int DOUBLE
          Item type representing the type xs:double
static AtomicType DOUBLE_TYPE
           
static int DURATION
          Item type representing the type xs:duration
static AtomicType DURATION_TYPE
           
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 AtomicType FLOAT_TYPE
           
static int G_DAY
          Item type representing the type xs:gDay
static AtomicType G_DAY_TYPE
           
static int G_MONTH
          Item type representing the type xs:gMonth
static int G_MONTH_DAY
          Item type representing the type xs:monthDay
static AtomicType G_MONTH_DAY_TYPE
           
static AtomicType G_MONTH_TYPE
           
static int G_YEAR
          Item type representing the type xs:gYear
static int G_YEAR_MONTH
          Item type representing the type xs:gYearMonth
static AtomicType G_YEAR_MONTH_TYPE
           
static AtomicType G_YEAR_TYPE
           
static int HEX_BINARY
          Item type representing the type xs:hexBinary
static AtomicType HEX_BINARY_TYPE
           
static int ID
          Item type representing the type xs:ID
static AtomicType ID_TYPE
           
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 AtomicType INTEGER_TYPE
           
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
          A type that matches nothing
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 AtomicType NOTATION_TYPE
           
static int NUMBER
          Constant denoting any numeric type (the union of float, double, and decimal)
static AtomicType NUMBER_TYPE
           
static int OBJECT
          Constant representing the type of an external object (for use by extension functions)
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 AtomicType QNAME_TYPE
           
static int SHORT
          Item type representing the type xs:short
static int STRING
          Constants representing primitive data types defined in Schema Part 2
static AtomicType STRING_TYPE
           
static short TEXT
          Item type representing a text node - text()
static int TIME
          Item type representing the type xs:time
static AtomicType TIME_TYPE
           
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 xdt:untypedAtomic (the type of the content of a schema-less node)
static AtomicType UNTYPED_ATOMIC_TYPE
           
static int YEAR_MONTH_DURATION
          Item type representing the type xdt:yearMonthDuration
static AtomicType YEAR_MONTH_DURATION_TYPE
           
 
Constructor Summary
Type()
           
 
Method Summary
static java.lang.String displayTypeName(Item item)
          Output (for diagnostics) a representation of the type of an item.
static ItemType getBuiltInItemType(java.lang.String namespace, java.lang.String localName)
          Get the SimpleType object for a built-in simple type code
static ItemType getCommonSuperType(ItemType t1, ItemType t2)
          Get a type that is a common supertype of two given types
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 boolean isPromotable(ItemType sourceType, ItemType targetType)
          Determine whether type A is numerically promotable to type B, for example xs:integer is promotable to xs:double
static boolean isSubType(ItemType subtype, ItemType supertype)
          Determine whether type A is type B or one of its subtypes, recursively
 
Methods inherited from class java.lang.Object
clone, equals, finalize, 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

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

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
A type that matches nothing

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

ATOMIC

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

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

UNTYPED_ATOMIC_TYPE

public static final AtomicType UNTYPED_ATOMIC_TYPE

ATOMIC_TYPE

public static final AtomicType ATOMIC_TYPE

YEAR_MONTH_DURATION_TYPE

public static final AtomicType YEAR_MONTH_DURATION_TYPE

DAY_TIME_DURATION_TYPE

public static final AtomicType DAY_TIME_DURATION_TYPE

STRING_TYPE

public static final AtomicType STRING_TYPE

BOOLEAN_TYPE

public static final AtomicType BOOLEAN_TYPE

DECIMAL_TYPE

public static final AtomicType DECIMAL_TYPE

FLOAT_TYPE

public static final AtomicType FLOAT_TYPE

DOUBLE_TYPE

public static final AtomicType DOUBLE_TYPE

DURATION_TYPE

public static final AtomicType DURATION_TYPE

DATE_TIME_TYPE

public static final AtomicType DATE_TIME_TYPE

TIME_TYPE

public static final AtomicType TIME_TYPE

DATE_TYPE

public static final AtomicType DATE_TYPE

G_YEAR_MONTH_TYPE

public static final AtomicType G_YEAR_MONTH_TYPE

G_YEAR_TYPE

public static final AtomicType G_YEAR_TYPE

G_MONTH_DAY_TYPE

public static final AtomicType G_MONTH_DAY_TYPE

G_DAY_TYPE

public static final AtomicType G_DAY_TYPE

G_MONTH_TYPE

public static final AtomicType G_MONTH_TYPE

HEX_BINARY_TYPE

public static final AtomicType HEX_BINARY_TYPE

BASE64_BINARY_TYPE

public static final AtomicType BASE64_BINARY_TYPE

ANY_URI_TYPE

public static final AtomicType ANY_URI_TYPE

QNAME_TYPE

public static final AtomicType QNAME_TYPE

NOTATION_TYPE

public static final AtomicType NOTATION_TYPE

INTEGER_TYPE

public static final AtomicType INTEGER_TYPE

ID_TYPE

public static final AtomicType ID_TYPE

NUMBER_TYPE

public static final AtomicType NUMBER_TYPE
Constructor Detail

Type

public 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

isSubType

public static boolean isSubType(ItemType subtype,
                                ItemType supertype)
Determine whether type A is type B or one of its subtypes, recursively

Parameters:
subtype - identifies the first type
supertype - identifies the second type
Returns:
true if the first type is the second type or a (direct or indirect) subtype of the second type

isPromotable

public static boolean isPromotable(ItemType sourceType,
                                   ItemType targetType)
Determine whether type A is numerically promotable to type B, for example xs:integer is promotable to xs:double


getCommonSuperType

public static final ItemType getCommonSuperType(ItemType t1,
                                                ItemType t2)
Get a type that is a common supertype of two given types

Parameters:
t1 - the first item type
t2 - the second item type
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; the 7 node kinds; xdt:untypedAtomic; 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