## org.apache.xalan.xpath
Interface XPathSupport

All Known Subinterfaces:
  XMLParserLiaison

All Known Implementing Classes:
  XPathSupportDefault, XercesLiaison

public interface XPathSupport
extends XPathEnvSupport

**For advanced use only** Provides basic support for independent use of XPath. This interface is used in order that there may be loose coupling between the XPath package and the support services, such as the variable store, parser services, DOM implementation, etc. Most if all implementations of this should derive from XPathSupportDefault (hence, it should probably be an abstract class instead of an interface).

Field Summary
`static short` `DATASOURCE` **For advanced use only**
`static short` `ERROR` **For advanced use only**
`static short` `WARNING` **For advanced use only**
`static short` `XMLPARSER` **For advanced use only**
`static short` `XPATHPARSER` **For advanced use only**
`static short` `XPATHPROCESSOR` **For advanced use only**
`static short` `XSLTPROCESSOR` **For advanced use only**

Method Summary
`void` `addExtensionNamespace(java.lang.String uri, ExtensionFunctionHandler extNS)` **For advanced use only** Register an extension namespace handler.
`void` `beginConstruction(KeyDeclaration kd)` **For advanced use only**
`XLocator` `createXLocatorHandler()` **For advanced use only** getXLocatorHandler.
`void` `decrementContextNodePosition()` **Experimental** Decrement the current context node position.
`void` `endConstruction(KeyDeclaration kd)` **For advanced use only**
`org.w3c.dom.NodeList` `getContextNodeList()` **For advanced use only** Get the current context node list.
`int` `getContextNodePosition()` **Experimental** Get the current position in the context node list.
`org.w3c.dom.Node` `getCurrentNode()` **For advanced use only** Get the current context node.
`org.w3c.dom.Element` `getElementByID(java.lang.String id, org.w3c.dom.Document doc)` **For advanced use only** Get an element from an ID.
`org.xml.sax.ErrorHandler` `getErrorHandler()` **For advanced use only** Get the current error handler, if there is one.
`boolean` `getInConstruction(KeyDeclaration kd)` **For advanced use only**
`java.lang.String` `getLocalNameOfNode(org.w3c.dom.Node n)` **For advanced use only** Returns the local name of the given node.
`PrefixResolver` `getNamespaceContext()` **For advanced use only** Get the current namespace context for the xpath.
`java.lang.String` `getNamespaceForPrefix(java.lang.String prefix, org.w3c.dom.Element namespaceContext)` **For advanced use only** Given a namespace, get the corresponding prefix.
`java.lang.String` `getNamespaceOfNode(org.w3c.dom.Node n)` **For advanced use only** Returns the namespace of the given node.
`int` `getNodeNumber(org.w3c.dom.Node n)` **For advanced use only**
`org.w3c.dom.Node` `getParentOfNode(org.w3c.dom.Node node)` **For advanced use only** This function has to be implemented, because the DOM WG decided that attributes don't have parents.
`boolean` `getProcessNamespaces()` Deprecated.
`boolean` `getThrowFoundIndex()` **For internal use only** ThrowFoundIndex tells if FoundIndex should be thrown if index is found.
`java.lang.String` `getUnparsedEntityURI(java.lang.String name, org.w3c.dom.Document doc)` **For advanced use only** The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]).
`java.net.URL` `getURLFromString(java.lang.String urlString, java.lang.String base)` **For advanced use only** Take a user string and try and parse XML, and also return the url.
`void` `incrementContextNodePosition(org.w3c.dom.Node node)` **Experimental** Increment the current context node position.
`boolean` `isIgnorableWhitespace(org.w3c.dom.Text node)` Deprecated.
`org.w3c.dom.Document` `parseXML(java.net.URL url, org.xml.sax.DocumentHandler docHandler, org.w3c.dom.Document styleDoc)` Deprecated.
`void` `popContextNodeList()` **For internal use only** Pop the current context node list.
`void` `popContextNodePosition()` **Experimental** Pop the current context node position.
`void` `popXPathContext()` **Experimental** Pop the current XPathContext.
`boolean` `problem(short where, short classification, org.w3c.dom.Node styleNode, org.w3c.dom.Node sourceNode, java.lang.String msg, int lineNo, int charOffset)` **For advanced use only** Function that is called when a problem event occurs.
`void` `pushContextNodeList(org.w3c.dom.NodeList nl)` **For internal use only** Set the current context node list.
`void` `pushContextNodePosition()` **Experimental** Push the current context node position.
`void` `pushDummyXPathContext()` **Experimental** Push a dummy XPathContext so we can tell that the top-level xpath isn't in effect.
`void` `pushXPathContext(XPath xpath, XPathSupport execContext, org.w3c.dom.Node contextNode, PrefixResolver namespaceContext)` **Experimental** Push the current XPath selection, needed for support of the last() function in depth-first execution.
`XObject` `reExecuteXPathContext(XPath path, XPathSupport execContext, org.w3c.dom.Node context)` **Experimental** Reexecute the last xpath context after the specified one.
`void` `setContextNodePosition(int newNodePos)` **Experimental** Set the current context node position.
`void` `setCurrentNode(org.w3c.dom.Node n)` **For internal use only** Set the current context node.
`void` `setNamespaceContext(PrefixResolver pr)` **For advanced use only** Get the current namespace context for the xpath.
`void` `setProcessNamespaces(boolean processNamespaces)` Deprecated.
`void` `setThrowFoundIndex(boolean b)` **For internal use only** ThrowFoundIndex tells if FoundIndex should be thrown if index is found.
`boolean` `supportsNodeNumber(org.w3c.dom.Node n)` **For advanced use only**

Methods inherited from interface org.apache.xalan.xpath.XPathEnvSupport
`associateXLocatorToNode, deassociateXLocatorToNode, elementAvailable, extFunction, findURIFromDoc, functionAvailable, getDOMFactory, getNodeSetByKey, getSourceDocsTable, getVariable, getXLocatorFromNode, setDOMFactory, shouldStripSourceNode`

Field Detail

### WARNING

    public static final short WARNING

### ERROR

    public static final short ERROR

### XMLPARSER

    public static final short XMLPARSER

### XSLTPROCESSOR

    public static final short XSLTPROCESSOR

### XPATHPARSER

    public static final short XPATHPARSER

### XPATHPROCESSOR

    public static final short XPATHPROCESSOR

### DATASOURCE

    public static final short DATASOURCE

Method Detail

### getContextNodeList

    public org.w3c.dom.NodeList getContextNodeList()

  **For advanced use only** Get the current context node list.

### pushContextNodeList

    public void pushContextNodeList(org.w3c.dom.NodeList nl)

  **For internal use only** Set the current context node list.
  Parameters:
    `A` - nodelist that represents the current context list as defined by XPath.

### popContextNodeList

    public void popContextNodeList()

  **For internal use only** Pop the current context node list.

### getContextNodePosition

    public int getContextNodePosition()

  **Experimental** Get the current position in the context node list. Used for depth-first searching.

### incrementContextNodePosition

    public void incrementContextNodePosition(org.w3c.dom.Node node)

  **Experimental** Increment the current context node position.

### setContextNodePosition

    public void setContextNodePosition(int newNodePos)

  **Experimental** Set the current context node position.

### decrementContextNodePosition

    public void decrementContextNodePosition()

  **Experimental** Decrement the current context node position.

### pushContextNodePosition

    public void pushContextNodePosition()

  **Experimental** Push the current context node position.

### popContextNodePosition

    public void popContextNodePosition()

  **Experimental** Pop the current context node position.

### getCurrentNode

    public org.w3c.dom.Node getCurrentNode()

  **For advanced use only** Get the current context node.
  Returns:
    The current context node as defined by the XPath recommendation.

### setCurrentNode

    public void setCurrentNode(org.w3c.dom.Node n)

  **For internal use only** Set the current context node.
  Parameters:
    `n` - The current context node as defined by the XPath recommendation.

### pushXPathContext

    public void pushXPathContext(XPath xpath,
                                 XPathSupport execContext,
                                 org.w3c.dom.Node contextNode,
                                 PrefixResolver namespaceContext)

  **Experimental** Push the current XPath selection, needed for support of the last() function in depth-first execution. If the last() function is called, the originating XPath will be executed to get a count. This is ugly, and later some sort of system can be done where the XPath can finish evaluating from the current point.

### popXPathContext

    public void popXPathContext()

  **Experimental** Pop the current XPathContext.

### reExecuteXPathContext

    public XObject reExecuteXPathContext(XPath path,
                                         XPathSupport execContext,
                                         org.w3c.dom.Node context)
                                  throws org.xml.sax.SAXException

  **Experimental** Reexecute the last xpath context after the specified one.

### pushDummyXPathContext

    public void pushDummyXPathContext()

  **Experimental** Push a dummy XPathContext so we can tell that the top-level xpath isn't in effect.

### getNamespaceContext

    public PrefixResolver getNamespaceContext()

  **For advanced use only** Get the current namespace context for the xpath.
  Returns:
    An object that can resolve XPath prefixes to namespaces.

### setNamespaceContext

    public void setNamespaceContext(PrefixResolver pr)

  **For advanced use only** Get the current namespace context for the xpath.
  Parameters:
    `pr` - An object that can resolve XPath prefixes to namespaces.

### getNamespaceForPrefix

    public java.lang.String getNamespaceForPrefix(java.lang.String prefix,
                                                  org.w3c.dom.Element namespaceContext)

  **For advanced use only** Given a namespace, get the corresponding prefix.
  Parameters:
    `prefix` - A namespace prefix that is valid in the namespaceContext.
    `namespaceContext` - An element from which to evaluate the prefix resolution.
  Returns:
    A namespace, or null if it can't be resolved.

### getNamespaceOfNode

    public java.lang.String getNamespaceOfNode(org.w3c.dom.Node n)

  **For advanced use only** Returns the namespace of the given node.
  Parameters:
    `n` - The node in question.
  Returns:
    A namespace, or null if there is none.

### getLocalNameOfNode

    public java.lang.String getLocalNameOfNode(org.w3c.dom.Node n)

  **For advanced use only** Returns the local name of the given node.
  Parameters:
    `n` - The node in question.
  Returns:
    The local name of the node, or null if the node doesn't have a name.

### getParentOfNode

    public org.w3c.dom.Node getParentOfNode(org.w3c.dom.Node node)

  **For advanced use only** This function has to be implemented, because the DOM WG decided that attributes don't have parents.
  Parameters:
    `n` - The node in question.
  Returns:
    The "owner" of the node.

### isIgnorableWhitespace

    public boolean isIgnorableWhitespace(org.w3c.dom.Text node)

  Deprecated.
  **For advanced use only** Tell if the node is ignorable whitespace. This should be in the DOM. Return false if the parser doesn't handle this.

### parseXML

    public org.w3c.dom.Document parseXML(java.net.URL url,
                                         org.xml.sax.DocumentHandler docHandler,
                                         org.w3c.dom.Document styleDoc)
                                  throws org.xml.sax.SAXException

  Deprecated.
  **For advanced use only** Take given a URL, try and parse XML. the error condition is severe enough to halt processing.

### getURLFromString

    public java.net.URL getURLFromString(java.lang.String urlString,
                                         java.lang.String base)
                                  throws org.xml.sax.SAXException

  **For advanced use only** Take a user string and try and parse XML, and also return the url.
  Throws:
    XSLProcessorException - thrown if the active ProblemListener and XMLParserLiaison decide the error condition is severe enough to halt processing.

### getElementByID

    public org.w3c.dom.Element getElementByID(java.lang.String id,
                                              org.w3c.dom.Document doc)

  **For advanced use only** Get an element from an ID.

### getUnparsedEntityURI

    public java.lang.String getUnparsedEntityURI(java.lang.String name,
                                                 org.w3c.dom.Document doc)

  **For advanced use only** The getUnparsedEntityURI function returns the URI of the unparsed entity with the specified name in the same document as the context node (see [3.3 Unparsed Entities]). It returns the empty string if there is no such entity.

### setProcessNamespaces

    public void setProcessNamespaces(boolean processNamespaces)

  Deprecated.
  **For advanced use only** Set whether or not the liaison attempts to expand namespaces. Used for optimization. No longer used.

### getProcessNamespaces

    public boolean getProcessNamespaces()

  Deprecated.
  **For advanced use only** Tells if namespaces should be supported. For optimization purposes.

### addExtensionNamespace

    public void addExtensionNamespace(java.lang.String uri,
                                      ExtensionFunctionHandler extNS)

  **For advanced use only** Register an extension namespace handler. This handler provides functions for testing whether a function is known within the namespace and also for invoking the functions.
  Parameters:
    `uri` - the URI for the extension.
    `extNS` - the extension handler.

### getThrowFoundIndex

    public boolean getThrowFoundIndex()

  **For internal use only** ThrowFoundIndex tells if FoundIndex should be thrown if index is found. This is an optimization for match patterns, and is used internally by the XPath engine.

### setThrowFoundIndex

    public void setThrowFoundIndex(boolean b)

  **For internal use only** ThrowFoundIndex tells if FoundIndex should be thrown if index is found. This is an optimization for match patterns, and is used internally by the XPath engine.

### getErrorHandler

    public org.xml.sax.ErrorHandler getErrorHandler()

  **For advanced use only** Get the current error handler, if there is one.

### createXLocatorHandler

    public XLocator createXLocatorHandler()

  **For advanced use only** getXLocatorHandler.

### getInConstruction

    public boolean getInConstruction(KeyDeclaration kd)

### beginConstruction

    public void beginConstruction(KeyDeclaration kd)

### endConstruction

    public void endConstruction(KeyDeclaration kd)

### problem

    public boolean problem(short where,
                           short classification,
                           org.w3c.dom.Node styleNode,
                           org.w3c.dom.Node sourceNode,
                           java.lang.String msg,
                           int lineNo,
                           int charOffset)

  **For advanced use only** Function that is called when a problem event occurs.
  Parameters:
    `where` - Either and XMLPARSER, XSLPROCESSOR, or QUERYENGINE.
    `classification` - Either ERROR or WARNING.
    `styleNode` - The style tree node where the problem occurred. May be null.
    `sourceNode` - The source tree node where the problem occurred. May be null.
    `msg` - A string message explaining the problem.
    `lineNo` - The line number where the problem occurred, if it is known. May be zero.
    `charOffset` - The character offset where the problem, occurred if it is known. May be zero.
  Returns:
    true if the return is an ERROR, in which case exception will be thrown. Otherwise the processor will continue to process.

### supportsNodeNumber

    public boolean supportsNodeNumber(org.w3c.dom.Node n)

### getNodeNumber

    public int getNodeNumber(org.w3c.dom.Node n)

Copyright © 2000 Apache XML Project. All Rights Reserved.