Class XalanXPathAPI

java.lang.Object
org.apache.xml.security.utils.XalanXPathAPI
All Implemented Interfaces:
XPathAPI

public class XalanXPathAPI extends Object implements XPathAPI
An implementation of XPathAPI using Xalan. This supports the "here()" function defined in the digital signature spec.
  • Field Details

    • LOG

      private static final org.slf4j.Logger LOG
    • xpathStr

      private String xpathStr
    • xpath

      private org.apache.xpath.XPath xpath
    • funcTable

      private static org.apache.xpath.compiler.FunctionTable funcTable
    • installed

      private static boolean installed
    • context

      private org.apache.xpath.XPathContext context
  • Constructor Details

    • XalanXPathAPI

      public XalanXPathAPI()
  • Method Details

    • selectNodeList

      public NodeList selectNodeList(Node contextNode, Node xpathnode, String str, Node namespaceNode) throws TransformerException
      Use an XPath string to select a nodelist. XPath namespace prefixes are resolved from the namespaceNode.
      Specified by:
      selectNodeList in interface XPathAPI
      Parameters:
      contextNode - The node to start searching from.
      xpathnode -
      str -
      namespaceNode - The node from which prefixes in the XPath will be resolved to namespaces.
      Returns:
      A NodeIterator, should never be null.
      Throws:
      TransformerException
    • evaluate

      public boolean evaluate(Node contextNode, Node xpathnode, String str, Node namespaceNode) throws TransformerException
      Evaluate an XPath string and return true if the output is to be included or not.
      Specified by:
      evaluate in interface XPathAPI
      Parameters:
      contextNode - The node to start searching from.
      xpathnode - The XPath node
      str - The XPath expression
      namespaceNode - The node from which prefixes in the XPath will be resolved to namespaces.
      Throws:
      TransformerException
    • clear

      public void clear()
      Clear any context information from this object
      Specified by:
      clear in interface XPathAPI
    • isInstalled

      public static boolean isInstalled()
    • eval

      private org.apache.xpath.objects.XObject eval(Node contextNode, Node xpathnode, String str, Node namespaceNode) throws TransformerException
      Throws:
      TransformerException
    • createXPath

      private org.apache.xpath.XPath createXPath(String str, org.apache.xml.utils.PrefixResolver prefixResolver) throws TransformerException
      Throws:
      TransformerException
    • fixupFunctionTable

      private static void fixupFunctionTable()