In the AST there are two types of paths:
The Attribute Path is simply a path to an attribute (e.g. name.firstName
) and implements the AST\Path
interface as it is not a node by itself. For instance, the attribute path is part of a value path.
The Value Path implements both the AST\Path
and AST\Node
interfaces and is a node by itself. It not only dictates a path to an attribute but also a set of conditions (e.g. name[givenName eq "John"].familyName
to get all family names of people named "John").