Synchronizing a client and server version of a hierarchical data structure
having several atomically-editable components. At synchronization time,
the server identifies all of the changes that need to occur to the client
version in order to properly synchronize the client version of the
hierarchical document with the server version. Each of the changes
involves edits of one or more of the atomically-editable components of
the data structure. The server fragments the synchronization information
into multiple messages, and then individually sends the message to the
client computing system. The client atomically processes each of the
messages. For each change to be made as identified within a single
message, the client computing system identifies the atomically-editable
components that are involved by the change, and then edits (e.g.,
inserts, changes, or deletes) the atomically-editable components in a
specified manner.