java.io.Serializable
public class TypeHierarchy
extends java.lang.Object
implements java.io.Serializable
Modifier and Type | Field | Description |
---|---|---|
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 | Description |
---|---|
TypeHierarchy(Configuration config) |
Create the type hierarchy cache for a configuration
|
Modifier and Type | Method | Description |
---|---|---|
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
|
public static final int SAME_TYPE
public static final int SUBSUMES
public static final int SUBSUMED_BY
public static final int OVERLAPS
public static final int DISJOINT
public TypeHierarchy(Configuration config)
config
- the configurationpublic Configuration getConfiguration()
public boolean isSubType(ItemType subtype, ItemType supertype)
subtype
- identifies the first typesupertype
- identifies the second typepublic int relationship(ItemType t1, ItemType t2)
t1
- the first item typet2
- the second item typeSAME_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)public boolean isIdCode(int typeCode)
typeCode
- the type annotation to be testedpublic boolean isIdrefsCode(int typeCode)
typeCode
- the type annotation to be testedpublic static int schemaTypeRelationship(SchemaType s1, SchemaType s2)
s1
- the first types2
- the second typeSAME_TYPE
, SUBSUMES
,
SUBSUMED_BY
, DISJOINT