Querying markup language data sources using a relational query processor
First Claim
1. A method of querying data in a mark-up language document stored in a data source, the mark-up language document containing a plurality of nodes, the method comprising:
- receiving, in response to a request to extract a node from the document, a data stream including a parent node;
evaluating the parent node with respect to a query; and
requesting, in response to evaluating the query, one or more nodes in a nested relationship with the parent node if the parent node satisfies the query.
1 Assignment
0 Petitions
Accused Products
Abstract
An XML wrapper queries an XML document in an on-the-fly manner so that only parent nodes in the document that satisfy the query are extracted and then unnested. The parent nodes and associated descendent nodes are located using XPath expressions contained as options in data definition language (DDL) statements. The parent nodes satisfying the query and associated descendent nodes are extracted and stored outside of a database according to a relational schema. The wrapper facilitates applications that use convention SQL queries and views to operate on that information stored according to the relational schema. The wrapper also responds to query optimizer requests for costs associated with queries against external data sources associated with the wrapper.
-
Citations
41 Claims
-
1. A method of querying data in a mark-up language document stored in a data source, the mark-up language document containing a plurality of nodes, the method comprising:
-
receiving, in response to a request to extract a node from the document, a data stream including a parent node;
evaluating the parent node with respect to a query; and
requesting, in response to evaluating the query, one or more nodes in a nested relationship with the parent node if the parent node satisfies the query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-readable medium of instructions for execution by a computer and suitable for specifying a mapping of a plurality of nodes contained in a mark-up language document according to a relational schema into a plurality of tables, comprising:
-
first program instructions for creating a first table based on a first type of node from the document, the first instructions including an option specifying a location within the mark-up language document of the first type of node; and
second program instructions for creating a second table based on a second type of node from the document, the second type of node related to the first type of node, and the second program instructions including an option specifying a location within the mark-up language document of the second type of node. - View Dependent Claims (12, 13, 14)
-
-
15. A method of querying a document containing hierarchical information that includes parent nodes and descendent nodes, comprising:
-
locating a first parent node in the document by using a mapping specification;
determining if the first parent node satisfies a query; and
fetching from the document nested descendent nodes relating to the first parent node in response to determining that the first parent node satisfies the query. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
- 22. A method of locating a path from a descendent node to a root node in a document containing hierarchical information, the method comprising joining a table holding information of the descendent node and a table holding information of the root node, wherein each of the tables has a primary key and a foreign key, columns of the table holding the descendent node information are selected, and predicates for the join are taken over the primary and foreign keys of the selected tables.
-
27. A computer based system for querying a markup language document having hierarchical information including a parent node and descendent nodes related to the parent node, comprising:
-
a data source having stored therein a markup language document;
a wrapper unit configured to extract information from the markup language document in response to a query by consulting a mapping specification containing information for locating the parent node, and if the parent node satisfies the query to store the parent node in a first table, and to locate the descendent nodes by consulting the mapping specification if the parent node satisfies the query and store said descendent nodes in a second table. - View Dependent Claims (28, 29, 30, 31)
-
-
32. A computer based system for querying a markup language document having hierarchical information including a parent node and descendent nodes related to the parent node, comprising:
-
data source means for storing a markup language document; and
a wrapper configured to extract information from the markup language document in response to a query by consulting a mapping specification containing information for locating the parent node, the wrapper comprising;
means for storing the parent node in a first table if the parent node satisfies the query;
means for locating the descendent nodes by consulting a mapping specification; and
means for extracting the located descendent nodes if the parent node satisfies the query. - View Dependent Claims (33, 34, 35, 36)
-
-
37. A method of optimizing a query, comprising:
-
receiving a request for information concerning a cost of a query against a data source containing a markup language document;
determining a cost of performing the query in response to the request; and
responding to the request by providing information concerning the cost. - View Dependent Claims (38, 39, 40, 41)
-
Specification