Data processing: presentation processing of document – operator i – Presentation processing of document – Layout
Reexamination Certificate
1999-07-15
2003-12-30
Feild, Joseph H. (Department: 2176)
Data processing: presentation processing of document, operator i
Presentation processing of document
Layout
C715S252000, C715S252000
Reexamination Certificate
active
06671853
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with a method, system, and computer-readable code for selectively streaming documents, where the document is preferably encoded in the Extensible Markup Language or a derivative thereof. The selective streaming technique comprises identifying the static and the changeable portions of a document, and writing the static portions in a serialized binary output format while writing the changeable portions in a tagged, parseable format.
2. Description of the Related Art
The term “document” is often used in reference to a class of data objects in the Internet and World Wide Web (hereinafter, “Web”) environments. In this context, a document comprises information content stored in one or more files. A document may be displayed on a computer display screen for viewing by a user, printed, transferred between computers, processed by computer software programs, and so forth. These concepts are well known in the art.
An “XML document” is a document created according to the requirements of the Extensible Markup Language, or XML, specification. XML is a standardized formatting notation, created for structured document interchange on the Web. Refer to “Extensible Markup Language (XML), W3C Recommendation Feb. 10, 1998” which is available on the Web at http://www.w3.org/TR/1998/REC-xml-19980210, for more information on XML.
XML is a tag language, where specially-designated constructs referred to as “tags” are used to delimit (or “mark up”) information. In the general case, a tag is a keyword that identifies what the data is which is associated with the tag, and is typically composed of a character string enclosed in special characters. “Special characters” means characters other than letters and numbers, which are defined and reserved for use with tags. Special characters are used so that a parser processing the data stream will recognize that this a tag. In XML and its derivative notations, a tag is inserted preceding its associated data: a corresponding tag is also inserted following the data, to clearly identify where that data ends. As an example of using tags, the syntax “<email>” could be used as a tag to indicate that the character string appearing in the data stream after this tag is to treated as an e-mail address; the syntax “</email>” would then be inserted after the character string, to delimit where the e-mail character string ends.
XML is widely accepted in the computer industry for defining the semantics (that is, by specifying meaningful tags) and content of the data encoded in a file. The extensible, user-defined tags enable the user to easily define a data model, which may change from one file to another. When an application generates the tags (and corresponding data) for a file according to a particular data model and transmits that file to another application that also understands this data model, the XML notation functions as a conduit, enabling a smooth transfer of information from one application to the other. By parsing the tags of the data model from the received file, the receiving application can re-create the information for display, printing, or other processing, as the generating application intended it.
A number of markup languages have been defined, and continue to be defined, which are based upon XML. Examples include the Wireless Markup Language (“WML”), and Math Markup Language (“MathML”). XML is an ideal language upon which to base new languages, because as the name implies, it was defined to be extensible. That is, the syntax of XML provides users the capability to define their own tags, in accordance with the data and semantics of a particular application. Hereinafter, the phrase “XML derivative” will be used to refer to languages derived from XML (including derivation of a language from another XML derivative).
When a parser for XML or an XML derivative processes an input file, it reads the file and constructs a “DOM tree” based on the syntax of the tags embedded in the file and the interrelationships between those tags. The tag syntax is stored in the nodes of the DOM tree, and the shape of the tree is determined from the tag relationships. “DOM” is an acronym for “Document Object Model”, which is a language-independent application programming interface (“API”) for use with documents specified in markup languages including XML. DOM is published as a Recommendation of the World Wide Web Consortium, titled “Document Object Model (DOM) Level 1 Specification, Version 1.0” (1998) and available on the World Wide Web at http://www.w3.org/TR/REC-DOM-Level-1.
“DOM tree” refers to the logical structure with which a document is modeled using the DOM. A DOM tree is a hierarchical representation of the document structure and contents. Each DOM tree has a root node and one or more leaf nodes, with zero or more intermediate nodes, using the terminology for tree structures that is commonly known in the computer programming art. A node's predecessor node in the tree is called a “parent” and nodes below a given node in the tree are called “child” nodes.
The DOM API enables application programs to access this tree-oriented abstraction of a document, and to manipulate document structure and contents (that is, by changing, deleting, and/or adding elements). Further, the DOM enables navigating the structure of the document.
The flexibility of XML enables it to be used to represent complex information. Using the DOM APIs, XML can be used not just with information that is static in nature, but also with information that changes dynamically. With changing information, a DOM tree is created that represents an initial state of the information; this DOM tree may then be altered to reflect the dynamic changes. If new content is required, new nodes are added to the DOM tree to reflect the changed state of the content. The corresponding nodes are removed from the DOM tree if content is to be deleted. And the nodes of the DOM tree are changed when content is to be modified.
When an XML document is small, the parsing time to create the corresponding DOM tree using today's genre of parsers is relatively fast. When the size and complexity of an XML document is larger, however, the document parsing takes longer. A given XML document may grow in size and complexity over time, as new tags and new tag values are added, causing the parsing time to increase even further. Typically, a human user is awaiting the results of the parsing process—for example, waiting for a document to be formatted and displayed in a Web browser or similar application. As parsing time increases, application performance is adversely affected.
To avoid this performance degradation and the frustration it causes for users, it would be desirable to preprocess (that is, pre-parse) documents. If a document is static in nature, the document can be parsed into a DOM tree, and this DOM tree can then be streamed into binary format using Java or C++ object streaming. (“Java” is a trademark of Sun Microsystems, Inc.) Techniques for binary streaming of complex hierarchical objects, such as the tree structure used for a DOM, are well known in the art and the methods (i.e. software) with which these techniques are implemented are readily available. The streamed objects resulting from this process are also referred to as “serialized” objects. Typically, the serialization process for an object occurs by invoking a predefined serialize method on the object, passing the name of an output stream as a parameter to this method. The method then writes the object to that stream in a serial form. Any embedded or referenced objects are processed recursively during this process. Upon completion of this process, the stream is closed and written out to an alternate medium such as a file on disk or a communications channel. The stream represents a “flattened” version of the object. This flattened output contains information about the original structure of the object, so that the struct
Burkett Charles Edward
Lection David Bruce
Schreiber Elizabeth
Styles David B.
Doubet Marcia L.
Feild Joseph H.
International Business Machines - Corporation
Nguyen Maikhanh
Ray-Yarletts Jeanine S.
LandOfFree
Method and system for selectively streaming markup language... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and system for selectively streaming markup language..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for selectively streaming markup language... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3139371