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.SerializableThis 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 intANY_ATOMICConstant denoting any atomic type (the union of all primitive types and types derived from primitive types by restriction or by union)static BuiltInAtomicTypeANY_ATOMIC_TYPEstatic intANY_SIMPLE_TYPEstatic intANY_URIItem type representing the type xs:anyURIstatic BuiltInAtomicTypeANY_URI_TYPEstatic shortATTRIBUTEItem type representing an attribute node - attribute()static intBASE64_BINARYItem type representing the type xs:base64Binarystatic BuiltInAtomicTypeBASE64_BINARY_TYPEstatic intBOOLEANItem type representing the type xs:booleanstatic BuiltInAtomicTypeBOOLEAN_TYPEstatic intBYTEItem type representing the type xs:bytestatic shortCOMMENTItem type representing a comment nodestatic intDATEItem type representing the type xs:datestatic intDATE_TIMEItem type representing the type xs:dateTimestatic BuiltInAtomicTypeDATE_TIME_TYPEstatic BuiltInAtomicTypeDATE_TYPEstatic intDAY_TIME_DURATIONItem type representing the type xdt:dayTimeDurationstatic BuiltInAtomicTypeDAY_TIME_DURATION_TYPEstatic intDECIMALItem type representing the type xs:decimalstatic BuiltInAtomicTypeDECIMAL_TYPEstatic shortDOCUMENTItem type representing a document nodestatic intDOUBLEItem type representing the type xs:doublestatic BuiltInAtomicTypeDOUBLE_TYPEstatic intDURATIONItem type representing the type xs:durationstatic BuiltInAtomicTypeDURATION_TYPEstatic shortELEMENTType representing an element node - element()static shortEMPTYItem type that matches no items (corresponds to SequenceType empty())static intENTITYItem type representing the type xs:ENTITYstatic intFLOATItem type representing the type xs:floatstatic BuiltInAtomicTypeFLOAT_TYPEstatic intG_DAYItem type representing the type xs:gDaystatic BuiltInAtomicTypeG_DAY_TYPEstatic intG_MONTHItem type representing the type xs:gMonthstatic intG_MONTH_DAYItem type representing the type xs:monthDaystatic BuiltInAtomicTypeG_MONTH_DAY_TYPEstatic BuiltInAtomicTypeG_MONTH_TYPEstatic intG_YEARItem type representing the type xs:gYearstatic intG_YEAR_MONTHItem type representing the type xs:gYearMonthstatic BuiltInAtomicTypeG_YEAR_MONTH_TYPEstatic BuiltInAtomicTypeG_YEAR_TYPEstatic intHEX_BINARYItem type representing the type xs:hexBinarystatic BuiltInAtomicTypeHEX_BINARY_TYPEstatic intIDItem type representing the type xs:IDstatic BuiltInAtomicTypeID_TYPEstatic intIDREFItem type representing the type xs:IDREFstatic BuiltInAtomicTypeIDREF_TYPEstatic intIDREFSContent type representing the complex type xs:IDREFSstatic intINTItem type representing the type xs:intstatic intINTEGERItem type representing the type xs:integerstatic BuiltInAtomicTypeINTEGER_TYPEstatic shortITEMAn item type that matches any itemstatic ItemTypeITEM_TYPEstatic intLANGUAGEItem type representing the type xs:languagestatic intLONGItem type representing the type xs:longstatic shortMAX_NODE_TYPEstatic intNAMEItem type representing the type xs:NAMEstatic shortNAMESPACEItem type representing a namespace nodestatic intNCNAMEItem type representing the type xs:NCNAMEstatic BuiltInAtomicTypeNCNAME_TYPEstatic intNEGATIVE_INTEGERItem type representing the type xs:negativeIntegerstatic intNMTOKENItem type representing the type xs:NMTOKENstatic intNMTOKENSContent type representing the complex type xs:NMTOKENSstatic shortNODEAn item type that matches any nodestatic ItemTypeNODE_TYPEstatic intNON_NEGATIVE_INTEGERItem type representing the type xs:nonNegativeIntegerstatic intNON_POSITIVE_INTEGERItem type representing the type xs:nonPositiveIntegerstatic intNORMALIZED_STRINGItem type representing the type xs:normalizedStringstatic intNOTATIONItem type representing the type xs:NOTATIONstatic BuiltInAtomicTypeNOTATION_TYPEstatic intNUMBERConstant denoting any numeric type (the union of float, double, and decimal)static BuiltInAtomicTypeNUMBER_TYPEstatic intOBJECTConstant representing the type of an external object (for use by extension functions)static shortPARENT_POINTERDummy node kind used in the tiny tree to contain a parent pointerstatic intPOSITIVE_INTEGERItem type representing the type xs:positiveIntegerstatic shortPROCESSING_INSTRUCTIONItem type representing a processing-instruction nodestatic intQNAMEItem type representing the type xs:QNamestatic BuiltInAtomicTypeQNAME_TYPEstatic intSHORTItem type representing the type xs:shortstatic shortSTOPPERDummy node kind used in the tiny tree to mark the end of the treestatic intSTRINGConstants representing primitive data types defined in Schema Part 2static BuiltInAtomicTypeSTRING_TYPEstatic shortTEXTItem type representing a text node - text()static intTIMEItem type representing the type xs:timestatic BuiltInAtomicTypeTIME_TYPEstatic intTOKENItem type representing the type xs:tokenstatic intUNSIGNED_BYTEItem type representing the type xs:unsignedBytestatic intUNSIGNED_INTItem type representing the type xs:unsignedIntstatic intUNSIGNED_LONGItem type representing the type xs:unsignedLongstatic intUNSIGNED_SHORTItem type representing the type xs:unsignedShortstatic intUNTYPED_ATOMICItem type representing the type xdt:untypedAtomic (the type of the content of a schema-less node)static BuiltInAtomicTypeUNTYPED_ATOMIC_TYPEstatic shortWHITESPACE_TEXTItem type representing a text node stored in the tiny tree as compressed whitespacestatic intYEAR_MONTH_DURATIONItem type representing the type xdt:yearMonthDurationstatic BuiltInAtomicTypeYEAR_MONTH_DURATION_TYPE
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringdisplayTypeName(Item item)Output (for diagnostics) a representation of the type of an item.static ItemTypegetBuiltInItemType(java.lang.String namespace, java.lang.String localName)Get the SimpleType object for a built-in simple type codestatic ItemTypegetCommonSuperType(ItemType t1, ItemType t2, TypeHierarchy th)Get a type that is a common supertype of two given typesstatic ItemTypegetItemType(Item item, TypeHierarchy th)Get the ItemType of an Itemstatic booleanisComparable(int t1, int t2, boolean ordered)Determine whether two primitive atomic types are comparablestatic booleanisNodeType(ItemType type)Test whether a given type is (some subtype of) node()static booleanisNumericPrimitiveType(int fp)Test whether the supplied type, which must be a primitive type, is one of the numeric primitive typesstatic booleanisNumericPrimitiveType(ItemType t)Test whether the supplied type, which must be a primitive type, is one of the numeric primitive typesstatic booleanisOrdered(int type)Determine whether a primitive type is ordered.static booleanisPrimitiveType(int code)Determine whether this type is a primitive type.static intschemaTypeRelationship(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"
-
-