14. The system of claim 9 , wherein responses to requests for atomic updates to the XML document do not involve copying the contents of any partitions, unless a determination is made that a given partition's contents are changed as a result of a respective atomic update and the commit level associated with that given partition does not match the current commit level.
9. A system for processing XML documents, comprising: processing resources including at least one processor, a memory, and a non-transitory computer readable storage medium; wherein the processing resources are configured to: parse an XML document into a plurality of constituent nodes, the XML document including a plurality of Document Object Model (DOM) objects representable in accordance with an object model; store the parsed constituent nodes and associated metadata in a plurality of partitions, wherein a first node of the parsed constituent nodes and associated metadata is stored in a first partition of the plurality of partitions and a second node of the parsed constituent nodes and associated metadata is stored in a second partition of the plurality of partitions, and each said partition having an associated commit level that initially is set to 0; store, for each said partition, an identifier thereof in a partition table list, the identifier(s) in the partition table list collectively identifying the working contents of the XML document, the partition table list initially being designated as a current partition table list and initially being designated as having a current commit level of 0; in response to a request for an atomic update to the XML document: push onto a stack, configured to hold one or more previous partition table lists, a copy of the current partition table list; increment the current commit level; determine whether a given partition's contents are changed as a result of the atomic update and whether the commit level associated with the given partition does not match the current commit level; and when a given partition's contents are changed as a result of the atomic update and the commit level associated with the given partition does not match the current commit level, copy the given partition's contents to create a new partition with the changed contents and replace the identifier for the given partition in the current partition table list with an identifier for the new partition; and in response to an atomic update being completed: pop from the stack the uppermost partition table list, the popped partition table list being a candidate partition table list; determine partitions in the current partition table list that have associated commit levels that match the current commit level into the candidate partition table list; copy identifiers for any partitions in the current partition table list that have associated commit levels that match the current commit level into the candidate partition table list; replace the current partition table list with the candidate list; and decrement the current commit level.