IP Library Granted Patent US 7,590,650
Granted Patent B2
US 7,590,650 · App. 11/441,622 · Granted Sep 15, 2009

Determining interest in an XML document

Assignee: Oracle International Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,590,650
App. No.
11/441,622
Granted
Sep 15, 2009
Kind
B2
Abstract

First data that represents a level associated with an element within an expression, such as an XPath expression, is generated from the expression, and stored in one or more columns of a table. Second data that represents a condition on an attribute of the element is generated from the expression, and stored in one or more columns of the same or a different table. A plurality of expressions can be processed as such, and a determination made whether any of the expressions match with a given hierarchical data item, such as an XML document, that includes a value that corresponds to an attribute that is associated with an element that resides at a particular level within the data item. Such determination is made based on whether the particular level matches the first data and the value satisfies the second data associated with a given expression.

Claims (32)

1. A method for determining entities that are interested in a particular XML document comprising the steps of:

parsing, using a computer processor, the XML document to obtain levels for elements and values for attributes within the XML document;

generating first data that represents the elements and their respective levels and that represents the attributes and their respective values;

reading, from one or more data tables, second data that characterizes XPath expressions associated with a plurality of entities; and

determining, based at least in part on comparing the first data and the second data, whether an entity of the plurality of entities is interested in the XML document.

2. The method of claim 1 , wherein the first data comprises tag information corresponding to tags within the XML document, and wherein generating the first data includes generating, for each tag within the XML document, data that represents (a) a tag name, (b) positions of the tag in the document, and (c) values for attributes corresponding to occurrences of the tag in the XML document.

3. The method of claim 2 , wherein generating the first data includes generating the data that represents the positions of the tag as a variable array (VARRAY) data type.

4. The method of claim 2 , wherein generating the first data includes generating the data that represents the values for the attributes as a variable array (VARRAY) data type.

5. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 4 .

6. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 2 .

7. The method of claim 1 , wherein reading the second data includes reading position filter data corresponding to the XPath expressions, wherein each position filter data represents a level, within a hierarchical structure associated with an XML document in which an associated entity is interested, associated with a corresponding tag within an XML document in which the associated entity is interested.

8. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 3 .

9. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 7 .

10. The method of claim 1 , wherein reading the second data includes reading value filter data corresponding to the XPath expressions, wherein each value filter data represents a conditional expression relating to an attribute associated with a tag within an XML document in which an associated entity is interested.

11. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 10 .

12. The method of claim 1 , wherein comparing the first data and the second data is performed by executing, by a database server, a database query language statement.

13. The method of claim 12 , wherein the database query language statement is a Structured Query Language (SQL) statement.

14. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 13 .

15. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 12 .

16. The method of claim 1 , wherein comparing the first data and the second data includes resolving a logical relationship between positions of a particular element in the XPath expression and a corresponding element in the XML document, wherein the logical relationship includes one relationship from the group consisting of (a) equal to, (b) greater than, (c) less than, (d) greater than or equal to, and (e) less than or equal to.

17. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 16 .

18. The method of claim 1 , wherein determining whether an entity is interested in the XML document includes identifying, from an entity-expression association table, one or more entities, from the plurality of entities, that are associated with an XPath expression that matches the XML document.

19. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 18 .

20. The method of claim 1 , wherein determining whether an entity is interested in the XML document includes joining a first table in which the first data is stored with a second table in which the second data is stored.

21. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 20 .

22. A system for determining entities that are interested in a particular XML document, the apparatus comprising:

one or more computer processors;

means, operatively coupled to the one or more computer processors, for parsing the XML document to obtain levels for elements and values for attributes within the XML document;

means, operatively coupled to the one or more computer processors, for generating first data that represents the elements and their respective levels and that represents the attributes and their respective values;

means, operatively coupled to the one or more computer processors, for reading, from one or more data tables, second data that characterizes XPath expressions associated with a plurality of entities; and

means, operatively coupled to the one or more computer processors, for determining, based at least in part on comparing the first data and the second data, whether an entity of the plurality of entities is interested in the XML document.

23. A computer-readable storage medium storing one or more sequences of instructions which, when executed by one or more computer processors, causes the one or more computer processors to perform the method recited in claim 1 .

Continuity (4)
Division 1036577100 · Feb 12, 2003
Continuation In Part 1025438300 · Sep 24, 2002
Provisional Application 6037801800 · May 10, 2002
Related Publication 20060218194A1 · Sep 28, 2006