## Package com.saxonica.extra

The package com.saxonica.extra contains classes used to support Saxon-SA features that are not specifically concerned with schema-awareness or Java code generation.

See:
Description

Class Summary
AnalyzeStringFunction: This class implements the extension function saxon:analyze-string().
AttributeCopier: A Checker is a Receiver used to check the content of elements and attributes, especially those that participate in uniqueness, key, and keyref constraints.
DynamicFunction: This class implements the extension function saxon:function(), which returns a FirstClassFunction object representing the function named in the first argument.
DynamicFunctionCall: This class implements the extension function saxon:call(), which calls a FirstClassFunction previously set up using saxon:function().
ExtraFunctionLibrary: The ExtraFunctionLibrary represents additions to the set of Saxon vendor-supplied extension functions that are available only with the Saxon-SA product
Find: This class implements the extension function saxon:find, which finds a value within an indexed sequence
FirstClassFunction: A FirstClassFunction is a value that encapsulates a function; it can therefore be manipulated like any other value: for example it can be assigned to a variable and passed as a parameter to a function.
ForEachGroupFunction: This class implements the extension function saxon:for-each-group().
GeneralComparisonSA: This class provides an implementation of the GeneralComparison "=" operator, which deals efficiently with comparing two sequences.
Index: This class supports the extension function saxon:index, which returns an indexed sequence
IndexedFilterExpression: An IndexedFilterExpression contains a base expression and a filter predicate.
IndexedLookupExpression: An IndexedLookupExpression contains a base expression and a lookup expression.
IndexedSequence: IndexedSequence is a simple package of information returned by saxon:index(), and used by saxon:find().
IndexedValue: A representation of a (sequence) value that allows the construction of one or more indexes to provide rapid access to the items in the sequence.
MultiIndex: A MultiIndex provides fast access to the items in a sequence.
OptimizerSA: This class doesn't actually do any optimization itself, despite the name.
PathFinder: This class enables a client to find all nodes in a document that match a particular pattern.
Projector: This class uses a `PathMap` to do document projection.
ResultDocumentFunction: This class implements the extension function saxon:result-document(), which offers similar functionality in XQuery to the xsl:result-document instruction in XSLT 2.0.
SequenceExchanger: This class enables one thread to produce a sequence of items in push mode, and another thread to read the sequence of items in pull mode, using a producer/consumer model.
SequenceExchanger.Consumer: The Consumer is a SequenceIterator that reads a sequence of items from the Conduit: that is, it allows its caller to make a sequence of calls on next(), each of which will return the next item pushed onto the Conduit by the corresponding Producer.
SequenceExchanger.EvaluationThread: EvaluationThread is a producer that evaluates an expression in "push" mode, writing the results to a Conduit.
SequenceExchanger.Producer: The class Producer represents the thread that pushes items onto the Conduit.
SequenceExchanger.SequencePusher: A SequenceReceiver that accepts a sequence of events and writes them to a Conduit
SequenceFilter: A sequence writer that passes on only those items that satisfy a filter predicate.
SequenceTransmitter: This is a SequenceWriter that passes items through to a supplied SequenceReceiver
StreamFn: Implement extension function saxon:stream()
StreamingCopy: This class performs a streaming copy of selected nodes within a document.
SubtreeCopyWatch: This class is used when optimizing a SequentialCopy, that is, when evaluating a construct of the form saxon:stream(doc('a.xml')/a/b/c).
SwitchExpression: An optimized Choose expression in which all the branches are tests of the same expression for equality with some value.
Try: This class implements the saxon:try() extension function, which is specially recognized by the system because it uses a non-standard approach to evaluating its arguments
WatchManager: This class sits on a push pipeline and evaluates the passing element and attribute nodes.

## Package com.saxonica.extra Description

The package com.saxonica.extra contains classes used to support Saxon-SA features that are not specifically concerned with schema-awareness or Java code generation.

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

The classes in this package fall into several categories:

- Classes to support enhanced optimization and join indexing
- Classes to support streamed copy in XSLT
- Classes to support extension functions exclusive to Saxon-SA, such as try/catch, index/find, and higher-order functions
- Enhanced ErrorListeners for Saxon-SA

Copyright (c) Saxonica Limited. All rights reserved.