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
.