java.lang.Object
org.apache.xpath.Expression
org.apache.xpath.functions.Function
org.apache.xml.security.transforms.implementations.FuncHere
All Implemented Interfaces:
Serializable, SourceLocator, org.apache.xpath.ExpressionNode, org.apache.xpath.XPathVisitable

public class FuncHere extends org.apache.xpath.functions.Function
The 'here()' function returns a node-set containing the attribute or processing instruction node or the parent element of the text node that directly bears the XPath expression. This expression results in an error if the containing XPath expression does not appear in the same XML document against which the XPath expression is being evaluated. Mainpart is stolen from FuncId.java This does crash under Xalan2.2.D7 and works under Xalan2.2.D9 To get this baby to work, a special trick has to be used. The function needs access to the Node where the XPath expression has been defined. This is done by constructing a FuncHere which has this Node as 'owner'.
See Also:
  • "http://www.w3.org/Signature/Drafts/xmldsig-core/Overview.html#function-here"
  • Serialized Form
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final long
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.xpath.objects.XObject
    execute(org.apache.xpath.XPathContext xctxt)
    The here function returns a node-set containing the attribute or processing instruction node or the parent element of the text node that directly bears the XPath expression.
    void
    fixupVariables(Vector vars, int globalsSize)
    No arguments to process, so this does nothing.

    Methods inherited from class org.apache.xpath.functions.Function

    callArgVisitors, callVisitors, checkNumberArgs, deepEquals, postCompileStep, reportWrongNumberArgs, setArg

    Methods inherited from class org.apache.xpath.Expression

    asIterator, asIteratorRaw, asNode, assertion, bool, canTraverseOutsideSubtree, error, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isSameClass, isStableNumber, num, warn, xstr

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • FuncHere

      public FuncHere()
  • Method Details

    • execute

      public org.apache.xpath.objects.XObject execute(org.apache.xpath.XPathContext xctxt) throws TransformerException
      The here function returns a node-set containing the attribute or processing instruction node or the parent element of the text node that directly bears the XPath expression. This expression results in an error if the containing XPath expression does not appear in the same XML document against which the XPath expression is being evaluated.
      Overrides:
      execute in class org.apache.xpath.functions.Function
      Parameters:
      xctxt -
      Returns:
      the xobject
      Throws:
      TransformerException
    • fixupVariables

      public void fixupVariables(Vector vars, int globalsSize)
      No arguments to process, so this does nothing.
      Specified by:
      fixupVariables in class org.apache.xpath.Expression
      Parameters:
      vars -
      globalsSize -