This package contains classes that implement the XPath 2.0 and 3.1 type system. It contains that part of the functionality relevant to a non-schema-aware implementation: that is, the overall structure of the type system, together with representations of the built-in types.
The hierarchy of schema types is represented by the interfaces
SchemaType, ComplexType, SimpleType,
ListType, and AtomicType. (Union types never arise
in non-schema-aware processing). There are concrete classes representing
built-in types such as AnyType, BuiltInAtomicType,
and BuiltInListType: the corresponding classes for user-defined
types are in the com.saxonica.schema package.
The class SequenceType ought logically to be in this package
but is actually in net.sf.saxon.value. A sequence type contains
an ItemType which may be an AtomicType or a
NodeTest: NodeTests are found in the package net.sf.saxon.pattern.
The logic for performing type checking is partly in the singleton class
Type (which also contains many useful constants), and partly in
the class TypeChecker found in package net.sf.saxon.expr.