Maintenance of a markup language document in a database
First Claim
1. A method for converting a document encoded in a markup language into a format for mapping to a database table, the method including the steps of:
- replacing the content of at least one node in said document stored in a first storage unit with a placeholder and storing said replaced content in a separate data storage unit associated with the corresponding node, the node being an instance of a node element selected from a node element set; and
modifying a formal definition of markup rules associated with said document to recognise said placeholder.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, an apparatus and a computer program product for converting an XML encoded document into an equivalent SQL table are provided. An arbitrary XML DTD may be converted into an equivalent form by means of which individual node documents stored in the SQL table may be directly accessed. The SQL table is able to be converted back into an XML document of similar structure to the original document from which the table was derived. A set of operations which can be performed on the SQL table is also disclosed. An arbitrarily complex XML document may be broken into suitably sized portions, each of which can be managed independently as a standalone XML document without compromising the validity of the document as a whole. The management of these portions takes advantage of the speed, robustness and maturity of RDBMS systems, while maintaining the hierarchical structure inherent in all XML documents.
185 Citations
57 Claims
-
1. A method for converting a document encoded in a markup language into a format for mapping to a database table, the method including the steps of:
-
replacing the content of at least one node in said document stored in a first storage unit with a placeholder and storing said replaced content in a separate data storage unit associated with the corresponding node, the node being an instance of a node element selected from a node element set; and
modifying a formal definition of markup rules associated with said document to recognise said placeholder. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. An apparatus for converting a document encoded in a markup language into a format for mapping to a database table, said apparatus including:
-
means for replacing the content of at least one node in said document stored in a first storage unit with a placeholder and storing said replaced content in a separate data storage unit associated with the corresponding node, the node being an instance of a node element selected from a node element set; and
means for modifying a formal definition of markup rules associated with said document to recognise said placeholder. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A computer program product having a computer readable medium having a computer program recorded therein for converting a document encoded in a markup language into a format for mapping to a database table, said computer program product including:
-
computer program code means for replacing the content of at least one node in said document stored in a first storage unit with a placeholder and storing said replaced content in a separate data storage unit associated with the corresponding node, the node being an instance of a node element selected from a node element set; and
computer program code means for modifying a formal definition of markup rules associated with said document to recognise said placeholder. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method for converting an eXtensible Markup Language (XML) encoded document into an equivalent Structured Query Language (SQL) table structure, the method including the steps of:
-
determining a node element set for said XML encoded document, wherein each node element in said node element set is a discrete level of said document;
determining one or more nodes of said XML encoded document, each node being an instance of a node element;
allocating to each node a unique node identifier; and
assembling the XML content of each node by performing the flyer steps of;
assembling XML content of the corresponding node element;
creating a separate sub-document for each node by inserting as a prefix a standard XML processing instruction, plus a DOCTYPE declaration, where the DOCTYPE element is the node element, and the public ID is the same as that of the original DTD, except that the word MALTbase is inserted as a prefix to the descriptor;
replacing any sub-node elements with equivalent empty placeholder elements in which the namespace MALTbase;
has been inserted as a prefix to a element name, wherein the only non-fixed attribute is a child ID, being the ID of the sub-node relative to all other sub-nodes within the sub-node'"'"'s parent;
endconstructing a node table record to hold the content. - View Dependent Claims (52)
-
-
50. A method for converting an eXtensible Markup Language (XML) Document Type Definition (DTD) into a form suitable for accessing preprocessed node content, said method comprising the steps of:
-
declaring a new MALTbase empty placeholder element for each node element in the node element set;
modifying each content model referring to a node element to refer in addition to an equivalent MALTbase placeholder element;
inserting the word MALTbase as a prefix to a descriptor of a public identifier to produce a modified public identifier; and
allocating said modified public identifier to the new DTD.
-
-
51. A method for converting an eXtensible Markup Language (XML) Document Type Definition (DTD) into a form suitable for accessing pre-processed node content, said method comprising the steps of:
-
duplicating the XML DTD to create a new DTD;
assigning the new DTD a public identifier that is the same as the public ID of the XML DTD except that the word MALTbase is inserted as a prefix to the descriptor;
creating a new placeholder element for every element in the node element set, each said placeholder element having MALTbase;
inserted as a prefix to the name;
an empty content model; and
an ATTLIST containing the two attributes;
child-id CDATA #REQUIRED xmlns;
MALTbase CDATA #FIXED “
http;
//www.malt.com/xmlns/MALTbase”
; and
replacing every occurrence of a node element in any content model with a group consisting of two alternatives, the original element and its MALTbase equivalent.
-
-
53. A method for reconverting a MALTbase Structured Query Language (SQL) table back into an equivalent eXtensible Markup Language (XML) document, said method including the steps of:
-
creating an XML document from root node content in which the MALTbase prefixes are removed from DTD public ID and the DOCTYPE;
replacing each placeholder element in the resulting document with the equivalent element from the corresponding sub-document;
repeating the above step until no further placeholders remain.
-
-
54. A method for maintaining an eXtensible Markup Language (XML) document in MALTbase Structured Query Language (SQL) form, without the need for reconverting the document to XML, said method comprising the steps of:
-
locating the node to be edited;
activating an edit function that locks the node for writing and establishes an edit session in which an editing tool manages content of a node; and
writing the updated content back into the node record, when the edit session is finished. - View Dependent Claims (55, 56)
-
-
57. A method for saving a modified node (principal node), said method comprising the steps of:
-
generating a list of placeholders in the principal node;
generating a list of existing sub-nodes from a database;
pairing off placeholders and sub-nodes;
deleting from the database any sub-node and the sub-node'"'"'s descendants, if that sub-node is not matched against a placeholder;
creating a duplicate node for each placeholder not currently a sub-node of the principal node;
assigning a provisional ID to each duplicate node, wherein each ID consists of the ID of the principal node, a provisional child ID within the principal node, and a trailing portion of the ID, if the new node is a descendant of the node being copied. scanning the list of matched placeholders in document order;
assigning a provisional child ID to any placeholder that has a lower child ID than any one of the placeholder'"'"'s siblings that have already been scanned;
performing a standard MALTbase XML-to-SQL conversion on each sub-node element (not being a placeholder) present;
creating new SQL records for each of said sub-node elements;
assigning a provisional ED to each new node;
assigning a provisional child ID within the principal node;
replacing the text of each sub-node element in the principal node with a new placeholder; and
assigning permanent child IDs to the placeholders to replace the provisional segment in the ID of each corresponding sub-node (or descendant).
-
Specification