Patent ID: 7836098

Claim:
A method comprising machine steps including: for each particular node of a set of one or more nodes in a markup language document, storing an entry for the particular node in a first index; and for each complex node that is in the set of nodes and has one or more child nodes, performing steps comprising: identifying all simple nodes that are descendants of the complex node and that have no child nodes; generating, based on the values of a plurality of the simple nodes, a representative node value for the complex node; and associating the representative node value with an index entry in the first index for the particular complex node; receiving a query conforming to a query language, wherein the query specifies a path-based expression and a target value; identifying a set of entries in the first index that are associated with one or more nodes to which the path-based expression refers; identifying, from the set of entries, a target entry having a representative node value that matches the target value; returning a node associated with the target entry; and wherein the steps are performed by one or more computing devices.