Package net.sf.saxon.type

This package contains classes that implement the XPath 2.0 type system.

See:
          Description

Interface Summary
AtomicType Interface for atomic types (these are either built-in atomic types or user-defined atomic types).
ComplexType A complex type as defined in XML Schema: either a user-defined complex type, or xs:anyType, or xs:untyped.
ConversionResult This is a marker interface used as the result methods that convert or cast values from one type to another.
ISchemaCompiler Marker interface: the only instance of this class is the SchemaCompiler object in Saxon-SA
ItemType ItemType is an interface that allows testing of whether an Item conforms to an expected type.
ListType Interface representing a simple type of variety List
SchemaComponent This is a marker interface that represents any "schema component" as defined in the XML Schema specification.
SchemaDeclaration This is a marker interface that acts as a surrogate for an object representing a global element or attribute declaration.
SchemaType SchemaType is an interface implemented by all schema types: simple and complex types, built-in and user-defined types.
SchemaURIResolver A SchemaURIResolver is used when resolving references to schema documents.
SimpleType This interface represents a simple type, which may be a built-in simple type, or a user-defined simple type.
 

Class Summary
AnyItemType An implementation of ItemType that matches any item (node or atomic value)
AnySimpleType This class has a singleton instance which represents the XML Schema built-in type xs:anySimpleType
AnyType This class has a singleton instance which represents the XML Schema built-in type xs:anyType, also known as the urtype.
BuiltInAtomicType This class represents a built-in atomic type, which may be either a primitive type (such as xs:decimal or xs:anyURI) or a derived type (such as xs:ID or xs:dayTimeDuration).
BuiltInListType This class is used to implement the built-in list types NMTOKENS, ENTITIES, IDREFS.
BuiltInType This non-instantiable class acts as a register of Schema objects containing all the built-in types: that is, the types defined in the "xs" namespace.
ExternalObjectType This class represents the type of an external Java object returned by an extension function, or supplied as an external variable/parameter.
Type This class contains static information about types and methods for constructing type codes.
TypeHierarchy This class exists to provide answers to questions about the type hierarchy.
Untyped This class has a singleton instance which represents the complex type xdt:untyped, used for elements that have not been validated.
ValidationFailure This exception indicates a failure when validating an instance against a type defined in a schema.
 

Exception Summary
SchemaException An exception that identifies an error in reading, parsing, or validating a schema.
UnresolvedReferenceException This exception occurs when an attempt is made to dereference a reference from one schema component to another, if the target of the reference cannot be found.
ValidationException This exception indicates a failure when validating an instance against a type defined in a schema.
 

Package net.sf.saxon.type Description

This package contains classes that implement the XPath 2.0 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.

Michael H. Kay
Saxonica Limited
9 February 2005



Copyright (C) Michael H. Kay. All rights reserved.