# Package org.apache.xalan.transformer

In charge of run-time transformations and the production of result trees.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  TransformerClient | A content handler can get a reference to a TransformState by implementing the TransformerClient interface.
  TransformSnapshot | Deprecated It doesn't look like this code, which is for tooling, has functioned propery for a while, so it doesn't look like it is being used.
  TransformState | This interface is meant to be used by a consumer of SAX2 events produced by Xalan, and enables the consumer to get information about the state of the transform.

- Class Summary
  Class | Description
  --- | ---
  ClonerToResultTree | Class used to clone a node, possibly including its children to a result tree.
  Counter | A class that does incremental counting for support of xsl:number.
  CountersTable | This is a table of counters, keyed by ElemNumber objects, each of which has a list of Counter objects.
  DecimalToRoman | Structure to help in converting integers to roman numerals
  KeyIterator | This class implements an optimized iterator for "key()" patterns, matching each node to the match attribute in one or more xsl:key declarations.
  KeyManager | This class manages the key tables.
  KeyRefIterator | This class filters nodes from a key iterator, according to whether or not the use value matches the ref value.
  KeyTable | Table of element keys, keyed by document node.
  MsgMgr | This class will manage error messages, warning messages, and other types of message events.
  NodeSorter | This class can sort vectors of DOM nodes according to a select pattern.
  QueuedEvents | This class acts as a base for ResultTreeHandler, and keeps queud stack events.
  ResultNameSpace | A representation of a result namespace.
  SerializerSwitcher | This is a helper class that decides if Xalan needs to switch serializers, based on the first output element.
  StackGuard | Class to guard against recursion getting too deep.
  TransformerHandlerImpl | A TransformerHandler listens for SAX ContentHandler parse events and transforms them to a Result.
  TransformerIdentityImpl | This class implements an identity transformer for `SAXTransformerFactory.newTransformerHandler()` and `TransformerFactory.newTransformer()`.
  TransformerImpl | This class implements the `Transformer` interface, and is the core representation of the transformation execution.
  TrAXFilter |
  TreeWalker2Result | Handle a walk of a tree, but screen out attributes for the result tree.
  XalanProperties | `XalanProperties` defines the features understood by Xalan.
  XalanTransformState | Before the serializer merge, the TransformState interface was implemented by ResultTreeHandler.

## Package org.apache.xalan.transformer Description

In charge of run-time transformations and the production of result trees.

`TransformerImpl` implements the `Transformer` interface, and is the core representation of the transformation execution.

For each node in the XML source, TransformerImpl uses the StylesheetRoot and underlying XSLT schema to determine which template to apply: one of the templates in the StylesheetRoot, a default template rule as specified in the XSLT spec, or none.

The Transformer works with `SerializationHandler` to forward the SAX-like events produced by the transformation to the appropriate output ContentHandler.

To the degree possible, the parsing of the XML source and application of the Templates object to that source are performed concurrently in separate threads. When necessary, the Transformer waits for the parse events that must be in place before a given template may be applied.

Copyright © 2023 Apache XML Project. All Rights Reserved.