## com.icl.saxon.expr
Class PathExpression

    java.lang.Object
      com.icl.saxon.expr.Expression
          com.icl.saxon.expr.NodeSetExpression
              com.icl.saxon.expr.PathExpression

public class PathExpression
extends NodeSetExpression

An expression that establishes a set of nodes by following relationships between nodes in the document. Specifically, it consists of a start expression which defines a set of nodes, and a Step which defines a relationship to be followed from those nodes to create a new set of nodes.

Field Summary

Fields inherited from class com.icl.saxon.expr.Expression
`staticContext`

Constructor Summary
`PathExpression(Expression start, Step step)` Constructor

Method Summary
`void` `display(int level)` Diagnostic print of expression structure
`NodeEnumeration` `enumerate(Context context, boolean sort)` Evaluate the path-expression in a given context to return a NodeSet
`int` `getDependencies()` Determine which aspects of the context the expression depends on.
`boolean` `isContextDocumentNodeSet()` Determine, in the case of an expression whose data type is Value.NODESET, whether all the nodes in the node-set are guaranteed to come from the same document as the context node.
`Expression` `reduce(int dep, Context context)` Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.
`Expression` `simplify()` Simplify an expression

Methods inherited from class com.icl.saxon.expr.NodeSetExpression
`evaluate, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsString, getDataType, outputStringValue, selectFirst`

Methods inherited from class com.icl.saxon.expr.Expression
`containsReferences, evaluateAsNumber, getStaticContext, indent, make, setStaticContext, usesCurrent`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PathExpression

    public PathExpression(Expression start,
                          Step step)

  Constructor

Parameters:
  `start` - A node-set expression denoting the absolute or relative set of nodes from which the navigation path should start.
  `step` - The step to be followed from each node in the start expression to yield a new node-set

Method Detail

### simplify

    public Expression simplify()
                        throws XPathException

  Simplify an expression

  Overrides:
    `simplify` in class `Expression`
  Returns:
    the simplified expression
  Throws:
    `XPathException`

### getDependencies

    public int getDependencies()

  Determine which aspects of the context the expression depends on. The result is a bitwise-or'ed value composed from constants such as Context.VARIABLES and Context.CURRENT_NODE

  Specified by:
    `getDependencies` in class `Expression`

### isContextDocumentNodeSet

    public boolean isContextDocumentNodeSet()

  Determine, in the case of an expression whose data type is Value.NODESET, whether all the nodes in the node-set are guaranteed to come from the same document as the context node. Used for optimization.

  Overrides:
    `isContextDocumentNodeSet` in class `Expression`

### reduce

    public Expression reduce(int dep,
                             Context context)
                      throws XPathException

  Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.

  Specified by:
    `reduce` in class `Expression`
  Parameters:
    `dep` - The dependencies to be removed
    `context` - The context to be used for the partial evaluation
  Returns:
    a new expression that does not have any of the specified dependencies
  Throws:
    `XPathException`

### enumerate

    public NodeEnumeration enumerate(Context context,
                                     boolean sort)
                              throws XPathException

  Evaluate the path-expression in a given context to return a NodeSet

  Specified by:
    `enumerate` in class `NodeSetExpression`
  Parameters:
    `context` - the evaluation context
    `sort` - true if the returned nodes must be in document order
  Throws:
    `XPathException`

### display

    public void display(int level)

  Diagnostic print of expression structure

  Specified by:
    `display` in class `Expression`