IP Library Granted Patent US 6,925,631
Granted Patent B2
US 6,925,631 · App. 09/733,153 · Granted Aug 2, 2005

Method, computer system and computer program product for processing extensible markup language streams

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 6,925,631
App. No.
09/733,153
Granted
Aug 2, 2005
Kind
B2
Abstract

The invention is directed to a method performed by a computer system to process an extensible markup language input stream using discrete software components mapped to tags contained in the input stream, comprising: parsing the input stream; as a tag is parsed, invoking the software component mapped to it. The invention is also directed to a computer system, comprising: a processing unit and storage for processing programs; bindings representing a mapping between tags and discrete software components; a software engine comprising: a reader component that reads an extensible markup language input stream containing at least one tag; a parser component that parses the input stream; an execution component that, as a tag is parsed, invokes the software component mapped to the tag. The invention is also directed to a corresponding computer program product.

Claims (51)

1. A method performed by a computer system of processing an extensible markup language input stream having a tag structure with start and end tags which may enclose further tags, so that the tag structure may be represented by a tree structure, the method using objects mapped to tags contained in the input stream, said objects defining start and end methods which can be invoked, the method comprising:

parsing the input stream,

as a tag is found during the parsing process, building a tree representation of the input stream and the objects bound to tags by building the object mapped to the tag found into the tree representation according to the tag structure,

invoking, during the parsing process, before the input stream is entirely parsed and the tree representation is entirely built, in response to finding a start tag, the start method defined in the object mapped to the tag found, and

invoking, during the parsing process, before the input stream is entirely parsed and the tree representation is entirely built, in response to finding an end tag, the end method defined in the object mapped to the tag found,

wherein, due to the fact that the object is built into the tree representation before one of the methods defined by it is invoked, the method invoked during the parsing process, before the input stream is entirely parsed, has awareness of the position of the tag to which it is mapped within the tree structure not yet entirely built.

2. The method of claim 1 , wherein the extensible markup language is XML.

3. The method of claim 1 , wherein the discrete software components are classes in an object-oriented programming language or procedures or functions in a procedural programming language.

4. The method of claim 1 , wherein the end method is invoked when all children of the tag have been parsed.

5. The method of claim 1 , wherein the mapping between the tags and the discrete software objects is changed before, during, or after the parsing process.

6. The method of claim 1 , wherein an extensible markup language output stream is generated, and the output stream is used as an input stream for another execution of the method.

7. The method of claim 1 , wherein the computer system is a server in a network, and the input stream processed by the server is comprised in a request received from a client over the network or is comprised in an output from a database.

8. The method of claim 1 , wherein the invoked software components comprise at least one software component for accessing a database.

9. The method of claim 1 , wherein the invoked software components comprise at least one of a software component for sending electronic mail and a software component for sending facsimiles.

10. The method of claim 1 , wherein the computer system comprises a local computer and a remote computer which communicate with each other, and at least some of the commands given to the local computer are executed on the remote computer, but the results of the execution are output on the local computer so that the commands appear to be executed locally, wherein the communication between the local and the remote computers comprises an extensible markup language stream, wherein the method is performed by at least one of the remote computer and the local computer so as to execute the commands or output the results of the execution.

11. A computer system, comprising:

a processing unit and storage for processing programs,

bindings representing a mapping between tags and methods of discrete software components,

a software engine comprising:

a reader component arranged to read an extensible markup language input stream having a tag structure with start and end tags which may enclose further tags, so that the tag structure may be represented by a tree structure,

a parser component arranged to parse the input stream,

an execution component, as a tag is found during the parsing process, arranged to:

build a tree representation of the input stream and the objects bound to tags by building the object mapped to the tag found into the tree representation according to the tag structure,

invoke, during the parsing process, before the input stream is entirely parsed and the tree representation is entirely built, in response to finding a start tag, the start method defined in the object mapped to the tag found, and

invoke, during the parsing process, before the input stream is entirely parsed and the tree representation is entirely built, in response to finding an end tag, the end method defined in the object mapped to the tag found,

wherein, due to the fact that the object is built into the tree representation before one of the methods defined by it is invoked, the method invoked during the parsing process, before the input stream is entirely parsed, has awareness of the position of the tag to which it is mapped within the tree structure not yet entirely built.

12. The computer system of claim 11 , which comprises two or more of the software engines, wherein at least one of the software engines generates an extensible markup language output stream, and the output stream is used as an input extensible markup language stream for another one of the software engines.

13. The computer system of claim 11 , which is a server in a network, and the extensible markup language input stream processed by the server is comprised in a request received from a user over the network or is comprised in an output from a database.

14. The computer system of claim 11 , which comprises a database, and wherein the invoked software components comprise at least one software component for accessing the database.

15. The computer system of claim 11 , which comprises at least one of an email dispatch system and a facsimile dispatch system, wherein the invoked software components comprise a software component for sending electronic mail or a software component for sending facsimiles.

16. The computer system of claim 13 , which comprises a local computer and a remote computer which communicate with each other, and at least some of the commands given to the local computer are executed on the remote computer, but the results of the execution are output on the local computer so that the commands appear to be executed locally, wherein the communication between the local and the remote computers comprises a extensible markup language stream, and wherein at least one of the remote and the local computers has a software engine so as to execute the commands or output the results of the execution.

17. A computer program product comprising a machine-readable medium with program code stored on it, for carrying out a method, when executed on a computer system, of processing an extensible markup language input stream having a tag structure with start and end tags which may enclose further tags, so that the tag structure may be represented by a tree structure, the method using objects mapped to tags contained in the input stream, said objects defining start and end methods which can be invoked, the program code being arranged to:

parse the input stream,

as a tag is found during the parsing process:

build a tree representation of the input stream and the objects bound to tags by building the object mapped to the tag found into the tree representation according to the tag structure,

invoke, during the parsing process, before the input stream is entirely parsed and the tree representation is entirely built, in response to finding a start tag, the start method defined in the object mapped to the tag found, and

invoke, during the parsing process, before the input stream is entirely parsed and the tree representation is entirely built, in response to finding an end tag, the end method defined in the object mapped to the tag found,

wherein, due to the fact that the object is built into the tree representation before one of the methods defined by it is invoked, the method invoked during the parsing process, before the input stream is entirely parsed, has awareness of the position of the tag to which it is mapped within the tree structure not yet entirely built.

18. The computer program product of claim 17 , wherein the program code comprises the following classes:

a class which parses the input stream,

a class which implements a parser interface,

a class which creates a document,

a class which creates a taglet, i.e. which binds objects to tag names,

a class which provides behavior for the taglets.

19. A signal transmitted over a computer network comprising a representation of program code for carrying out a method, when executed on a computer system, of processing an extensible markup language input stream having a tag structure with start and end tags which may enclose further tags, so that the tag structure may be represented by a tree structure, the method using objects mapped to tags contained in the input stream, said objects defining start and end methods which can be invoked, the program code being arranged to:

parse the input stream,

as a tag is found during the parsing process:

build a tree representation of the input stream and the objects bound to tags by building the object mapped to the tag found into the tree representation according to the stream tag structure,

invoke, during the parsing process, before the input stream is entirely parsed and the tree representation is entirely built, in response to finding a start tag, the start method defined in the object mapped to the tag found, and

invoke, during the parsing process, before the input stream is entirely parsed and the tree representation is entirely built, in response to finding an end tag, the end method defined in the object mapped to the tag found,

wherein, due to the fact that the object is built into the tree representation before one of the methods defined by it is invoked, the method invoked during the parsing process, before the input stream is entirely parsed, has awareness of the position of the tag to which it is mapped within the tree structure not yet entirely built.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY'S NAME PREVIOUSLY RECORDED ON REEL 058796 FRAME 0422. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Aug 24, 2023
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 064707/0053 →
CHANGE OF NAME Recorded Nov 3, 2021
From: CONVERSANT INTELLECTUAL PROPERTY INC.
To: MOSAID TECHNOLOGIES INCORPORATED
Reel/Frame 058796/0422 →
RELEASE OF SECURITY INTEREST Recorded Nov 11, 2020
From: CPPIB CREDIT INVESTMENTS INC.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 054385/0435 →
AMENDED AND RESTATED U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Aug 22, 2018
From: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
To: CPPIB CREDIT INVESTMENTS, INC.
Reel/Frame 046900/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT INC.
Reel/Frame 035955/0109 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2001
From: GOLDEN, RICHARD
To: HEWLETT-PACKARD COMPANY
Reel/Frame 012457/0659 →