## Package com.icl.saxon

This package provides the core classes of the SAXON XSLT library.

See:
Description

Interface Summary
Binding: Binding is a interface used to mark objects that represent a variable declaration
NodeHandler: This abstract class defines the node handler interface used by SAXON.

Class Summary
Bindery: The Bindery class holds information about variables and their values.
ContentEmitter: ContentEmitter is a glue class that provides a standard SAX ContentHandler interface to a Saxon Emitter.
Context: This class represents a context in which an expression is evaluated or a template is executed (as defined in the XSLT specification).
Controller: Controller processes an XML file, calling registered node handlers when appropriate to process its elements, character content, and attributes.
DecimalFormatManager: DecimalFormatManager manages the collection of named and unnamed decimal formats
DOMDriver: DOMDriver.java: (pseudo-)SAX driver for DOM. This class simulates the action of a SAX Parser, taking an already-constructed DOM Document and walking around it in a depth-first traversal, calling a SAX-compliant ContentHandler to process the children as it does so.
ExtendedInputSource: This class allows a SAXON application to encapsulate information about an input source in a single object, which may include a public identifier, a system identifier, a byte stream (possibly with a specified encoding), a character stream, or a file.
FeatureKeys: FeatureKeys defines a set of constants, names of Saxon configuration options which can be supplied to the TransformerFactoryImpl interface
Filter: Filter is an XMLFilter (a SAX2 filter) that performs a transformation taking a SAX stream as input and producing a SAX stream as output.
IdentityTransformerHandler: IdentityTransformerHandler implements the javax.xml.transform.sax.TransformerHandler interface.
IDFilter: IDFilter is a SAX filter that extracts the subtree of a document rooted at the element with a given ID value.
KeyDefinition: Corresponds to a single key definition.
KeyManager: KeyManager manages the set of key definitions in a stylesheet, and the indexes associated with these key definitions
Loader: Loader is used to load a class given its name.
Mode: A Mode is a collection of rules; the selection of a rule to apply to a given element is determined by a Pattern.
ParameterSet: A ParameterSet is a set of parameters supplied when calling a template.
PIGrabber: The PIGrabber class is a SAX ContentHandler that looks for xml-stylesheet processing instructions and tests whether they match specified criteria; for those that do, it creates an InputSource object referring to the relevant stylesheet
PreparedStyleSheet: This PreparedStyleSheet class represents a StyleSheet that has been prepared for execution (or "compiled").
PreviewManager: PreviewManager handles the registration of preview elements for use by the Builder
RuleManager: RuleManager maintains a set of template rules, one set for each mode
StandardErrorListener: StandardErrorListener is the standard error handler for XSLT processing errors, used if no other ErrorListener is nominated.
StandardURIResolver: This class provides the service of converting a URI into an InputSource.
StyleSheet: This StyleSheet class is the entry point to the Saxon XSLT Processor.
StylesheetStripper: The StylesheetStripper refines the Stripper class to do stripping of whitespace nodes on a stylesheet.
TemplatesHandlerImpl: TemplatesHandlerImpl implements the javax.xml.transform.sax.TemplatesHandler interface.
TransformerFactoryImpl: A TransformerFactoryImpl instance can be used to create Transformer and Template objects.
TransformerHandlerImpl: TransformerHandlerImpl implements the javax.xml.transform.sax.TransformerHandler interface.
TreeDriver: TreeDriver.java: (pseudo-)SAX driver for Saxon trees. Subclasses DOMDriver for the case where the tree is a Saxon tree (a DocumentInfo) This class simulates the action of a SAX Parser, taking an already-constructed DOM Document and walking around it in a depth-first traversal, calling a SAX-compliant ContentHandler to process the children as it does so.
Version: The Version class holds the SAXON version information.
WinStyleSheet: This WinStyleSheet class is used in instant-saxon, a packaged interface to the StyleSheet interpreter, intended for use with jexegen on Windows platforms.
XSLTProcessorApplet: Provides applet host for the XSLT processor.

Error Summary
InternalSaxonError: An InternalError represents an condition detected during Saxon processing that should never occur.

## Package com.icl.saxon Description

This package provides the core classes of the SAXON XSLT library.

The classes you are most likely to use directly in your application are listed below:

StyleSheet:
This is the XSLT processor. It has a command-line interface allowing you to apply a given style sheet to a given source document.

PreparedStyleSheet:
This represents a compiled XSLT stylesheet in memory.

RuleManager:
This class allows you to register user-supplied handlers to process the elements, attributes, and character content. For information on writing handlers, see the Handlers package.

Controller:
This class represents the context information for a single execution of an XSLT stylesheet, and allows the application to process the tree navigationally. It calls user-supplied handlers registered with the RuleManager. If you want to write your own Java application to process a document navigationally, you can write it as a subclass of Controller, or you can instantiate Controller directly.

Context:
The Context object bundles together all the information about the context in which a node handler is invoked. As such it corresponds directly to the context concept defined in the XSLT specification. Information available from the Context includes:

- The current node: context.getCurrentNode()
- Information about the current node list. The full current node list is not maintained, as the only things that depend on it are the XSL functions position() and last(): these are accessible as context.getPosition() and context.getLast()
- The current set of variable bindings: this is available from the Bindery object, which may be accessed as context.getBindery(); however the most common operations to discover values of variables are available directly from the Context object.
- The current output destination: output services are available from the Outputter object which can be accessed as context.getOutputter().
- The indexes for identifiers and keys. These are maintained by the controller, which can be accessed as context.getController().

## Choosing a SAX Parser

SAXON provides a layer of services on top of a SAX-compliant XML parser. It will work with any Java-based XML parser that implements the SAX1 or SAX2 interface.

SAXON uses the configuration file `ParserManager.properties` to decide which SAX parser to use. This file identifies a default parser and a list of alternatives. As issued, it lists some popular (and free) SAX-compliant parsers which have been tested with SAXON. The default is the Ælfred parser bundled with Saxon. If you do nothing, SAXON will search your CLASSPATH to see if any of these known parsers are installed. If you want to specify a different parser, or change the default, simply edit the ParserManager.properties file.

Michael H. Kay
20 September 2000