Class Id

All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, Locator

public class Id extends SystemFunction
The XPath id() function XPath 2.0 version: accepts any sequence as the first parameter; each item in the sequence is taken as an IDREFS value, that is, a space-separated list of ID values. Also accepts an optional second argument to identify the target document, this defaults to the context node.
See Also:
  • Constructor Details

    • Id

      public Id()
  • Method Details

    • simplify

      public Expression simplify(ExpressionVisitor visitor) throws XPathException
      Simplify: add a second implicit argument, the context document
      Overrides:
      simplify in class FunctionCall
      Parameters:
      visitor - an expression visitor
      Returns:
      the simplified expression
      Throws:
      XPathException - if an error is discovered during expression rewriting
    • checkArguments

      public void checkArguments(ExpressionVisitor visitor) throws XPathException
      Static analysis: prevent sorting of the argument
      Overrides:
      checkArguments in class SystemFunction
      Parameters:
      visitor - the expression visitor
      Throws:
      XPathException
    • preEvaluate

      public Expression preEvaluate(ExpressionVisitor visitor)
      preEvaluate: this method suppresses compile-time evaluation by doing nothing
      Overrides:
      preEvaluate in class FunctionCall
      Parameters:
      visitor - an expression visitor
      Returns:
      the result of the early evaluation, or the original expression, or potentially a simplified expression
    • computeSpecialProperties

      public int computeSpecialProperties()
      Get the static properties of this expression (other than its type). The result is bit-signficant. These properties are used for optimizations. In general, if property bit is set, it is true, but if it is unset, the value is unknown.
      Overrides:
      computeSpecialProperties in class SystemFunction
      Returns:
      the special properties, as a bit-significant integer
    • addToPathMap

      public PathMap.PathMapNodeSet addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
      Add a representation of a doc() call or similar function to a PathMap. This is a convenience method called by the addToPathMap() methods for doc(), document(), collection() and similar functions. These all create a new root expression in the path map.
      Overrides:
      addToPathMap in class Expression
      Parameters:
      pathMap - the PathMap to which the expression should be added
      pathMapNodeSet -
      Returns:
      the pathMapNode representing the focus established by this expression, in the case where this expression is the first operand of a path expression or filter expression
    • iterate

      public SequenceIterator iterate(XPathContext context) throws XPathException
      Evaluate the function to return an iteration of selected nodes.
      Specified by:
      iterate in interface SequenceIterable
      Overrides:
      iterate in class Expression
      Parameters:
      context - supplies the context for evaluation
      Returns:
      a SequenceIterator that can be used to iterate over the result of the expression
      Throws:
      XPathException - if any dynamic error occurs evaluating the expression
    • getIdSingle

      public static SequenceIterator getIdSingle(DocumentInfo doc, String idrefs) throws XPathException
      Get an iterator over the nodes that have an id equal to one of the values is a whitespace separated string
      Parameters:
      doc - The document to be searched
      idrefs - a string containing zero or more whitespace-separated ID values to be found in the document
      Returns:
      an iterator over the nodes whose ID is one of the specified values
      Throws:
      XPathException
    • getIdMultiple

      public static SequenceIterator getIdMultiple(DocumentInfo doc, SequenceIterator idrefs) throws XPathException
      Get an iterator over the nodes that have an id equal to one of the values is a set of whitespace separated strings
      Parameters:
      doc - The document to be searched
      idrefs - an iterator over a set of strings each of which is a string containing zero or more whitespace-separated ID values to be found in the document
      Returns:
      an iterator over the nodes whose ID is one of the specified values
      Throws:
      XPathException