A method for storing an XML document of a plurality of documents, the method comprising steps of: storing in a persistent repository a persistent representation of the XML document that includes a navigable representation and a streamable representation that is separate from said navigable representation, wherein the XML document includes a tree of nodes in a hierarchical relationship, each node of the tree of nodes having an immediate hierarchical relationship with at least one other node in the tree of nodes, wherein the streamable representation contains nodes of the tree of nodes that are in document order, wherein the navigable representation contains a subset of nodes of the tree of nodes, the subset of nodes including less than all nodes of the tree of nodes, and wherein each particular node of the subset of nodes in the navigable representation contains a pointer to content, of said particular node, that is contained in the streamable representation and at least one pointer to another node of the subset of nodes in the navigable representation, wherein each of said pointers of said particular node in the navigable representation is an absolute address or an offset address, and said at least one pointer to the other node in the navigable representation is one of: a pointer to a parent node of said particular node, a pointer to a child node of said particular node, a pointer to a sibling node of said particular node, or a pointer to a previous sibling node of said particular node; wherein the steps are performed by one or more computing devices. storing in a persistent repository a persistent representation of the XML document that includes a navigable representation and a streamable representation that is separate from said navigable representation, wherein the XML document includes a tree of nodes in a hierarchical relationship, each node of the tree of nodes having an immediate hierarchical relationship with at least one other node in the tree of nodes, wherein the streamable representation contains nodes of the tree of nodes that are in document order, wherein the navigable representation contains a subset of nodes of the tree of nodes, the subset of nodes including less than all nodes of the tree of nodes, and wherein each particular node of the subset of nodes in the navigable representation contains a pointer to content, of said particular node, that is contained in the streamable representation and at least one pointer to another node of the subset of nodes in the navigable representation, wherein each of said pointers of said particular node in the navigable representation is an absolute address or an offset address, and said at least one pointer to the other node in the navigable representation is one of: a pointer to a parent node of said particular node, a pointer to a child node of said particular node, a pointer to a sibling node of said particular node, or a pointer to a previous sibling node of said particular node; wherein the XML document includes a tree of nodes in a hierarchical relationship, each node of the tree of nodes having an immediate hierarchical relationship with at least one other node in the tree of nodes, wherein the streamable representation contains nodes of the tree of nodes that are in document order, wherein the navigable representation contains a subset of nodes of the tree of nodes, the subset of nodes including less than all nodes of the tree of nodes, and wherein each particular node of the subset of nodes in the navigable representation contains a pointer to content, of said particular node, that is contained in the streamable representation and at least one pointer to another node of the subset of nodes in the navigable representation, wherein each of said pointers of said particular node in the navigable representation is an absolute address or an offset address, and said at least one pointer to the other node in the navigable representation is one of: a pointer to a parent node of said particular node, a pointer to a child node of said particular node, a pointer to a sibling node of said particular node, or a pointer to a previous sibling node of said particular node; each of said pointers of said particular node in the navigable representation is an absolute address or an offset address, and said at least one pointer to the other node in the navigable representation is one of: a pointer to a parent node of said particular node, a pointer to a child node of said particular node, a pointer to a sibling node of said particular node, or a pointer to a previous sibling node of said particular node; a pointer to a parent node of said particular node, a pointer to a child node of said particular node, a pointer to a sibling node of said particular node, or a pointer to a previous sibling node of said particular node; wherein the steps are performed by one or more computing devices.