An XPath expression is converted into a tree-based representation where
each node represents an operation to be performed and the links between
nodes in the tree represent the flow of data between operations. The
conversion may involve creating a parse tree for the XPath expression,
and then converting the parse tree into an operator tree. The operator
tree is constructed in such a way that execution of the XPath expression
begins at the leaf nodes of the operator tree, and the results are then
passed up the tree. After each node is executed, the results are either
(1) passed to a filter that filters the results with a predicate
statement or (2) passed to another node to be operated upon. This occurs
until no nodes remain to be executed.