Package 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
Fields Modifier and Type Field Description 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 BuiltInAtomicType
ANY_ATOMIC_TYPE
static int
ANY_SIMPLE_TYPE
static int
ANY_URI
Item type representing the type xs:anyURIstatic BuiltInAtomicType
ANY_URI_TYPE
static short
ATTRIBUTE
Item type representing an attribute node - attribute()static int
BASE64_BINARY
Item type representing the type xs:base64Binarystatic BuiltInAtomicType
BASE64_BINARY_TYPE
static int
BOOLEAN
Item type representing the type xs:booleanstatic BuiltInAtomicType
BOOLEAN_TYPE
static int
BYTE
Item type representing the type xs:bytestatic short
COMMENT
Item type representing a comment nodestatic int
DATE
Item type representing the type xs:datestatic int
DATE_TIME
Item type representing the type xs:dateTimestatic BuiltInAtomicType
DATE_TIME_TYPE
static BuiltInAtomicType
DATE_TYPE
static int
DAY_TIME_DURATION
Item type representing the type xdt:dayTimeDurationstatic BuiltInAtomicType
DAY_TIME_DURATION_TYPE
static int
DECIMAL
Item type representing the type xs:decimalstatic BuiltInAtomicType
DECIMAL_TYPE
static short
DOCUMENT
Item type representing a document nodestatic int
DOUBLE
Item type representing the type xs:doublestatic BuiltInAtomicType
DOUBLE_TYPE
static int
DURATION
Item type representing the type xs:durationstatic BuiltInAtomicType
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:ENTITYstatic int
FLOAT
Item type representing the type xs:floatstatic BuiltInAtomicType
FLOAT_TYPE
static int
G_DAY
Item type representing the type xs:gDaystatic BuiltInAtomicType
G_DAY_TYPE
static int
G_MONTH
Item type representing the type xs:gMonthstatic int
G_MONTH_DAY
Item type representing the type xs:monthDaystatic BuiltInAtomicType
G_MONTH_DAY_TYPE
static BuiltInAtomicType
G_MONTH_TYPE
static int
G_YEAR
Item type representing the type xs:gYearstatic int
G_YEAR_MONTH
Item type representing the type xs:gYearMonthstatic BuiltInAtomicType
G_YEAR_MONTH_TYPE
static BuiltInAtomicType
G_YEAR_TYPE
static int
HEX_BINARY
Item type representing the type xs:hexBinarystatic BuiltInAtomicType
HEX_BINARY_TYPE
static int
ID
Item type representing the type xs:IDstatic BuiltInAtomicType
ID_TYPE
static int
IDREF
Item type representing the type xs:IDREFstatic BuiltInAtomicType
IDREF_TYPE
static int
IDREFS
Content type representing the complex type xs:IDREFSstatic int
INT
Item type representing the type xs:intstatic int
INTEGER
Item type representing the type xs:integerstatic BuiltInAtomicType
INTEGER_TYPE
static short
ITEM
An item type that matches any itemstatic ItemType
ITEM_TYPE
static int
LANGUAGE
Item type representing the type xs:languagestatic int
LONG
Item type representing the type xs:longstatic short
MAX_NODE_TYPE
static int
NAME
Item type representing the type xs:NAMEstatic short
NAMESPACE
Item type representing a namespace nodestatic int
NCNAME
Item type representing the type xs:NCNAMEstatic BuiltInAtomicType
NCNAME_TYPE
static int
NEGATIVE_INTEGER
Item type representing the type xs:negativeIntegerstatic int
NMTOKEN
Item type representing the type xs:NMTOKENstatic int
NMTOKENS
Content type representing the complex type xs:NMTOKENSstatic short
NODE
An item type that matches any nodestatic ItemType
NODE_TYPE
static int
NON_NEGATIVE_INTEGER
Item type representing the type xs:nonNegativeIntegerstatic int
NON_POSITIVE_INTEGER
Item type representing the type xs:nonPositiveIntegerstatic int
NORMALIZED_STRING
Item type representing the type xs:normalizedStringstatic int
NOTATION
Item type representing the type xs:NOTATIONstatic BuiltInAtomicType
NOTATION_TYPE
static int
NUMBER
Constant denoting any numeric type (the union of float, double, and decimal)static BuiltInAtomicType
NUMBER_TYPE
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 pointerstatic int
POSITIVE_INTEGER
Item type representing the type xs:positiveIntegerstatic short
PROCESSING_INSTRUCTION
Item type representing a processing-instruction nodestatic int
QNAME
Item type representing the type xs:QNamestatic BuiltInAtomicType
QNAME_TYPE
static int
SHORT
Item type representing the type xs:shortstatic short
STOPPER
Dummy node kind used in the tiny tree to mark the end of the treestatic int
STRING
Constants representing primitive data types defined in Schema Part 2static BuiltInAtomicType
STRING_TYPE
static short
TEXT
Item type representing a text node - text()static int
TIME
Item type representing the type xs:timestatic BuiltInAtomicType
TIME_TYPE
static int
TOKEN
Item type representing the type xs:tokenstatic int
UNSIGNED_BYTE
Item type representing the type xs:unsignedBytestatic int
UNSIGNED_INT
Item type representing the type xs:unsignedIntstatic int
UNSIGNED_LONG
Item type representing the type xs:unsignedLongstatic int
UNSIGNED_SHORT
Item type representing the type xs:unsignedShortstatic int
UNTYPED_ATOMIC
Item type representing the type xdt:untypedAtomic (the type of the content of a schema-less node)static BuiltInAtomicType
UNTYPED_ATOMIC_TYPE
static short
WHITESPACE_TEXT
Item type representing a text node stored in the tiny tree as compressed whitespacestatic int
YEAR_MONTH_DURATION
Item type representing the type xdt:yearMonthDurationstatic BuiltInAtomicType
YEAR_MONTH_DURATION_TYPE
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description 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 codestatic ItemType
getCommonSuperType(ItemType t1, ItemType t2, TypeHierarchy th)
Get a type that is a common supertype of two given typesstatic ItemType
getItemType(Item item, TypeHierarchy th)
Get the ItemType of an Itemstatic boolean
isComparable(int t1, int t2, boolean ordered)
Determine whether two primitive atomic types are comparablestatic boolean
isNodeType(ItemType type)
Test whether a given type is (some subtype of) node()static boolean
isNumericPrimitiveType(int fp)
Test whether the supplied type, which must be a primitive type, is one of the numeric primitive typesstatic boolean
isNumericPrimitiveType(ItemType t)
Test whether the supplied type, which must be a primitive type, is one of the numeric primitive typesstatic boolean
isOrdered(int type)
Determine whether a primitive type is ordered.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
-
-
-
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 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 BuiltInAtomicType UNTYPED_ATOMIC_TYPE
-
ANY_ATOMIC_TYPE
public static final BuiltInAtomicType ANY_ATOMIC_TYPE
-
YEAR_MONTH_DURATION_TYPE
public static final BuiltInAtomicType YEAR_MONTH_DURATION_TYPE
-
DAY_TIME_DURATION_TYPE
public static final BuiltInAtomicType DAY_TIME_DURATION_TYPE
-
STRING_TYPE
public static final BuiltInAtomicType STRING_TYPE
-
BOOLEAN_TYPE
public static final BuiltInAtomicType BOOLEAN_TYPE
-
DECIMAL_TYPE
public static final BuiltInAtomicType DECIMAL_TYPE
-
FLOAT_TYPE
public static final BuiltInAtomicType FLOAT_TYPE
-
DOUBLE_TYPE
public static final BuiltInAtomicType DOUBLE_TYPE
-
DURATION_TYPE
public static final BuiltInAtomicType DURATION_TYPE
-
DATE_TIME_TYPE
public static final BuiltInAtomicType DATE_TIME_TYPE
-
TIME_TYPE
public static final BuiltInAtomicType TIME_TYPE
-
DATE_TYPE
public static final BuiltInAtomicType DATE_TYPE
-
G_YEAR_MONTH_TYPE
public static final BuiltInAtomicType G_YEAR_MONTH_TYPE
-
G_YEAR_TYPE
public static final BuiltInAtomicType G_YEAR_TYPE
-
G_MONTH_DAY_TYPE
public static final BuiltInAtomicType G_MONTH_DAY_TYPE
-
G_DAY_TYPE
public static final BuiltInAtomicType G_DAY_TYPE
-
G_MONTH_TYPE
public static final BuiltInAtomicType G_MONTH_TYPE
-
HEX_BINARY_TYPE
public static final BuiltInAtomicType HEX_BINARY_TYPE
-
BASE64_BINARY_TYPE
public static final BuiltInAtomicType BASE64_BINARY_TYPE
-
ANY_URI_TYPE
public static final BuiltInAtomicType ANY_URI_TYPE
-
QNAME_TYPE
public static final BuiltInAtomicType QNAME_TYPE
-
NOTATION_TYPE
public static final BuiltInAtomicType NOTATION_TYPE
-
INTEGER_TYPE
public static final BuiltInAtomicType INTEGER_TYPE
-
ID_TYPE
public static final BuiltInAtomicType ID_TYPE
-
IDREF_TYPE
public static final BuiltInAtomicType IDREF_TYPE
-
NCNAME_TYPE
public static final BuiltInAtomicType NCNAME_TYPE
-
NUMBER_TYPE
public static final BuiltInAtomicType NUMBER_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()
-
getItemType
public static ItemType getItemType(Item item, TypeHierarchy th)
Get the ItemType of an Item
-
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 typet2
- the second item typeth
-- 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 byItemType.getPrimitiveType()
t2
- the second type to compared. This must be a primitive atomic type as defined byItemType.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"
-
-