Package net.sf.saxon.sxpath
Class XPathDynamicContext
- java.lang.Object
-
- net.sf.saxon.sxpath.XPathDynamicContext
-
public class XPathDynamicContext extends java.lang.ObjectThis object represents the dynamic XPath execution context for use in the free-standing Saxon XPath API. The dynamic context holds the context item and the values of external variables used by the XPath expression.This object is always created via the method
XPathExpression.createDynamicContext(net.sf.saxon.om.Item)
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedXPathDynamicContext(ItemType contextItemType, XPathContextMajor contextObject, SlotManager stackFrameMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcheckExternalVariables(SlotManager stackFrameMap, int numberOfExternals)Check that all external variables have been given a valueCollectionFindergetCollectionFinder()Get the collection finder associated with this configuration.ItemgetContextItem()Get the context itemErrorReportergetErrorReporter()Get the error listener.UnparsedTextURIResolvergetUnparsedTextURIResolver()Get the URI resolver for unparsed text.javax.xml.transform.URIResolvergetURIResolver()Get the URI resolver.XPathContextgetXPathContextObject()For system use: get the wrapped XPathContext objectvoidsetCollectionFinder(CollectionFinder cf)Set the collection finder associated with this configuration.voidsetContextItem(Item item)Set the context item for evaluation of the XPath ExpressionvoidsetErrorReporter(ErrorReporter listener)Set the error listener.voidsetUnparsedTextURIResolver(UnparsedTextURIResolver resolver)Set an object that will be used to resolve URIs used in fn:unparsed-text() and related functions.voidsetURIResolver(javax.xml.transform.URIResolver resolver)Set an object that will be used to resolve URIs used in document(), etc.voidsetVariable(XPathVariable variable, Sequence value)Set the value of an external variable used within the XPath expression
-
-
-
Constructor Detail
-
XPathDynamicContext
protected XPathDynamicContext(ItemType contextItemType, XPathContextMajor contextObject, SlotManager stackFrameMap)
-
-
Method Detail
-
setContextItem
public void setContextItem(Item item) throws XPathException
Set the context item for evaluation of the XPath Expression- Parameters:
item- the context item- Throws:
XPathException- if the node is in a document that was built under the wrong configuration
-
getContextItem
public Item getContextItem()
Get the context item- Returns:
- the context item if there is one, or null otherwise
-
setVariable
public void setVariable(XPathVariable variable, Sequence value) throws XPathException
Set the value of an external variable used within the XPath expression- Parameters:
variable- the object representing the variable. Note that setting the value of a variable does not modify theXPathVariableobject itself, which means that this method is thread-safe.value- The value of the variable.- Throws:
XPathException- if the supplied value does not conform to the required type of the variable; or if the supplied value contains a node that does not belong to this Configuration (or another Configuration that shares the same namePool)
-
setURIResolver
public void setURIResolver(javax.xml.transform.URIResolver resolver)
Set an object that will be used to resolve URIs used in document(), etc. The URIResolver is set locally to this XPathContext object.- Parameters:
resolver- An object that implements the URIResolver interface, or null.- Since:
- 9.2. Changed in 9.6 to set the URIResolver locally.
-
getURIResolver
public javax.xml.transform.URIResolver getURIResolver()
Get the URI resolver.- Returns:
- the user-supplied URI resolver if there is one, or null otherwise. If no URIResolver has been set locally, the URIResolver in the Controller is returned; this in turn defaults to the URIResolver set in the Configuration.
- Since:
- 9.2. Changed in 9.6 to use a local URIResolver.
-
getCollectionFinder
public CollectionFinder getCollectionFinder()
Get the collection finder associated with this configuration. This is used to dereference collection URIs used in the fn:collection and fn:uri-collection functions- Returns:
- the CollectionFinder to be used
- Since:
- 9.7
-
setCollectionFinder
public void setCollectionFinder(CollectionFinder cf)
Set the collection finder associated with this configuration. This is used to dereference collection URIs used in the fn:collection and fn:uri-collection functions- Parameters:
cf- the CollectionFinder to be used- Since:
- 9.7
-
setErrorReporter
public void setErrorReporter(ErrorReporter listener)
Set the error listener. The ErrorListener is set locally to this XPathContext object.- Parameters:
listener- the ErrorListener to be used- Since:
- 9.2. Changed in 9.6 to set the ErrorListener locally. Changed in 10.0 to use an ErrorReporter rather than an ErrorListener
-
getErrorReporter
public ErrorReporter getErrorReporter()
Get the error listener. If no ErrorListener has been set locally, the ErrorListener in the Controller is returned; this in turn defaults to the ErrorListener set in the Configuration.- Returns:
- the ErrorListener in use. This will always be an UnfailingErrorListener, which is a Saxon subclass of ErrorListener that throws no exceptions.
- Since:
- 9.2. Changed in 9.6 to use a local ErrorListener. Changed in 10.0 to use an ErrorReporter rather than an ErrorListener
-
getXPathContextObject
public XPathContext getXPathContextObject()
For system use: get the wrapped XPathContext object- Returns:
- the underlying XPathContext object
-
setUnparsedTextURIResolver
public void setUnparsedTextURIResolver(UnparsedTextURIResolver resolver)
Set an object that will be used to resolve URIs used in fn:unparsed-text() and related functions.- Parameters:
resolver- An object that implements the UnparsedTextURIResolver interface, or null.- Since:
- 9.5
-
getUnparsedTextURIResolver
public UnparsedTextURIResolver getUnparsedTextURIResolver()
Get the URI resolver for unparsed text.- Returns:
- the user-supplied unparsed text URI resolver if there is one, or the system-defined one otherwise
- Since:
- 9.5
-
checkExternalVariables
protected void checkExternalVariables(SlotManager stackFrameMap, int numberOfExternals) throws XPathException
Check that all external variables have been given a value- Parameters:
stackFrameMap- describes the stack framenumberOfExternals- the number of variables that need to be supplied- Throws:
XPathException- if required variables have not been given a value
-
-