Claims
- 1. A method of locating data in a data store connected to a computer, the method comprising the steps of:
creating a main table having a column for storing a document, wherein the document has one or more elements or attributes; creating one or more side tables, wherein each side table stores one or more elements or attributes; and using the side tables to locate data in the main table.
- 2. The method of claim 1, wherein the document in the column is an extensible markup language document.
- 3. The method of claim 1, wherein one or more side tables are created after the column for storing the document is enabled.
- 4. The method of claim 1, further comprising generating the side tables using a data access definition.
- 5. The method of claim 4, further comprising providing a graphical user interface to enable a user to create the data access definition.
- 6. The method of claim 1, further comprising converting the elements or attributes to SQL data types.
- 7. The method of claim 1, further comprising generating one or more triggers to provide synchronization between the main table and side tables.
- 8. The method of claim 7, wherein a trigger is activated upon data being inserted into the column for storing a document.
- 9. The method of claim 7, wherein a trigger is activated upon data being modified in the column for storing a document.
- 10. The method of claim 1, wherein data is located using a location path.
- 11. The method of claim 1, further comprising creating an index on each side table.
- 12. The method of claim 11, wherein locating data in the main table further comprises:
searching for the data in the side tables using the indexes; and mapping data located in the side tables to data in the main table.
- 13. The method of claim 1, further comprising searching from a join view.
- 14. The method of claim 1, further comprising receiving a query on one or more side tables and using the side tables to locate data in the queried side tables.
- 15. The method of claim 1, further comprising using an extracting user-defined function to locate data.
- 16. The method of claim 1, further comprising searching on an element or attribute with multiple occurrences.
- 17. The method of claim 1, further comprising performing a text search on the document.
- 18. The method of claim 1, further comprising performing a range search.
- 19. The method of claim 1, further comprising enabling the column.
- 20. The method of claim l, further comprising disabling the column.
- 21. An apparatus for locating data in a data store, comprising:
a computer having a data store coupled thereto, wherein the data store stores data; and one or more computer programs, performed by the computer, for creating a main table having a column for storing a document, wherein the document has one or more elements or attributes, for creating one or more side tables, wherein each side table stores one or more elements or attributes, and for using the side tables to locate data in the main table.
- 22. The apparatus of claim 21, wherein the document in the column is an extensible markup language document.
- 23. The apparatus of claim 21, wherein one or more side tables are created after the column for storing the document is enabled.
- 24. The apparatus of claim 21, further comprising generating the side tables using a data access definition.
- 25. The apparatus of claim 24, further comprising providing a graphical user interface to enable a user to create the data access definition.
- 26. The apparatus of claim 21, further comprising converting the elements or attributes to SQL data types.
- 27. The apparatus of claim 21, further comprising generating one or more triggers to provide synchronization between the main table and side tables.
- 28. The apparatus of claim 27, wherein a trigger is activated upon data being inserted into the column for storing a document.
- 29. The apparatus of claim 27, wherein a trigger is activated upon data being modified in the column for storing a document.
- 30. The apparatus of claim 21, wherein data is located using a location path.
- 31. The apparatus of claim 21, further comprising creating an index on each side table.
- 32. The apparatus of claim 31, wherein locating data in the main table further comprises:
searching for the data in the side tables using the indexes; and mapping data located in the side tables to data in the main table.
- 33. The apparatus of claim 21, further comprising searching from a join view.
- 34. The apparatus of claim 21, further comprising receiving a query on one or more side tables and using the side tables to locate data in the queried side tables.
- 35. The apparatus of claim 21, further comprising using an extracting user-defined function to locate data.
- 36. The apparatus of claim 21, further comprising searching on an element or attribute with multiple occurrences.
- 37. The apparatus of claim 21, further comprising performing a text search on the document.
- 38. The apparatus of claim 21, further comprising performing a range search.
- 39. The apparatus of claim 21, further comprising enabling the column.
- 40. The apparatus of claim 21, further comprising disabling the column.
- 41. An article of manufacture comprising a program storage medium readable by a computer and embodying one or more instructions executable by the computer to perform method steps for locating data in a data store connected to the computer, the method comprising the steps of:
creating a main table having a column for storing a document, wherein the document has one or more elements or attributes; creating one or more side tables, wherein each side table stores one or more elements or attributes; and using the side tables to locate data in the main table.
- 42. The article of manufacture of claim 41, wherein the document in the column is an extensible markup language document.
- 43. The article of manufacture of claim 41, wherein one or more side tables are created after the column for storing the document is enabled.
- 44. The article of manufacture of claim 41, further comprising generating the side tables using a data access definition.
- 45. The article of manufacture of claim 44, further comprising providing a graphical user interface to enable a user to create a data access definition.
- 46. The article of manufacture of claim 41, further comprising converting the elements or attributes to SQL data types.
- 47. The article of manufacture of claim 41, further comprising generating one or more triggers to provide synchronization between the main table and side tables.
- 48. The article of manufacture of claim 47, wherein a trigger is activated upon data being inserted into the column for storing a document.
- 49. The article of manufacture of claim 47, wherein a trigger is activated upon data being modified in the column for storing a document.
- 50. The article of manufacture of claim 41, wherein data is located using a location path.
- 51. The article of manufacture of claim 41, further comprising creating an index on each side table.
- 52. The article of manufacture of claim 51, wherein locating data in the main table further comprises:
searching for the data in the side tables using the indexes; and mapping data located in the side tables to data in the main table.
- 53. The article of manufacture of claim 41, further comprising searching from a join view.
- 54. The article of manufacture of claim 41, further comprising receiving a query on one or more side tables and using the side tables to locate data in the queried side tables.
- 55. The article of manufacture of claim 41, further comprising using an extracting user-defined function to locate data.
- 56. The article of manufacture of claim 41, further comprising searching on an element or attribute with multiple occurrences.
- 57. The article of manufacture of claim 41, further comprising performing a text search on the document.
- 58. The article of manufacture of claim 41, further comprising performing a range search.
- 59. A method of transforming data stored on a data storage device that is connected to a computer, the method comprising:
receiving a query that selects data in the data storage device; retrieving the selected data into a work space; and generating one or more XML documents to consist of the selected data.
- 60. The method of claim 59, wherein the work space comprises a table having one or more columns and wherein the one or more XML documents are generated by mapping each column to an element or attribute of one of the XML documents.
- 61. The method of claim 59, wherein the one or more XML documents are generated using a data access definition.
- 62. The method of claim 61, further comprising using a document type definition to validate the one or more XML documents.
- 63. The method of claim 61, further comprising using a document type definition to prepare the document access definition.
- 64. The method of claim 61, wherein the document access definition further comprises an Extensible Markup Language Path data model based definition of the one or more XML documents to be generated.
- 65. The method of claim 59, wherein the work space comprises a table and further comprising mapping column names of a table to equivalence classes.
- 66. The method of claim 65, wherein the equivalence classes are defined by a user.
- 67. The method of claim 65, wherein the equivalence classes are defined by a heuristic approach.
- 68. The method of claim 59, further comprising removing duplicates from the selected data.
- 69. The method of claim 59, wherein generating one or more XML documents comprises using an Xcollection definition that defines how to compose the one or more XML documents from the retrieved selected data.
- 70. The method of claim 68, wherein the Xcollection definition is contained in a data access definition.
- 71. The method of claim 68, wherein the Xcollection definition comprises an SQL_query element.
- 72. The method of claim 59, further comprising, prior to retrieving data, parsing a document access definition.
- 73. The method of claim 59, wherein the one or more XML documents are generated using a query, XML composition stored procedures, and a document access definition.
- 74. The method of claim 59, wherein the data to generate one or more XML documents is stored in an XML collection.
- 75. The method of claim 59, wherein the one or more XML documents are shared between businesses.
- 76. The method of claim 59, wherein the one or more XML documents are generated by stored procedures.
- 77. The method of claim 59, wherein the stored procedures can be called from database client code.
- 78. An apparatus for transforming data, comprising:
a computer having a data store coupled thereto, wherein the data store stores data; and one or more computer programs, performed by the computer, for receiving a query that selects data in the data storage device, retrieving the selected data into a work space, and generating one or more XML documents to consist of the selected data.
- 79. The apparatus of claim 78, wherein the work space comprises a table having one or more columns and wherein the one or more XML documents are generated by mapping each column to an element or attribute of one of the XML documents.
- 80. The apparatus of claim 78, wherein the one or more XML documents are generated using a data access definition.
- 81. The apparatus of claim 80, further comprising using a document type definition to validate the one or more XML documents.
- 82. The apparatus of claim 80, further comprising using a document type definition to prepare the document access definition.
- 83. The apparatus of claim 80, wherein the document access definition further comprises an Extensible Markup Language Path data model based definition of the one or more XML documents to be generated.
- 84 The apparatus of claim 78, wherein the work space comprises a table and further comprising creating mapping column names of a table to equivalence classes.
- 85. The apparatus of claim 84, wherein the equivalence classes are defined by a user.
- 86. The apparatus of claim 84, wherein the equivalence classes are defined by a heuristic approach.
- 87. The apparatus of claim 78, further comprising removing duplicates from the selected data.
- 88. The apparatus of claim 78, wherein generating one or more XML documents comprises using an Xcollection definition that defines how to compose the one or more XML documents from the retrieved selected data.
- 89. The apparatus of claim 88, wherein the Xcollection definition is contained in a data access definition.
- 90. The apparatus of claim 88, wherein the Xcollection definition comprises an SQL_query element.
- 91. The apparatus of claim 78, further comprising, prior to retrieving data, parsing a document access definition.
- 92. The apparatus of claim 78, wherein the one or more XML documents are generated using a query, XML composition stored procedures, and a document access definition.
- 93. The apparatus of claim 78, wherein the data to generate one or more XML documents is stored in an XML collection.
- 94. The apparatus of claim 78, wherein the one or more XML documents are shared between businesses.
- 95. The apparatus of claim 78, wherein the one or more XML documents are generated by stored procedures.
- 96. The apparatus of claim 78, wherein the stored procedures can be called from database client code.
- 97. An article of manufacture comprising a program storage medium readable by a computer and embodying one or more instructions executable by the computer to perform method steps for transforming data in a data store connected to the computer, the method comprising the steps of:
receiving a query that selects data in the data storage device; retrieving the selected data into a work space; and generating one or more XML documents to consist of the selected data.
- 98. The article of manufacture of claim 97, wherein the work space comprises a table having one or more columns and wherein the one or more XML documents are generated by mapping each column to an element or attribute of one of the XML documents.
- 99. The article of manufacture of claim 97, wherein the one or more XML documents are generated using a data access definition.
- 100. The article of manufacture of claim 99, further comprising using a document type definition to validate the one or more XML documents.
- 101. The article of manufacture of claim 99, further comprising using a document type definition to prepare the document access definition.
- 102. The article of manufacture of claim 99, wherein the document access definition further comprises an Extensible Markup Language Path data model based definition of the one or more XML documents to be generated.
- 103. The article of manufacture of claim 97, further comprising mapping column names of a table to equivalence classes.
- 104. The article of manufacture of claim 103, wherein the equivalence classes are defined by a user.
- 105. The article of manufacture of claim 103, wherein the equivalence classes are defined by a heuristic approach.
- 106. The article of manufacture of claim 97, further comprising removing duplicates from the selected data.
- 107. The article of manufacture of claim 97, wherein generating one or more XML documents comprises using an an Xcollection definition that defines how to compose the one or more XML documents from the retrieved selected data.
- 108. The article of manufacture of claim 107, wherein the Xcollection definition is contained in a data access definition.
- 109. The article of manufacture of claim 107 wherein the Xcollection definition comprises an SQL_query element.
- 110. The article of manufacture of claim 97, further comprising, prior to retrieving data, parsing a document access definition.
- 111. The article of manufacture of claim 97, wherein the one or more XML documents are generated using a query, XML composition stored procedures, and a document access definition.
- 112. The article of manufacture of claim 97, wherein the data to generate one or more XML documents is stored in an XML collection.
- 113. The article of manufacture of claim 97, wherein the one or more XML documents are shared between businesses.
- 114. The article of manufacture of claim 97, wherein the one or more XML documents are generated by stored procedures.
- 115. The article of manufacture of claim 97, wherein the stored procedures can be called from database client code.
- 116. A method of transforming data stored on a data storage device that is connected to a computer, the method comprising:
generating a document object model tree using a document access definition: traversing the document object model tree to obtain information to retrieve relational data; and mapping the relational data to one or more XML documents.
- 117. The method of claim 116, wherein the document access definition defines a mapping between the relational data and one or more XML documents.
- 118. The method of claim 116, wherein the document object model tree comprises one or more relational database nodes.
- 119. The method of claim 118, wherein a relational database node comprises an attribute node that maps to a column of a relational database table.
- 120. The method of claim 118, wherein a relational database node comprises an element node that maps to a column of a relational database table.
- 121. The method of claim 118, wherein a relational database node comprises a text node that maps to a column of a relational database table.
- 122. The method of claim 118, wherein the relational database node identifies a relational table into which XML document data is to be stored.
- 123. The method of claim 118, wherein the relational database node identifies a column in a relational table that contains XML document data to be retrieved.
- 124. The method of claim 118, wherein the relational database node identifies one or more predicates used to select column data from a relational table to store into one or more XML documents.
- 125. The method of claim 118, wherein the relational database node identifies a join relationship for joining multiple tables.
- 126. The method of claim 125, wherein the relational database node identifies a primary and foreign key relationship for the join relationship.
- 127. The method of claim 116, further comprising generating queries to obtain relational data using the document object model tree.
- 128. The method of claim 116, therein the relational data comprises an attribute value to be written to an XML document.
- 129. The method of claim 116, wherein the relational data comprises element text to be written to an XML document.
- 130. The method of claim 116, further comprising a stored procedure that receives the document access definition and outputs a table populated with the one or more XML documents.
- 131. An apparatus for transforming data, comprising:
a computer having a data store coupled thereto, wherein the data store stores data; and one or more computer programs, performed by the computer, for generating a document object model tree using a document access definition, traversing the document object model tree to obtain information to retrieve relational data, and mapping the relational data to one or more XML documents.
- 132. The apparatus of claim 131, wherein the document access definition defines a mapping between the relational data and one or more XML documents.
- 133. The apparatus of claim 131, wherein the document object model tree comprises one or more relational database nodes.
- 134. The apparatus of claim 133, wherein a relational database node comprises an attribute node that maps to a column of a relational database table.
- 135. The apparatus of claim 133, wherein a relational database node comprises an element node that maps to a column of a relational database table.
- 136. The apparatus of claim 133, wherein a relational database node comprises a text node that maps to a column of a relational database table.
- 137. The apparatus of claim 133, wherein the relational database node identifies a relational table into which XML document data is to be stored.
- 138. The apparatus of claim 133, wherein the relational database node identifies a column in a relational table that contains XML document data to be retrieved.
- 139. The apparatus of claim 133, wherein the relational database node identifies one or more predicates used to select column data from a relational table to store into one or more XML documents.
- 140. The apparatus of claim 133, wherein the relational database node identifies a join relationship for joining multiple tables.
- 141. The apparatus of claim 140, wherein the relational database node identifies a primary and foreign key relationship for the join relationship.
- 142. The apparatus of claim 131, further comprising generating queries to obtain relational data using the document object model tree.
- 143. The apparatus of claim 131, wherein the relational data comprises an attribute value to be written to an XML document.
- 144. The apparatus of claim 131, wherein the relational data comprises element text to be written to an XML document.
- 145. The apparatus of claim 131, further comprising a stored procedure that receives the document access definition and outputs a table populated with the one or more XML documents.
- 146. An article of manufacture comprising a program storage medium readable by a computer and embodying one or more instructions executable by the computer to perform steps for transforming data in a data store connected to the computer, comprising:
generating a document object model tree using a document access definition; traversing the document object model tree to obtain information to retrieve relational data; and mapping the relational data to one or more XML documents.
- 147. The article of manufacture of claim 146, wherein the document access definition defines a mapping between the relational data and one or more XML documents.
- 148. The article of manufacture of claim 146, wherein the document object model tree comprises one or more relational database nodes.
- 149. The article of manufacture of claim 148, wherein a relational database node comprises an attribute node that maps to a column of a relational database table.
- 150. The article of manufacture of claim 148, wherein a relational database node comprises an element node that maps to a column of a relational database table.
- 151. The article of manufacture of claim 148, wherein a relational database node comprises a text node that maps to a column of a relational database table.
- 152. The article of manufacture of claim 148, wherein the relational database node identifies a relational table into which XML document data is to be stored.
- 153. The article of manufacture of claim 148, wherein the relational database node identifies a column in a relational table that contains XML document data to be retrieved.
- 154. The article of manufacture of claim 148, wherein the relational database node identifies one or more predicates used to select column data from a relational table to store into one or more XML documents.
- 155. The article of manufacture of claim 148, wherein the relational database node identifies a join relationship for joining multiple tables.
- 156. The article of manufacture of claim 155, wherein the relational database node identifies a primary and foreign key relationship for the join relationship.
- 157. The article of manufacture of claim 146, further comprising generating queries to obtain relational data using the document object model tree.
- 158. The article of manufacture of claim 146, wherein the relational data comprises an attribute value to be written to an XML document.
- 159. The article of manufacture of claim 146, wherein the relational data comprises element text to be written to an XML document.
- 160. The article of manufacture of claim 146, further comprising a stored procedure that receives the document access definition and outputs a table populated with the one or more XML documents.
- 161. A method of transforming data stored on a data store that is connected to a computer, comprising:
receiving an XML document containing XML data; receiving a document access definition that identifies one or more relational tables and columns; and mapping the XML data to the relational tables and columns using the document access definition.
- 162. The method of claim 161, further comprising generating a first document object model tree using the XML document.
- 163. The method of claim 162, wherein the first document object model tree is generated by parsing the XML document.
- 164. The method of claim 161, further comprising generating a second document object model tree using the document access definition.
- 165. The method of claim 164, wherein the second document object model tree is generated by parsing the document access definition.
- 166. The method of claim 161, wherein mapping further comprises:
generating a first document object model tree using data from the XML document; generating a second document object model tree using a document access definition; and mapping the data from the first document object model tree into columns in one or more relational tables using the second document object model tree.
- 167. The method of claim 161, wherein the XML data is stored untagged into the relational tables.
- 168. The method of claim 161, wherein the relational tables are new tables.
- 169. The method of claim 161, wherein the relational tables are existing tables.
- 170. The method of claim 161, wherein the mapping is performed by a stored procedure.
- 171. An apparatus for transforming data, comprising:
a computer having a data store coupled thereto, wherein the data store stores data; and one or more computer programs, performed by the computer, for receiving an XML document containing XML data, receiving a document access definition that identifies one or more relational tables and columns, and mapping the XML data to the relational tables and columns using the document access definition.
- 172. The apparatus of claim 171, further comprising generating a first document object model tree using the XML document.
- 173. The apparatus of claim 172, wherein the first document object model tree is generated by parsing the XML document.
- 174. The apparatus of claim 171, further comprising generating a second document object model tree using the document access definition.
- 175. The apparatus of claim 174, wherein the second document object model tree is generated by parsing the document access definition.
- 176. The apparatus of claim 171, wherein mapping further comprises:
generating a first document object model tree using data from the XML document; generating a second document object model tree using a document access definition; and mapping the data from the first document object model tree into columns in one or more relational tables using the second document object model tree.
- 177. The apparatus of claim 171, wherein the XML data is stored untagged into the relational tables.
- 178. The apparatus of claim 171, wherein the relational tables are new tables.
- 179. The apparatus of claim 171, wherein the relational tables are existing tables.
- 180. The apparatus of claim 171, wherein the mapping is performed by a stored procedure.
- 181. An article of manufacture comprising a program storage medium readable by a computer and embodying one or more instructions executable by the computer to perform steps for transforming data in a data store connected to the computer, comprising:
receiving XML document containing XML data; receiving a document access definition that identifies one or more relational tables and columns; and mapping the XML data to the relational tables and columns using the document access definition.
- 182. The article of manufacture of claim 181, further comprising generating a first document object model tree using the XML document.
- 183. The article of manufacture of claim 182, wherein the first document object model tree is generated by parsing the XML document.
- 184. The article of manufacture of claim 181, further comprising generating a second document object model tree using the document access definition.
- 185. The article of manufacture of claim 184, wherein the second document object model tree is generated by parsing the document access definition.
- 186. The article of manufacture of claim 181, wherein mapping further comprises:
generating a first document object model tree using data from the XML document; generating a second document object model tree using a document access definition; and mapping the data from the first document object model tree into columns in one or more relational tables using the second document object model tree.
- 187. The article of manufacture of claim 181, wherein the XML data is stored untagged into the relational tables.
- 188. The article of manufacture of claim 181, wherein the relational tables are new tables.
- 189. The article of manufacture of claim 181, wherein the relational tables are existing tables.
- 190. The article of manufacture of claim 181, wherein the mapping is performed by a stored procedure.
PROVISIONAL APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application No. 60/168,659, entitled “XML DOCUMENT PROCESSING,” filed on Dec. 2, 1999, by Isaac Cheng, et al., attorney's reference number ST9-99-106, which is incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60168659 |
Dec 1999 |
US |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09725363 |
Nov 2000 |
US |
Child |
10066523 |
Jan 2002 |
US |