11. The computer system of claim 9 , wherein the different type of node data is selected from a group consisting of an element node, a text node, and an attribute node.
9. A computer system for creating a compact tree node representation of an extensible markup language (XML) document, comprising: a computer processor to execute a set of program code instructions; and a memory to hold the program code instructions, in which the program code instructions comprises program code to perform, creating a compact tree node representation of an extensible markup language (XML) document by: allocating a first portion of memory of a main memory of a computer to store a first memory block for storing an in-memory instance of an XML tree index data structure for the XML document, the in-memory instance of the XML tree index data structure comprising an array of rows in which each row holds a node identifier, one or more pointers referencing to one or more children nodes, and not comprising node data, wherein the node data are contents of the XML document corresponding to respective nodes; allocating a second portion of the memory of the main memory of the computer to store one or more separate data structures for storing at least a portion of the node data for the XML document, the one or more separate data structures each storing a different type of node data; traversing the XML document from a first node to a final node and through at least one intermediate node; and processing traversed nodes of the XML document, the processing comprising: in determining a traversed node is an element node, adding the element node to the first portion of the main memory and copying an element name of the element node into the one or more separate data structures for storing at least a portion of the node data; in determining the traversed node is a text node, populating a text node index into the first portion of the main memory and copying text node values into the one or more separate data structures for storing at least a portion of the node data, the text node values copied being accessible via the text node index; in determining the traversed node is an attribute node, populating an attribute node index into the first portion of the main memory and copying an attribute name and attribute value into the one or more separate data structures, the attribute value copied being accessible via the attribute node index.