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 valueCollectionURIResolvergetCollectionURIResolver()Get the CollectionURIResolver used for resolving references to collections.ItemgetContextItem()Get the context itemjavax.xml.transform.ErrorListenergetErrorListener()Get the error listener.javax.xml.transform.URIResolvergetURIResolver()Get the URI resolver.XPathContextgetXPathContextObject()For system use: get the wrapped XPathContext objectvoidsetCollectionURIResolver(CollectionURIResolver resolver)Set the CollectionURIResolver used for resolving collection URIs.voidsetContextItem(Item item)Set the context item for evaluation of the XPath ExpressionvoidsetContextNode(javax.xml.transform.Source source)Set the context item to a node derived from a supplied Source object.voidsetErrorListener(javax.xml.transform.ErrorListener listener)Set the error listener.voidsetURIResolver(javax.xml.transform.URIResolver resolver)Set an object that will be used to resolve URIs used in document(), etc.voidsetVariable(XPathVariable variable, ValueRepresentation 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
-
setContextNode
public void setContextNode(javax.xml.transform.Source source) throws XPathExceptionSet the context item to a node derived from a supplied Source object. This may be any implementation of the Source interface recognized by Saxon. Note that the SaxonNodeInfointerface, representing a node in a tree, is one such implementation; others includeStreamSource,SAXSource, andDOMSource- Parameters:
source- The source object representing the node that will be used as the context item- Throws:
XPathException- if a failure occurs reading or parsing a Source object to build an input tree, or if the source is a document that was built under the wrong configuration
-
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, ValueRepresentation value) throws XPathException
Set the value of an external variable used within the XPath expression- Parameters:
variable- the object representing the variable, as returned by theXPathEvaluator.declareVariable(String, String)method. 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.- Parameters:
resolver- An object that implements the URIResolver interface, or null.- Since:
- 9.2
-
getURIResolver
public javax.xml.transform.URIResolver getURIResolver()
Get the URI resolver.- Returns:
- the user-supplied URI resolver if there is one, or null otherwise.
- Since:
- 9.2
-
setCollectionURIResolver
public void setCollectionURIResolver(CollectionURIResolver resolver)
Set the CollectionURIResolver used for resolving collection URIs. Defaults to the CollectionURIResolver registered with the Configuration- Parameters:
resolver- the resolver for references to collections- Since:
- 9.4
-
getCollectionURIResolver
public CollectionURIResolver getCollectionURIResolver()
Get the CollectionURIResolver used for resolving references to collections. If none has been set on the Controller, returns the CollectionURIResolver registered with the Configuration- Returns:
- the resolver for references to collections
- Since:
- 9.4
-
setErrorListener
public void setErrorListener(javax.xml.transform.ErrorListener listener)
Set the error listener.- Parameters:
listener- the ErrorListener to be used- Since:
- 9.2
-
getErrorListener
public javax.xml.transform.ErrorListener getErrorListener()
Get the error listener.- Returns:
- the ErrorListener in use
- Since:
- 9.2
-
getXPathContextObject
public XPathContext getXPathContextObject()
For system use: get the wrapped XPathContext object- Returns:
- the underlying XPathContext object
-
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
-
-