Package net.sf.saxon.sxpath
Class XPathDynamicContext
- java.lang.Object
-
- net.sf.saxon.sxpath.XPathDynamicContext
-
public class XPathDynamicContext extends java.lang.Object
This 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 protected
XPathDynamicContext(ItemType contextItemType, XPathContextMajor contextObject, SlotManager stackFrameMap)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
checkExternalVariables(SlotManager stackFrameMap, int numberOfExternals)
Check that all external variables have been given a valueCollectionURIResolver
getCollectionURIResolver()
Get the CollectionURIResolver used for resolving references to collections.Item
getContextItem()
Get the context itemjavax.xml.transform.ErrorListener
getErrorListener()
Get the error listener.javax.xml.transform.URIResolver
getURIResolver()
Get the URI resolver.XPathContext
getXPathContextObject()
For system use: get the wrapped XPathContext objectvoid
setCollectionURIResolver(CollectionURIResolver resolver)
Set the CollectionURIResolver used for resolving collection URIs.void
setContextItem(Item item)
Set the context item for evaluation of the XPath Expressionvoid
setContextNode(javax.xml.transform.Source source)
Set the context item to a node derived from a supplied Source object.void
setErrorListener(javax.xml.transform.ErrorListener listener)
Set the error listener.void
setURIResolver(javax.xml.transform.URIResolver resolver)
Set an object that will be used to resolve URIs used in document(), etc.void
setVariable(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 XPathException
Set 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 SaxonNodeInfo
interface, 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 theXPathVariable
object 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
-
-