Class TypeHierarchy

java.lang.Object
net.sf.saxon.type.TypeHierarchy
All Implemented Interfaces:
Serializable

public class TypeHierarchy extends Object implements Serializable
This class exists to provide answers to questions about the type hierarchy. Because such questions are potentially expensive, it caches the answers.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Constant denoting relationship between two types: A is disjoint from B
    static final int
    Constant denoting relationship between two types: A overlaps B
    static final int
    Constant denoting relationship between two types: A is the same type as B
    static final int
    Constant denoting relationship between two types: A is subsumed by B
    static final int
    Constant denoting relationship between two types: A subsumes B
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
     
    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
    Determine the relationship of one item type to another.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • SAME_TYPE

      public static final int SAME_TYPE
      Constant denoting relationship between two types: A is the same type as B
      See Also:
    • SUBSUMES

      public static final int SUBSUMES
      Constant denoting relationship between two types: A subsumes B
      See Also:
    • SUBSUMED_BY

      public static final int SUBSUMED_BY
      Constant denoting relationship between two types: A is subsumed by B
      See Also:
    • OVERLAPS

      public static final int OVERLAPS
      Constant denoting relationship between two types: A overlaps B
      See Also:
    • DISJOINT

      public static final int DISJOINT
      Constant denoting relationship between two types: A is disjoint from B
      See Also:
  • Constructor Details

  • Method Details

    • getConfiguration

      public Configuration getConfiguration()
    • 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 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
    • relationship

      public int relationship(ItemType t1, ItemType t2)
      Determine the relationship of one item type to another.
      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)
    • isIdCode

      public boolean isIdCode(int typeCode)
      Test whether a type annotation code represents the type xs:ID or one of its subtypes
    • isIdrefsCode

      public boolean isIdrefsCode(int typeCode)
      Test whether a type annotation code represents the type xs:IDREF, xs:IDREFS or one of their subtypes