IP Library Patent Application 12960510
Patent Application
App. No. 12/960,510

EFFICIENT STORAGE OF INFORMATION FROM MARKUP LANGUAGE DOCUMENTS

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 None
App. No.
12/960,510
Abstract

An in-memory document model may be created from a markup language document while parsing the markup language document. The model includes small fixed-size memory structures allocated from a single larger memory pool. The model stores the data contained in the markup language document and the hierarchical relationship between the data items in the markup language document. Thus, random access to the markup language document is achieved without further access to the document and without the overhead of language-specific object construction. When an object-oriented computer program instance references the document model, a language-specific object may be constructed from the model including a pointer to an element of the model. The document model may be created when parsing extensible markup language (XML) documents.

Claims (46)

1 . A method, comprising:

reading a markup language document;

parsing the markup language document; and

storing an in-memory document model document model of the markup language document.

2 . The method of claim 1 , in which storing the in-memory document model comprises storing a model of the markup language document in a linked list.

3 . The method of claim 2 , in which storing the document model in a linked list comprises:

storing each tag of the markup language document as a node in the linked list;

storing each element of each tag of the markup language document as a sub-node of a node corresponding to the tag in the linked list; and

storing each attribute of each tag of the markup language document as a sub-node of a node corresponding to the tag in the linked list.

4 . The method of claim 3 , in which storing each tag of the markup language document as a node in the linked list comprises:

estimating a string length for storing each tag; and

allocating from a memory pool storage corresponding to the estimated string length.

5 . The method of claim 1 , further comprising allocating a memory pool for storage of the in-memory document model before storing the markup language document in the in-memory document model.

6 . The method of claim 1 , in which the memory document model stores data and a structure of the markup language document.

7 . The method of claim 1 , in which reading the markup language document comprises reading at least one of a hypertext markup language (HTML) document, an extensible hypertext markup language document (XHTML), and an extensible markup language (XML) document.

8 . A computer program product, comprising:

a computer-readable medium comprising:

code to read a markup language document;

code to parse the markup language document; and

code to store an in-memory document model of the markup language document.

9 . The computer program product of claim 8 , in which the code to store the markup language stores the markup language document in a linked list.

10 . The computer program product of claim 9 , in which the medium further comprises:

code to store each tag of the markup language document as a node in the linked list;

code to store each element of each tag of the markup language document as a sub-node of a node corresponding to the tag in the linked list; and

code to store each attribute of each tag of the markup language document as a sub-node of a node corresponding to the tag in the linked list.

11 . The computer program product of claim 10 , in which the medium further comprises:

code to estimate a string length for storing each tag; and

code to allocate memory from a memory pool corresponding to the estimated string length.

12 . The computer program product of claim 8 , in which the medium further comprises code to allocate a memory pool for storage of the in-memory document model.

13 . The computer program product of claim 8 , in which the medium further comprises code to store data and a structure of the markup language document.

14 . The computer program product of claim 8 , in which the code to parse parses at least one of a hypertext markup language (HTML) document, an extensible hypertext markup language document (XHTML), and an extensible markup language (XML) document.

15 . An apparatus, comprising:

at least one processor and a memory coupled to the at least one processor, in which the at least one processor is configured:

to read a markup language document from the memory;

to parse the markup language document; and

to store an in-memory document model of the markup language document in the memory.

16 . The apparatus of claim 15 , in which the at least one processor is configured to store the markup language document in a linked list in the memory.

17 . The apparatus of claim 16 , in which the at least one processor is further configured:

to store each tag of the markup language document as a node in the linked list;

to store each element of each tag of the markup language document as a sub-node of a node corresponding to the tag in the linked list; and

to store each attribute of each tag of the markup language document as a sub-node of a node corresponding to the tag in the linked list.

18 . The apparatus of claim 17 , in which the at least one processor is further configured:

to estimate a string length for storing each tag; and

to allocate a portion of the memory to a node corresponding to the estimated string length.

19 . The apparatus of claim 15 , in which the at least one processor is further configured to allocate a memory pool in the memory for storage of the in-memory document model.

20 . The apparatus of claim 15 , in which the at least one processor is configured to parse at least one of a hypertext markup language (HTML) document, an extensible hypertext markup language document (XHTML), and an extensible markup language (XML) document.

Assignments (9)
SECURITY INTEREST Recorded Nov 19, 2020
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 054481/0865 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
SECURITY AGREEMENT Recorded Mar 1, 2011
From: UNISYS CORPORATION
To: DEUTSCH BANK NATIONAL TRUST COMPANY; GLOBAL TRANSACTION BANKING
Reel/Frame 025864/0519 →