Patent ID: 7603347

Claim:
A method for processing XPath expressions, comprising the steps of: receiving an XPath expression, wherein the XPath expression is associated with a requested operation; generating, based on said XPath expression, an operator tree of the XPath expression; wherein the operator tree comprises nodes and links; wherein a subset of the nodes represents operations to be performed; wherein each link in a subset of the links between the nodes represents a flow of data between the operations that are represented by the nodes that are linked by said each link; and storing the operator tree in volatile or non-volatile memory; and applying one or more rules to the operator tree to generate data, wherein the data specifies operations which, when executed, cause a database server to perform at least a portion of the requested operation; based on the operator tree, executing the requested operation; wherein executing the requested operation includes; beginning at leaf nodes of the operator tree, performing operations associated with the leaf nodes; and passing results of operations up to parent nodes of the nodes that performed the operations; wherein passing the results includes: if the parent of a node associated with an operation is a filter, then passing results of the operation to the filter, wherein the filter filters the results with a predicate statement; and if the parent of a node associated with an operation is an operator node, then passing results of the operation to the parent and executing the operation associated with the parent on said results.