Remote document updating system using XML and DOM
First Claim
1. In a system comprising a local processing device having a processor, a memory for maintaining a local document, a transmission link to a remote processing device, and a remote processing device having a processor and storage within which a remote document is maintained, a method for updating at least a portion of data elements of said remote document in accordance with mutations made to a local document comprising the steps of:
- loading at least a portion of the structure of said remote document into a local processing device as an XML document;
creating a logical document object model (DOM) having a plurality of nodes arranged in a logical hierarchical structure such that each said node corresponds to an XML tag and data element in said XML document;
mutating said XML document by adding, deleting, or modifying one or more of said data elements;
updating said DOM to conform to said mutations to said XML document;
creating an entry in a first event table corresponding to each said mutation to said XML document, each said entry comprising at least a path to a node in said DOM affected by said mutation and an event type;
processing said first event table to create a second event table that will contain the smallest number of mutation events necessary to update said remote document such that, following the updating of said remote document, mutated data elements in said modified XML document will have corresponding data elements of the same value in said remote document;
transmitting said second event table and related data from said local device to said remote device; and
mutating said remote document in accordance with events in said second event table and related data such that said remote document will have corresponding data elements of the same value as mutated data elements in said modified XML document.
5 Assignments
0 Petitions
Accused Products
Abstract
In a system comprising a local processing device, a transmission link to a remote processing device, and a remote processing device, a method for updating a remote document in accordance with mutations made to a portion of the remote document maintained on the local processing device comprising the steps of loading at least a portion of the remote document into the local processing device as a local XML document, creating a logical document object model (DOM) having a plurality of nodes arranged in a logical hierarchical structure such that each node corresponds to an XML tag and data element in the XML document, mutating the XML document by adding, deleting, or modifying one or more of its data elements, updating the DOM to conform to the mutations to the XML document, creating a first event table that contains events corresponding to each mutation to the XML document where each entry comprises a path to a node in the DOM affected by the mutation and an event type, processing the first event table to create a second event table that contains the smallest number of events necessary to update the remote document to conform to the local XML document, transmitting the second event table and related data from the local device to the remote device, and mutating the remote document in accordance with events in said second event table and related data such that said remote document will have corresponding data elements of the same value as mutated data elements in the modified local XML document.
135 Citations
21 Claims
-
1. In a system comprising a local processing device having a processor, a memory for maintaining a local document, a transmission link to a remote processing device, and a remote processing device having a processor and storage within which a remote document is maintained, a method for updating at least a portion of data elements of said remote document in accordance with mutations made to a local document comprising the steps of:
-
loading at least a portion of the structure of said remote document into a local processing device as an XML document;
creating a logical document object model (DOM) having a plurality of nodes arranged in a logical hierarchical structure such that each said node corresponds to an XML tag and data element in said XML document;
mutating said XML document by adding, deleting, or modifying one or more of said data elements;
updating said DOM to conform to said mutations to said XML document;
creating an entry in a first event table corresponding to each said mutation to said XML document, each said entry comprising at least a path to a node in said DOM affected by said mutation and an event type;
processing said first event table to create a second event table that will contain the smallest number of mutation events necessary to update said remote document such that, following the updating of said remote document, mutated data elements in said modified XML document will have corresponding data elements of the same value in said remote document;
transmitting said second event table and related data from said local device to said remote device; and
mutating said remote document in accordance with events in said second event table and related data such that said remote document will have corresponding data elements of the same value as mutated data elements in said modified XML document. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
creating a sorted event table by alphabetically sorting events in said first event table according to the XQL path of each said event, and secondarily sorting identical XQL paths by date and time, such that paths to identical nodes in the DOM will be listed with the first event in time being ahead of events later in time, and nodes on the same branch of said DOM will be grouped together such that shorter XQL paths will be listed ahead of longer XQL paths on the same branch, and nodes on a common XQL branch will be listed as a group;
processing events in said sorted event table in order by determining the type of event as being a delete event, an add event, or a modify event;
and if said event is a delete event, saving said delete event and its XQL path to said second event table as a delete event;
and, if said event is an add event, determining whether the node corresponding to said add event was thereafter the subject of a delete event, and if said node was thereafter the subject of a delete event, discarding said add event and saving said delete event and its XQL path to said second event table as a delete event, and if said node was not thereafter the subject of a delete event, saving said add event and its XQL path to said second event table as an add event;
and if said event is a modify event, determining whether the node corresponding to said modify event was thereafter the subject of a delete event, and if said node was thereafter the subject of a delete event, discarding said modify event and saving said delete event and its XQL path to said second event table as a delete event, and if said node was not thereafter the subject of a delete event, determining whether said node was the subject of an earlier add event or modify event, and if said node was the subject of an earlier add event or modify event, discarding said modify event, and if said node was not the subject of an earlier add event or modify event, saving said modify event to said second event table as a modify event.
-
-
3. The method for updating a remote document as claimed in claim 2 in which the step of transmitting said second event table and related data from said local device to said remote device comprises the further steps of:
-
retrieving from said DOM a data value related to each add or modify event in said second event table;
transmitting over said transmission link to said remote processing device the XQL path for each event in said second event table, the type of event and, for each said event that is an add or modify event, said data value related to said add or modify event.
-
-
4. The method for updating a remote document as claimed in claim 3 wherein said first processing device comprises a hand held device.
-
5. The method for updating a remote document as claimed in claim 3 wherein said first processing device comprises a cellular telephone.
-
6. The method for updating a remote document as claimed in claim 3 wherein said transmission link is a wireless communication link.
-
7. The method for updating remote document as claimed in claim 3 wherein said transmission link utilizes a medium having a maximum transmission rate of approximately 56 kbps.
-
8. The method for updating a remote document as claimed in claim 3 wherein said transmission link is conventional telephone lines.
-
9. The method for updating a remote document as claimed in claim 3 wherein said transmission link is a computer network.
-
10. A method for updating a remote document on a remote processing device from a local processing device comprising the steps of:
-
copying at least a relevant portion of said remote document onto said local processing device;
formatting said relevant portion of said remote document on said local device as an XML document;
creating a DOM corresponding to said XML document;
mutating to said XML document by adding, deleting, or modifying data elements in said XML document;
recording the type of each said mutation to said XML document in a first list together with information corresponding to the location in said DOM of said mutation;
processing said first list to determine the smallest number of mutations required to update said remote document such that, following said update, there is a data element in said remote document corresponding to each data element in said XML document;
creating a second list in which each entry corresponds to a mutation determined to be one of said smallest number of mutations required to update said remote document;
transmitting said second list and related data to said remote processing device such that said remote document may be updated in accordance with the entries in said second list. - View Dependent Claims (11, 12, 13)
sorting said first list to cause the entries in said first list to be placed in primary groups according to the location and path length of said data elements in a branch of said DOM, and secondary groups within said primary groups according to the date and time of each entry in said first list;
creating said second list be taking successive entries in said first list and determining whether each said entry represents a delete event, an add event, or a modify event;
and if said entry represents a delete event, saving said delete event and its XQL path to said second list and ignoring all other events related to nodes in the DOM located at or below the node related to said delete event;
and if said entry represents an add event occurring at a node that is not also the subject of a delete event, saving said add event and its XQL path to said second list and ignoring all other events related to nodes located at the same XQL path;
and if said entry represents a first modify event occurring at a node that is not also the subject of an add or delete event, saving said modify event and its XQL path to said second list and ignoring all other events located at the same XQL path;
and if said entry represents a modify event occurring at a node that has been the subject of an earlier delete, add, or modify event, discarding said modify event.
-
-
14. Apparatus for updating a remote document comprising:
-
a remote processing device comprising a remote machine readable storage for storing a remote document;
a local processing device connected to said remote device by a transmission link, said local device comprising a local machine readable storage having stored thereon a local document, said local document comprising at least a portion of said remote document;
said local machine readable storage maintaining said local document as an XML document, said XML document having XML tags, each XML tag corresponding to one of said data elements;
processor means for creating a DOM to be maintained in said local machine readable storage, said DOM having an interface with said XML document such that each said XML tag corresponds to a node in said DOM and each said node has the same value as the data element corresponding to said XML tag;
processor means for updating said DOM to correspond to mutations made to said XML document such that additions, deletions or modifications to said data elements in said XML document cause corresponding additions, deletions or modifications to nodes of said DOM;
a keypad for entering mutations to said XML document;
storage means for recording said mutations as events in an event table, such that each event in said event table comprises a path to the node of said DOM corresponding to said event and an identifier of said event as an addition, deletion, or modification;
processor means for parsing said event table to create a second event list comprising the smallest number of events that will update said remote database;
a transmission link to said remote device;
remote processor means for updating said remote database in accordance with events contained in said second event list. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
Specification