Class NamePart

All Implemented Interfaces:
Serializable, SourceLocator, Container, Expression, InstructionInfoProvider

public class NamePart extends SystemFunction
This class supports the name(), local-name(), and namespace-uri() functions from XPath 1.0, and also the XSLT generate-id() function
See Also:
  • Field Details

  • Constructor Details

    • NamePart

      public NamePart()
  • Method Details

    • simplify

      public Expression simplify(StaticContext env) throws XPathException
      Simplify and validate.
      Specified by:
      simplify in interface Expression
      Overrides:
      simplify in class FunctionCall
      Parameters:
      env - the static context
      Returns:
      the simplified expression
      Throws:
      XPathException - if an error is discovered during expression rewriting
    • computeSpecialProperties

      public int computeSpecialProperties()
      Determine the special properties of this expression. The generate-id() function is a special case: it is considered creative if its operand is creative, so that generate-id(f()) is not taken out of a loop
      Overrides:
      computeSpecialProperties in class SystemFunction
    • evaluateItem

      public Item evaluateItem(XPathContext c) throws XPathException
      Evaluate the function in a string context
      Specified by:
      evaluateItem in interface Expression
      Overrides:
      evaluateItem in class ComputedExpression
      Parameters:
      c - The context in which the expression is to be evaluated
      Returns:
      the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
      Throws:
      XPathException - if any dynamic error occurs evaluating the expression
    • isGenerateIdFunction

      public static boolean isGenerateIdFunction(Expression exp)
      Test whether an expression is a call on the generate-id() function
      Parameters:
      exp - the expression to be tested
      Returns:
      true if exp is a call on generate-id(), else false