# Package com.saxonica.ee.stream

This package and its subpackages contain classes used to support streaming and document projection. In principle these facilities are applicable both to XSLT and XQuery; the streamed evaluation of XPath expressions is also used during schema validation, to process identity constraints.

None of these classes will be used directly by typical user applications.

This package contains classes that watch for events coming from the streamed document. Different kinds of watch are associated with different expressions and perform differing actions with these events.

The instantiation of watch classes, calling them to test whether they are interested in particular events, and remembering when to de-activate them, is all handled by the `WatchManager`.

- Interface Summary
  Interface | Description
  --- | ---
  PostureGetter | This interface defines a method used to get the context item posture.
  PushToPull.Pusher |

- Class Summary
  Class | Description
  --- | ---
  AccumulatorRegistryEE | Static registry containing the accumulators defined within a package; the Saxon-EE subclass includes support for streamed accumulators.
  ComponentInversion | This class represents the inversion of a template or function body
  ContentDetector | A ContentDetector is a filter that can be added to a Receiver pipeline to note whether the current element node has children.
  CurrentGroupPattern | This is a special pattern that matches the "anchor node".
  Inversion | This class represents an expression that has been "inverted" (in the Jackson sense) so that its execution is push-driven, that is, driven by events from the streamed document.
  Inversion.PushAction | A PushAction is a collection of data that together represents the strategy for how an expression should be evaluated in push mode.
  ManualGroupIterator | The class ManualGroupIterator represents an iterator that is never repositioned, but can be used to represent the focus in the dynamic context.
  ManualRegexIterator | The class ManualRegexIterator represents an iterator that is never repositioned, but can be used to represent the current regex groups in the dynamic context.
  PostureAndSweep | This class defines a composite property of an expression containing both the posture and sweep of the expression, as defined in the XSLT 3.0 specification.
  Projector | This class uses a `PathMap` to do document projection.
  PushToPull | This class evaluates an expression in push mode in one thread, and provides an iterator to read the results of the expression in pull mode in the original thread.
  Streamability | Supporting class for assessing the streamability of expressions.
  StreamableUserFunction | Represents a used-defined XSLT function whose declared streamability is other than "unclassified"
  StreamerMap |
  StreamingPatternMaker | Factory class to make a streaming pattern from an expression.
  StreamingSequenceWriter | A SequenceWriter that can be used on a streaming pipeline to direct the output of an operation to the next expression in the pipeline
  StreamInstr | Implementation of the xsl:source-document (streamable="yes") instruction

- Enum Summary
  Enum | Description
  --- | ---
  Posture | The posture of an expression defines the relationship of the result to a streamed input document, as defined in the XSLT 3.0 specification.
  Sweep | The posture of an expression defines the relationship of the result to a streamed input document, as defined in the XSLT 3.0 specification.