IP Library Granted Patent US 7,657,549
Granted Patent B2
US 7,657,549 · App. 11/177,916 · Granted Feb 2, 2010

Method and apparatus for processing XML tagged data

Assignee: ACL Services Ltd.
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,657,549
App. No.
11/177,916
Granted
Feb 2, 2010
Kind
B2
Abstract

A method of converting an XML file containing elements to a table, each element having an XPath, in which row-terminating conditions a column data sources are determined; a scope for each element is determined; one of the elements is tested to determine if the element matches a column data source, and if it does the element is stored in a table cache and the columns are updated. The tested element is then stored in a prototype row; and when the method exits the tested element, a depth is passed to the table cache; then if the tested element matches one of the row-terminating conditions, matches a row-terminating condition, and is in the prototype row, then the prototype row is written to the table cache; then if the scope of one of the column data source matches the tested element, a column is erased in the prototype row.

Claims (30)

1. A method of converting data stored in an XML file to a table having rows and columns, the data within the XML file having a plurality of elements, each element having an XPath, the method comprising:

(a) detecting a tabular structure for the table;

(b) obtaining, from a user via a software wizard, an element selected by the user for addition into the tabular structure;

(c) determining row-terminating conditions using the tabular structure of the XML file-and a plurality of column data sources, the column data sources stored in a column data source table, the determining further comprising:

(c.1) for each of the elements, determining a number of occurrences of the element in the XML file, a number of occurrences of the element containing data, and a maximum number of occurrences of the element under a parent of the element;

(c.2) for each of the elements, if the element contains data, adding the element to a structure description;

(c.3) for each element in the structure description, if the element contains data and is a first element under the parent of the element, adding the element to a table like structure list; and

(c.4) determining a rule node by:

(i) for each column data source in the column data source table, determining if a parent of a selected node linked to the column data source is NULL, and if the parent is NULL, selecting instead a following node;

(ii) unmarking the selected node; and

(iii) if the parent of the selected node is unmarked, then marking the parent and replacing the selected node with the parent in the column data source table; and if the parent is marked, removing a link between the selected node and the column data source;

(d) determining a numerical scope for each of the elements in the XML file;

(e) testing one of the elements in the XML file to determine if the tested element matches one of the column data sources, and if the tested element matches one of the column data sources:

(i) storing the element in a table cache;

(ii) updating the columns, including items of a lesser scope within the table cache, that are within the scope of the tested element;

(iii) storing the tested element in a prototype row; and

(iv) when exiting the tested element, passing a depth associated with the tested element to the table cache;

(f) determining if the tested element matches one of the row-terminating conditions from a row-terminating rule base, and if the tested element matches a row-terminating condition, and the tested element is in the prototype row, then writing the prototype row to the table cache;

(g) determining if the scope of one of the column data source matches the tested element, and if so, erasing a column in the prototype row corresponding to the tested element;

(h) repeating steps (e) through (g) until each element of the XML file has been tested;

(i) copying the prototype row to the table cache; and

(j) outputting the table cache as the table, wherein a column of the table has at least two of the data sources from the plurality of data sources.

2. The method of claim 1 , wherein steps (e) through (g) are completed once for each of the elements.

3. The method of claim 1 , wherein the row-terminating conditions are determined by:

(c.5) examining each marked node in the structure description and copying the examined node to a row termination rule base; and

(c.6) for each column data source in the column data source table, determining matching nodes in the row termination rule base, determining a maximum number of matching nodes and linking the column data source to a matching node having a largest maximum number of matches and updating the column data source table.

4. The method of claim 3 , wherein step (d) comprises:

(d.1) determining a data source scope table by, for each column data source in the column data source table, obtaining a row termination rule from the row termination rule base;

(d.2) determining a scope for the column data source by determining an intersection of the column data source and the row termination rule; and

(d.3) adding the scope to the data source scope table.

Assignments (6)
SECURITY INTEREST Recorded Sep 23, 2021
From: ACL SERVICES LTD.
To: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT
Reel/Frame 057572/0210 →
RELEASE OF SECURITY INTEREST Recorded Apr 8, 2021
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: ACL SERVICES LTD.
Reel/Frame 055869/0121 →
SECURITY INTEREST Recorded Dec 13, 2018
From: ACL SERVICES LTD.
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 047764/0821 →
RELEASE OF SECURITY INTEREST Recorded Sep 27, 2018
From: SILICON VALLEY BANK
To: ACL SERVICES LTD.
Reel/Frame 046991/0143 →
SECURITY INTEREST Recorded May 26, 2016
From: ACL SERVICES LTD.
To: SILICON VALLEY BANK
Reel/Frame 038732/0755 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2005
From: MORRIS, STUART DAVID; STROUMEVA, DIMITRINA IVANOVA; MARKEVICH, KORY ROBERT
To: ACL SERVICES LTD.
Reel/Frame 016923/0539 →
Continuity (1)
Related Publication 20070011184A1 · Jan 11, 2007