net.sf.saxon.type
public class TypeHierarchy extends Object implements Serializable
Field Summary | |
---|---|
static int | DISJOINT
Constant denoting relationship between two types: A is disjoint from B |
static int | OVERLAPS
Constant denoting relationship between two types: A overlaps B |
static int | SAME_TYPE
Constant denoting relationship between two types: A is the same type as B |
static int | SUBSUMED_BY
Constant denoting relationship between two types: A is subsumed by B |
static int | SUBSUMES
Constant denoting relationship between two types: A subsumes B |
Constructor Summary | |
---|---|
TypeHierarchy(Configuration config)
Create the type hierarchy cache for a configuration |
Method Summary | |
---|---|
Configuration | getConfiguration()
Get the Saxon configuration to which this type hierarchy belongs |
boolean | isIdCode(int typeCode)
Test whether a type annotation code represents the type xs:ID or one of its subtypes |
boolean | isIdrefsCode(int typeCode)
Test whether a type annotation code represents the type xs:IDREF, xs:IDREFS or one of their subtypes |
boolean | isSubType(ItemType subtype, ItemType supertype)
Determine whether type A is type B or one of its subtypes, recursively
|
int | relationship(ItemType t1, ItemType t2)
Determine the relationship of one item type to another. |
static int | schemaTypeRelationship(SchemaType s1, SchemaType s2)
Get the relationship of two schema types to each other |
Parameters: config the configuration
Returns: the configuration
Parameters: typeCode the type annotation to be tested
Returns: true if the type annotation represents an xs:ID
Parameters: typeCode the type annotation to be tested
Returns: true if the type annotation represents an xs:IDREF or xs:IDREFS or a subtype thereof
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
Parameters: t1 the first item type t2 the second item type
Returns: SAME_TYPE if the types are the same; SUBSUMES if the first type subsumes the second (that is, all instances of the second type are also instances of the first); SUBSUMED_BY if the second type subsumes the first; OVERLAPS if the two types overlap (have a non-empty intersection, but neither subsumes the other); DISJOINT if the two types are disjoint (have an empty intersection)
Parameters: s1 the first type s2 the second type
Returns: the relationship of the two types, as one of the constants SAME_TYPE, SUBSUMES, SUBSUMED_BY, DISJOINT