# Package net.sf.saxon.lib

This package collects together interfaces intended for user applications to implement in order to customize Saxon's behavior, default implementations of these interfaces, and classes containing constants that are used in public Saxon interfaces.

These interfaces were brought together into this package in Saxon 9.3, having previously been dispersed around the package hierarchy and mixed with classes and interfaces intended only for internal use.

- Interface Summary
  Interface | Description
  --- | ---
  CollationURIResolver | A CollationURIResolver accepts a collation name as input, and returns a collation (represented by a `StringCollator` as output.
  CollectionFinder | An instance of CollectionFinder can be registered with the Saxon configuration; it is called in response to calls on the fn:collection() and fn:uri-collection() functions.
  EnvironmentVariableResolver | This interface defines a Saxon plug-in used to resolve calls on the XPath 3.0 functions available-environment-variables() and environment-variable().
  ErrorReporter | The ErrorReporter is a generic functional interface for reporting errors and warnings.
  ExternalObjectModel | This interface must be implemented by any third-party object model that can be wrapped with a wrapper that implements the Saxon Object Model (the NodeInfo interface).
  FunctionAnnotationHandler | Interface to a user-supplied class that handles XQuery annotation assertions in a particular namespace.
  Initializer | This interface can be implemented by users (there are no implementations in Saxon itself).
  Invalidity | An `Invalidity` is a validation error, that is, a failure of the instance document to conform to the schema being used for validation.
  InvalidityHandler | Interface for reporting validation errors found during validation of an instance document against a schema.
  ModuleURIResolver | A ModuleURIResolver is used when resolving references to query modules.
  Numberer | Interface Numberer supports number formatting.
  OutputURIResolver | This interface defines an OutputURIResolver.
  RelativeURIResolver | The standard JAXP URIResolver is given a relative URI and a base URI and returns the resource identified by this combination.
  Resource | This interface defines a Resource.
  ResourceCollection | This interface defines a ResourceCollection.
  ResourceFactory | A ResourceFactory is used for constructing a particular type of resource
  ResultDocumentResolver | The `ResultDocumentResolver` interface may be implemented by a user application; it is a callback that is called whenever an xsl:result-document instruction is executed.
  SchemaURIResolver | A SchemaURIResolver is used when resolving references to schema documents.
  SourceResolver | This interface defines a SourceResolver.
  StAXResultHandler | StAxResultHandler is a helper class
  StringCollator | This interface represents a "collation" as defined in XPath, that is, a set of rules for comparing strings
  SubstringMatcher | This interface is implemented by a collation that is capable of supporting the XPath functions that require matching of a substring: namely contains(), starts-with, ends-with, substring-before, and substring-after.
  TraceListener | This interface defines methods that are called by Saxon during the execution of a stylesheet, if tracing is switched on.
  UnparsedTextURIResolver | An UnparsedTextURIResolver accepts an absolute URI and optionally an encoding name as input, and returns a Reader as its result.
  URIChecker | This interface defines a method for checking whether a string is considered to be a valid URI.
  ValidationStatisticsRecipient | Defines a class that is notified of validation statistics at the end of a validation episode

- Class Summary
  Class | Description
  --- | ---
  AugmentedSource | This class is an extension of the JAXP Source interface.
  ConversionRules | This class defines a set of rules for converting between different atomic types.
  EmptySource | This class is an implementation of the JAXP Source interface.
  ErrorReporterToListener | A bridging class that allows errors in an XSLT Transformation, or in a Query, to be reported to a JAXP `ErrorListener`.
  ExtensionFunctionCall | This abstract class is provided to allow user-written extension functions to be implemented with the full capabilities of functions that are an intrinsic part of the Saxon product.
  ExtensionFunctionDefinition | This abstract class is provided to allow user-written extension functions to be implemented with the full capabilities of functions that are an intrinsic part of the Saxon product.
  Feature<T> | Feature defines a set of constants, representing the details of Saxon configuration options which can be supplied to the Saxon method Configuration.setProperty(), and to other interfaces
  FeatureCode | FeatureCode defines a set of integer constants, representing unique identifiers for the features that can be configured.
  FeatureData |
  FeatureKeys | FeatureKeys defines a set of constants, representing the names of Saxon configuration options which can be supplied to the Saxon implementations of the JAXP interfaces TransformerFactory, SchemaFactory, Validator, and ValidationHandler, and to other interfaces such as the s9api `Processor`
  InvalidityHandlerWrappingErrorListener | Interface for reporting validation errors found during validation of an instance document against a schema.
  InvalidityHandlerWrappingErrorReporter | Interface for reporting validation errors found during validation of an instance document against a schema.
  InvalidityReportGenerator | This class `InvalidityReportGenerator` extends the standard error handler for errors found during validation of an instance document against a schema, used if user specifies -report option on validate.
  LocalizerFactory | Interface allowing localization modules for different languages to be dynamically loaded
  Logger | Interface to diagnostic event logging mechanism.
  NamespaceConstant | This class is not instantiated, it exists to hold a set of constants representing known namespaces.
  OutputURIResolverWrapper | This class is an implementation of the `ResultDocumentResolver` interface that wraps a supplied `OutputURIResolver`.
  ParseOptions | This class defines options for parsing and/or validating a source document.
  ProtocolRestricter | This class implements the rules in a property such as `XMLConstants.ACCESS_EXTERNAL_SCHEMA`, which constrain the set of URIs that can be used by supplying a list of permitted protocols.
  RawResult | This class is an implementation of the JAXP Result interface.
  RedirectHandler |
  SaxonOutputKeys | Provides string constants that can be used to set output properties for a Transformer, or to retrieve output properties from a Transformer or Templates object.
  SerializerFactory | Helper class to construct a serialization pipeline for a given result destination and a given set of output properties.
  StandardCollationURIResolver | StandardCollationURIResolver allows a Collation to be created given a URI starting with "http://saxon.sf.net/collation" followed by a set of query parameters.
  StandardDiagnostics | This class is an abstract superclass of classes such as the `StandardErrorListener` and `StandardInvalidityHandler`, and exists to provide common utility methods for these classes, and for similar user-written classes if required
  StandardEntityResolver | This class is an EntityResolver used to resolve references to common DTDs and entity files, using local copies provided with the Saxon product.
  StandardEnvironmentVariableResolver | Default implementation of the `EnvironmentVariableResolver`.
  StandardErrorHandler | A default implementation of the SAX ErrorHandler interface.
  StandardErrorListener | StandardErrorListener is the standard error handler for XSLT and XQuery processing errors, used if no other ErrorListener is nominated.
  StandardErrorReporter | StandardErrorReporter is the standard error handler for processing XSLT and XQuery static errors, used if no other error handler is nominated.
  StandardInvalidityHandler | This class `StandardInvalidityHandler`, despite its name, is not directly used by Saxon, and in particular it is NOT the default InvalidityHandler.
  StandardLogger | The default Logger used by Saxon on the Java platform.
  StandardModuleURIResolver | This class is the standard ModuleURIResolver used to implement the "import module" declaration in a Query Prolog.
  StandardOutputResolver | This class defines the default OutputURIResolver.
  StandardResultDocumentResolver | This class defines the default ResultDocumentResolver.
  StandardUnparsedTextResolver | Default implementation of the UnparsedTextURIResolver, used if no other implementation is nominated to the Configuration.
  StandardURIChecker | This class checks whether a string is a valid URI.
  StandardURIResolver | This class provides the service of converting a URI into an `Source`.
  StaticQueryContextFactory | Factory class for creating a customized instance of StaticQueryContext
  SystemLogger | An implementation of Saxon's `Logger` interface that writes all messages through to a supplied `java.util.logging.Logger`.
  Validation | This class contains constants and static methods to manipulate the validation property of a type.
  XQueryFunctionAnnotationHandler | Function annotation handler for annotations in the built-in namespace http://www.w3.org/2012/xquery.