Package net.sf.saxon.type
Class TypeHierarchy
- java.lang.Object
-
- net.sf.saxon.type.TypeHierarchy
-
- All Implemented Interfaces:
java.io.Serializable
public class TypeHierarchy extends java.lang.Object implements java.io.Serializable
This class exists to provide answers to questions about the type hierarchy. Because such questions are potentially expensive, it caches the answers. There is one instance of this class for a Configuration.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
DISJOINT
Constant denoting relationship between two types: A is disjoint from Bstatic int
OVERLAPS
Constant denoting relationship between two types: A overlaps Bstatic int
SAME_TYPE
Constant denoting relationship between two types: A is the same type as Bstatic int
SUBSUMED_BY
Constant denoting relationship between two types: A is subsumed by Bstatic int
SUBSUMES
Constant denoting relationship between two types: A subsumes B
-
Constructor Summary
Constructors Constructor Description TypeHierarchy(Configuration config)
Create the type hierarchy cache for a configuration
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Configuration
getConfiguration()
Get the Saxon configuration to which this type hierarchy belongsboolean
isIdCode(int typeCode)
Test whether a type annotation code represents the type xs:ID or one of its subtypesboolean
isIdrefsCode(int typeCode)
Test whether a type annotation code represents the type xs:IDREF, xs:IDREFS or one of their subtypesboolean
isSubType(ItemType subtype, ItemType supertype)
Determine whether type A is type B or one of its subtypes, recursivelyint
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
-
-
-
Field Detail
-
SAME_TYPE
public static final int SAME_TYPE
Constant denoting relationship between two types: A is the same type as B- See Also:
- Constant Field Values
-
SUBSUMES
public static final int SUBSUMES
Constant denoting relationship between two types: A subsumes B- See Also:
- Constant Field Values
-
SUBSUMED_BY
public static final int SUBSUMED_BY
Constant denoting relationship between two types: A is subsumed by B- See Also:
- Constant Field Values
-
OVERLAPS
public static final int OVERLAPS
Constant denoting relationship between two types: A overlaps B- See Also:
- Constant Field Values
-
DISJOINT
public static final int DISJOINT
Constant denoting relationship between two types: A is disjoint from B- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TypeHierarchy
public TypeHierarchy(Configuration config)
Create the type hierarchy cache for a configuration- Parameters:
config
- the configuration
-
-
Method Detail
-
getConfiguration
public Configuration getConfiguration()
Get the Saxon configuration to which this type hierarchy belongs- Returns:
- the configuration
-
isSubType
public boolean isSubType(ItemType subtype, ItemType supertype)
Determine whether type A is type B or one of its subtypes, recursively- Parameters:
subtype
- identifies the first typesupertype
- identifies the second type- Returns:
- true if the first type is the second type or a (direct or indirect) subtype of the second type
-
relationship
public int relationship(ItemType t1, ItemType t2)
Determine the relationship of one item type to another.- Parameters:
t1
- the first item typet2
- 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)
-
isIdCode
public boolean isIdCode(int typeCode)
Test whether a type annotation code represents the type xs:ID or one of its subtypes- Parameters:
typeCode
- the type annotation to be tested- Returns:
- true if the type annotation represents an xs:ID
-
isIdrefsCode
public boolean isIdrefsCode(int typeCode)
Test whether a type annotation code represents the type xs:IDREF, xs:IDREFS or one of their subtypes- 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
-
schemaTypeRelationship
public static int schemaTypeRelationship(SchemaType s1, SchemaType s2)
Get the relationship of two schema types to each other- Parameters:
s1
- the first types2
- the second type- Returns:
- the relationship of the two types, as one of the constants
SAME_TYPE
,SUBSUMES
,SUBSUMED_BY
,DISJOINT
-
-