Saxon.Api
Class XQueryEvaluator
-
public class XQueryEvaluator
- implements IEnumerable
An XQueryEvaluator
represents a compiled and loaded query ready for execution.
The XQueryEvaluator
holds details of the dynamic evaluation context for the query.
An XQueryEvaluator
must not be used concurrently in multiple threads. It is safe,
however, to reuse the object within a single thread to run the same query several
times.
Running the query does not change the context that has been established.
An XQueryEvaluator
is always constructed by running the Load
method of
an XQueryExecutable
.
Property Summary |
|
---|---|
XdmItem | ContextItem The context item for the query. |
net.sf.saxon.s9api.XQueryEvaluator | Implementation
Escape hatch to the |
XmlResolver | InputXmlResolver
The |
SchemaValidationMode | SchemaValidationMode
The |
StandardLogger | TraceFunctionDestination
Destination for output of messages produced using the |
Method Summary |
|
---|---|
XdmValue | CallFunction(QName function, XdmValue[] arguments) Call a global user-defined function in the compiled query. |
XdmValue | Evaluate()
Evaluate the query, returning the result as an |
XdmItem | EvaluateSingle()
Evaluate the query, returning the result as an |
IEnumerator | GetEnumerator()
Evaluate the query, returning the result as an |
void | Run(XmlDestination destination) Evaluate the query, sending the result to a specified destination. |
XdmNode[] | RunUpdate() Execute an updating query. |
void | SetExternalVariable(QName name, XdmValue value) Set the value of an external variable declared in the query. |
Property Detail
ContextItem
The context item for the query.
This may be a node, an atomic value, or a function item such as a map or array.
Most commonly it will be a document node, which might be constructed
using a DocumentBuilder
created from the Processor
object.
Implementation
Escape hatch to the net.sf.saxon.query.DynamicQueryContext
object in the underlying Java implementation
InputXmlResolver
The XmlResolver
to be used at run-time to resolve and dereference URIs
supplied to the doc()
function.
SchemaValidationMode
The SchemaValidationMode
to be used in this query, especially for documents
loaded using the doc()
, document()
, or collection()
functions.
This does not affect any document supplied as the context item for the query, or as the values of external variables.
TraceFunctionDestination
Destination for output of messages produced using the trace()
function.
If no specific destination is supplied by the caller, message information will be written to the standard error stream.
The supplied destination is ignored if a TraceListener
is in use.
Method Detail
CallFunction
XdmValue[] arguments)
throws
ArgumentException,
DynamicError
Evaluate
throws
DynamicError
Evaluate the query, returning the result as an XdmValue
(that is,
a sequence of nodes and/or atomic values).
Returns:
XdmValue
representing the results of the query
Throws:
DynamicError
if any run-time failure
occurs while evaluating the query.EvaluateSingle
throws
DynamicError
Evaluate the query, returning the result as an XdmItem
(that is,
a single node or atomic value).
Returns:
XdmItem
representing the result of the query, or null if the query
returns an empty sequence. If the query returns a sequence of more than one item,
any items after the first are ignored.
Throws:
DynamicError
if any run-time failure
occurs while evaluating the expression.GetEnumerator
throws
DynamicError
Evaluate the query, returning the result as an IEnumerator
(that is,
an enumerator over a sequence of nodes and/or atomic values).
Returns:
XdmItem
. Note
that the query may be evaluated lazily, which means that a successful response
from this method does not imply that the query has executed successfully: failures
may be reported later while retrieving items from the iterator.
Throws:
DynamicError
if any run-time failure
occurs while evaluating the expression.Run
throws
DynamicError
Evaluate the query, sending the result to a specified destination.
Parameters:
destination
-
The destination for the results of the query. The class XmlDestination
is an abstraction that allows a number of different kinds of destination
to be specified.
Throws:
DynamicError
if any run-time failure
occurs while evaluating the expression.RunUpdate
throws
DynamicError
Execute an updating query.
Returns:
Throws:
DynamicError
if any run-time failure
occurs while evaluating the expression, or if the expression is not an
updating query.SetExternalVariable
Set the value of an external variable declared in the query.
Parameters:
name
- The name of the external variable, expressed
as a QName
. If an external variable of this name has been declared in the
query prolog, the given value will be assigned to the variable. If the
variable has not been declared, calling this method has no effect (it is
not an error).value
- The value to be given to the external variable.
If the variable declaration defines a required type for the variable, then
this value must match the required type: no conversions are applied.
Call a global user-defined function in the compiled query.
If this is called more than once (to evaluate the same function repeatedly with different arguments, or to evaluate different functions) then the sequence of evaluations uses the same values of global variables including external variables (query parameters); the effect of any changes made to query parameters between calls is undefined.
Parameters:
function
- The name of the function to be calledarguments
- The values of the arguments to be supplied to the function. These must be of the correct type as defined in the function signature (there is no automatic conversion to the required type).Throws: