Title of Invention | "A COMPUTER SYSTEM" |
---|---|
Abstract | A method of generating an XML document in a computer system, wherein the computer system comprises a script processor operable to interpret a script language, the computer system including a script language, the script language including control statements for including data content and style information from a plurality of data sources, the method comprising generating a first script having at least one script language control statement; processing the first script in the script processor to generate first document; specifying content to be included in the XML document, and processing the first script in the script processor to generate a second document specifying the style of the content in the XML document. |
Full Text | Field of the Invention This invention generally relates to page display software languages for programmers on the world wide web. More specifically, this invention relates to providing uniform content information from a central location to display pages. Description of the Related Art A significant development in computer networking is the Internet, which is a sophisticated worldwide network of computer systems. A user at an individual PC (i.e., workstation) that wishes to access the Internet typically does so using a software application known as a web browser. A web browser uses a standardized interlace protocol, such as HyperText Transfer Protocol (HTTP), to make a connection via the Internet to other computers known as web servers, and to receive information from the web servers that is displayed on the user's display. Information displayed to the user is typically organized into pages that are constructed using a specialized language such as Hypertext Markup Language (HTML), Extensible Markup Language (XML), and Wireless Markup Language (WML), hereinafter (markup languages). Markup languages are typically based on the Standard Generalized Markup Language (SGML) that was created with the original purpose of having one standard language that could be used to share documents among all computers, regardless of hardware and operating system configurations. To this end, markup language files use a standard set of code tags embedded in their text that describes the elements of a document The web browser interprets the code tags so that each computer having its own unique hardware and software capabilities is able to display the document while preserving the original format of the document. Each document typically resides in a separate file on toe server. For companies doing world-wide business over the Internet, web pages are translated into the appropriate language and stored as hard-coded HTML anotor active server pages (ASP). Further, business units in different countries or regions often target specific products and/or services for that particular area, requiring customized information on the web pages. Updating the pages may quickly entail an overwhelming amount of overhead for the business organization. Additional overhead is incurred with the proliferation of specialized mark-up languages having unique syntax for different types of computer systems, such as WML for portable, wireless, telephones and personal communication systems. In many instances, the format or style of the page may be common across servers, especially when a company strives for a unified appearance across their pages, but data on the page may be unique to a specific server. There are a number of different web browsers available, each supporting their own extensions to markup languages such as HTML. Thus, a document written for one browser may not be interpreted as intended on another browser if it does not support the same extensions. In many situations, software developers are forced to create unique documents for each browsers, or to include logic in the markup language that bypasses or executes certain portions of code, depending on which browsers are being supported. This adds another layer of complexity to developing and updating these documents. XML was designed to meet the requirements of large-scale web content providers for industry-specific markup (i.e., encoded descriptions of a document's storage layout and logical structure), vendor-neutral data exchange, media-independent publishing, one-on-one marketing, workflow management in collaborative authoring environments, and the processing of web documents by intelligent clients. XML is also used in certain metadata applications. XML supports European, Middle Eastern, African, and Asian languages, aid all cuouuing processors support the Unicode character set encodings. It is therefore desjrableto provide a mechanism forusing XML that atkws_ customized web pages to share format and other content/behavior infcnnatios while providing capability to store data in structured, but flexible collections associated with owners. It is also desirable for the markup language to allow users to recombine and re-use data on many different pages, and to draw on different sources for data. An inheritance mechanism to allow the grouping of pages into classes, and to allow subclasses of pages to be derived is also desired. It is also desirable for such a system to support standards provided in XML. In the prior art, there are a variety of systems that provide limited content management capability. Some commercially available content management systems such as Vignette, StoryServer and Inso Dynabase, typically use templates or page components that are dynamically populated from system query language (SQL) databases and recombined into pages using pre-defined templates. These systems generally fit well with highly structured sites having many identically formatted pages, such as a news site, however, the template structures are generally fixed and not flexible. Further, in these systems, the data storage paradigm is based upon filling named slots in the templates, which does not lend itself to a flexible data format dut prioritizes the expression of data and its relationships. The template model for such systems is typically based on either Java, or a scripting language such as VBScript or Tcl/Tk, and limited support is typically provided for XML as a data type. Another variety of systems that provide limited content management capability are internet application servers such as ColdFusion. These application servers are primarily designed to support development of interactive applications. Most of the site template structures are hard-coded as server scripts, often using a mixture of standard HTML tags and proprietary tags that are pre-processed on the server. Each script is independent of the others; there is no inheritance mechanism. Even though the scripts are based on tags, the scripts are not well-farmed XML, but rather custonuzed HTML, mxi the separation of fonn Further, use of XML in these systems is limited to complete source data files. Web-enabled object/XML databases such as Store/eXcelon, Poet, etc., provide a platform for high-performance application development around a flexible repository, but provide limited development tools. The data modeling capabilities are flexible and well-suited to free-form web content, however, and there is no high-level scripting language to provide a iramework for managing content Traditional non-web content management systems such as Interleaf, ArborText, and TexCel are designed for generic, media-oetnra content management, and are frequently SGML-based, therefore leading to a natural evolution towards XML. These systems are typically deployed for maintaining major documentation projects. The output of these systems is normally customized for a particular customer, and may be delivered online, on compact disc, or in print. These systems are designed to assemble explicit documents, however, and do not include capabilities for providing data-driven, script-aided document delivery. One other system for populating pages includes using ASP and SQL with content selection rules supported by personalzation/recommendation software components. This is a relatively simple approach to content management, however, most of the site template structures are hard-coded hi HTML, and thus there is no inheritance mechanism. Additionally, most of the data is embedded in the pages, and pages are personalized by populating pre-defined slots with targeted data. Mass customization is possible, but there is little flexibility. SUMMARY OF THE INVENTION A method and computer program product for generating XML documents using a script language that extends the capabilities of XML. The script language includes control statements for including data content and style information from a plurality of sources. One or mote scripts may be developed that mdndes script language control statements. A script processor processes the scripts and generates a content document and a style document The content document specifics the content to be included in the XML document, and style document specifies the style for displaying the content in the XML document One set of program instructions transform the content document and the style document into an XML document. Another set of program instructions convert the XML document to an output document for a selected type of display. The script language and script processor provide facilities for gathering content and style information from a plurality of sources. Numerous scripts may be generated to override and/or extend information in one or more of the other scripts, thereby allowing a developer to customize selected portions of the output document while using shared content and style for the remaining portions of the output document BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a block diagram of a computerized information network with which the present invention may be utilized. Figure la is a block diagram of a computer system with which the present invention may be utilized. Figure 2 is a block diagram of a device for generating documents according to the present invention. Figure 3 is an example of a source file for a user script according to the present invention. Figure 4 is an example of a source file for a base script according to the present invention. Figure 5 is an example of a source file for a data island according to the present invention. Figure 6 is a flowchart for generating docaaeots according to the present invention. The present invention may be better understood, and its numerous objects, features, and advantages made apparent ;o those stalled in the an by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items. DETAILED DESCRIPTION Overview of Preliminary Concepts and Definitions While the Internet is used herein as an example of how the present invention is utilized, it is important to recognize that the present invention is also applicable to other information networks that utilize documents with content represented in a markup language. For those who are not familiar with XML, the Internet, the worldwide web, web servers, and web browsers, a brief overview of these concepts is presented here. An example of a typical Internet connection found in the prior art is shown in Fig. 1. A user that wishes to access information on the Internet typically has a computer workstation 112, also referred to as "the client workstation", that executes an application program known as a web browser 114. Workstation 112 establishes a communication link 116 with web server 118 such as a dial-up wired connection with a modem, a direct link such as a Tl or ISDN line, a wireless connection through a cellular or satellite network, or a local data transport system such as Ethernet or token ring over a local area network. When the user enters a request for information by entering commands in web browser 114, workstation 112 sends a request for information, such as a search for documents pertaining to a specified topic, or a specific web page to web server 118. Each web server 118,120,122,124 on the Internet has a known address which the user must supply to the web browser 114 in order to connect to the appropriate web server 118,120,122, or 124. If the information is available on the user's web server 118, a central link such as backbone 126 allows web servers 118,120,122,124 to communiratr with one another to supply the requested information. Because web servers 118,120,122,124 can contain more than one web page, the user with also specify in the address which particular web page he wants to viw. The address, also known as a universal resource locator (URL), of a home page on a server is a series of numbers that indicate the server and the location of the page on the server, analogous to a post office address. For simplicity, a domain name system was developed that allows users to specify servers and documents using names instead of numbers. A URL may further specify a particular page in a group of pages belonging to a content provider by including additional information at the end of a domain name. The web servers 118,120,122,124 execute a web server application program which monitors requests, services requests for the information on that particular web server, and transmits the information to the user's workstation 112. Workstation 112 and/or web servers 116 are computer systems, such as computer system 130 as shown in Fig. la. Computer system 130 includes central processing unit (CPU) 132 connected by host bus 134 to various components including main memory 136, storage device controller 138, network interface 140, audio and video controllers 142, and input/output devices 144 connected vie input/output (I/O) controllers 146. Those skilled in the art will appreciate that this system encompasses all types of computer systems including, for example, mainframes, minicomputers, workstations, servers, personal computers, Internet terminals, network appliances, notebooks, palm tops, personal digital assistants, and embedded systems. Typically computer system 130 also includes cache memory 150 to facilitate quicker access between processor 132 and main memory 136. I/O peripheral devices often include speaker systems 152, graphics devices 154, and other I/O devices 144 such as display monitors, keyboards, mouse-type input devices, floppy and hard disk drives, DVD drives, CD-ROM drives, and printers. Many computer systems also include network capability, terminal devices, modems, televisions, sound devices, voice recognition devices, electronic pen devices, and mass storage devices such as tape drives. The number of devices available to add to personal computer systems continues to grow, however computer system 130 may include fewer components than shown in Fig. la and described herein. The peripheral devices usually communicate with processor 132 over one or more buses 134,156,158, with the buses communicating with each other through the use of one or more bridges 160,162. Computer system 130 may be one of many workstations or servers connected to a network such as a kxal area network (LAN), a wide area network (WAN), or a global information network such as the Internet through network interface 140. CPU 132 can be constructed from one or more microprocessors and/or integrated circuits. Main memory 136 stores programs and data that CPU 132 may access. When computer system 130 starts up, an operating system program is loaded into main memory 136. The operating system manages the resources of computer system 130, such as CPU 132, audio controller 142, storage device controller 138, network interface 140, I/O controllers 146, and host bus 134. The operating system reads one or more configuration files to determine the hardware and software resources connected to computer system 130. Storage device controller 138 allows computer system 130 to retrieve and store data from mass storage devices such as magnetic disks (hard disks, diskettes), and optical disks (DVD and CD-ROM). One skilled in the art will recognize that the foregoing components and devices are used as examples for sake of conceptual clarity and that various configuration modifications are common. For example, audio controller 142 is connected to PCI bus 156 hi Fig. la, but may be connected to the ISA bus 138 or reside on the motherboard (not shown) in alternative embodiments. As further example, although computer system 130 is shown to contain only a single main CPU 132 and a single system bus 134, those skilled in the art will appreciate that the present invention may be practiced using a computer system that has multiple CPUs 132 and/or multiple busses 134. In addition, the interfaces that are used in the preferred embodiment may include separate, fully programmed microprocessors that are used to off-load computationally intensive processing from CPU 132, or may include input/output (I/O) adapters to perform similar functions. Further, PCI bus 156 is used as an exemplar of any input-output devices attached to any I/O bus; AGP bus 139 is used as an exemplar of any graphics bus; graphics device 154 is irscd as an exemplar of any graphics controller; and host-to-PCI bridge 160 and PCI-to-ISA bridge 162 are used as exemplars of any type of bridge. Consequently, as used herein the specific exemplars set forth in Fig. la are intended to be representative of their more general classes. In general, use of any specific exemplar herein is also intended to be representative of its class and the non-inclusion of such specific devices in the foregoing list should not be taken as indicating that limitation is desired. A web page is primarily visual data that is intended to be displayed on the display monitor of the user's workstation 112. When web server 118 receives a web page request, it will transmit a document, generally written in a markup language such as HTML or XML, across communication link 116 to the requesting web browser 114. Web browser 114 interprets the markup language and outputs the web page to the monitor of user workstation 112. This web page displayed on the user's display may contain text, graphics, and links (which are addresses of other web pages.) These other web pages (i.e., those represented by links) may be on the same or on different web servers 116. The user can go to these other web pages by clicking on the links using a mouse or other pointing device. This entire system of web pages with links to other web pages on other servers across the world comprises the world wide web. Style sheet mechanisms available in markup languages enable style elements to be consistent across web pages that are related to one another (e.g., web pages belonging to a web site of a particular corporation). For example, HTML uses cascading style sheets (CSS), SGML uses document style semantics and specification language (DSSSL), and XML uses extensible style language (XSL). XSL is a language for expressing style sheets in XML, i.e., to express how the structured content of an XML file should be styled, laid out, and paginated onto some presentation medium such as a window in a web browser or a set of physical pages in a book, report, pamphlet, or memo. XSL was developed because XML offers greater data display possibilities than HTML. XML lets audioes mark op data with author-defined elements (opening and closing pairs of tags) that specify the nature of the data. This allows the developer to clearly organize customized data structures. The data elements can be displayed with consistent formatting in different places on one document or across a series of documents. XML inserts the datum in the appropriate location, and XSL allows for more complex formatting than style sheet mechanisms associated with other markup languages. XML enables users to create unique tags mat identify their information in more meaningful ways than simply applying a basic set of markup language tags to all documents. To accomplish this, XML provides a namespace feature, which allows the user to specify addresses to provide a unique context to tags and attributes. An XSL style sheet processor accepts a document or data in XML and an XSL style sheet, and produces the presentation of that XML source content as specified by the style sheet The presentation process includes transforming a source tree into a result tree (also known as tree transformation), and interpreting the result tree to produce a formatted presentation on a display or other media. By separating the style sheet and the data, style or formatting aspects may be modified without modifying data that is being rendered, and vice versa. XSL transformation (XSLT) is a language for tree transformation which associates patterns with templates. A pattern is matched against elements in the source tree. A template is instantiated for a particular source element to create part of the result tree. When a template is instantiated, each instruction is executed and replaced by the result tree fragment that it creates. In constructing the result tree, elements from the source tree can be filtered and reordered, and arbitrary structure can be added. XSLT uses XML namespaces to distinguish elements that are instructions to the XSLT processor from elements that specify literal result tree structure. A schema specifies the structure of an XML document and constraints on its content. XML defines rules for defining markup languages having tags, while a schema is a formal specification of the grammar for one markup language. A schema is useful for validating the document content and for describing the grammar of die language. The schema defines the elements that can appear within the document and the attributes that can be associated with an element. XML schemas are extensible and software developers are free to add their own elements and attributes to XML schema documents. It defines whether an element is empty or can include text. The schema can also define default values for attributes. XML includes a feature known as the Document Object Model (DOM) which is an application programming interface (API) for HTML and XML documents. The DOM defines the logical structure of documents and the way a document is accessed and manipulated. In the DOM, programmers can build documents, navigate their structure, and add, modify, or delete elements and content Many objects found in an HTML or XML document can be accessed, changed, deleted, or added using the DOM. Documents are modeled using objects, and the model encompasses not only the structure of a document, but also the behavior of a document and the objects of which it is composed. As an object model, the DOM identifies the interfaces and objects used to represent and manipulate a document, the semantics of these interfaces and objects including both behavior and attributes, and the relationships and collaborations among these interfaces and objects. Description Fig. 2 shows a block diagram of server pages processing apparatus 200 for generating and processing XML and XSL documents using XML server pages language (XSP) in accordance with the present invention. The present invention includes the XSP script language and XSP processor 202 mat interprets scripts written in XSP. XSP processor 202 resides on web server 116 (Fig. 1), and on other web servers, as required. One way to invoke XSP processor 202 is dynamically, through an online mechanization wherein a user submits one or more XSP scripts from client workstation 112 (Fig. 1) to XSP processor 202 through an application program interface (API) on web server 116. Examples of commonly known interfaces to web server 116 that may be used include the Internet Services Application Programming Interface (TSAPf) and Common Gateway Interface (CGI). The resulting page is then transmitted back to client workstation 112 and is displayed or output to a selected target device, such as browser 114 (Fig. I). Another way to invoke XSP processor 202 is statically, where a developer submits one or more XSP scripts to XSP processor 202 directly on server 116. The page or pages mat result from server pages processing apparatus 200 are stored in server 116 and may be accessed by a URL request from client workstation 112. An example of XSP script 300 in accordance with the present invention is shown in Fig. 3. In the present invention, a software developer generates XSP script 300 manually or by using a software-implemented tool that automatically or semi-automatically generates XSP script 300. The tool for generating XSP scripts may include a user interface, such as an interactive, graphical user interface, or a static interface that receives user input through one or more data files. XSP scripts, such as XSP script 300, are used to generate classes of web pages. In one embodiment, XSP script 300 is initiated in XSP processor 202 by a user or another program requesting the URL of the script, such as the URL http://server/xsp/inventors.xsp =en target=ie5, where, in this example, the source for the script is stored in a file named inventors.xsp in the xsp directory on computer system server. The request also includes parameters that provide information pertaining to, among other things, the XML and XSL documents that will be generated during data gathering process 204 and style sheet builder process 206 shown in Fig. 2. For example, the parameter l=en (language = english) provides information on which language will be used to display the resulting page. Another example is the parameter target=ie5 that identifies the browser that will be used so that the documents can be tailored to the unique features and extensions of the particular browser. Other parameters may be implemented as required. Another alternative for initiating the XSP script 300 in XSP processor 202 is by using a common object module (COM) interface to XSP processor 202, as known in the art. An XSP script is a document written in XSP and XML that specifies one or more XML documents as input to XSP processor 202. The output of server pages processing apparatus 200 is an XML object that may be a well-formed markup language document that is ready to be input to a browser, or it may be expressed in another format that is ready for use in a data-interchange process with another system, or for formatting and delivery to an HTML or non-HTML client XSP script 300 is interpreted by XSP processor 202 as a set of subroutines that create XML structures in a result tree. The XML structures may be created by querying and transforming one or more XML data sources, or by direct inline1 coding of desired output as a template. In one embodiment of XSP, all core functionality to support the structure of the result tree, whether it is an XML electronic data interchange (EDI) message, or a markup language document derived from an XML document, is implemented in low level "base" scripts. "User" scripts provide extensions and/or overwrite low level base scripts. The XML data sets referenced in user scripts determine the final result tree. This feature is known as the inheritance mechanism and it results in a very small number of compact scripts being able to support very large websites and a wide variety of actual document formats. Inheritance is an object oriented design feature which lets the user define some shared functionality, then override it in specific cases. Thus, a page may be divided into separate building blocks, with each block being generated by different XSP scripts. When a change is required in one block, only the affected scripts must be changed and the other blocks remain the same. The inheritance mechanism also allows configuration control of page formats. For example, developers in different regions may be given access to blocks containing information that is unique to their region, such as information presented in a particular language, or different products that may be available in one region but not others. This allows software developers to change the information that is unique to them, while still maintaining commonality with scripts which generate the blocks that are common with other regions. In accordance with the present invention, XSP scripts may also include capabilities for creating and accessing named and scoped variables, exercising flow control, instantiating and accessing COM objects, and creating XML data islands with script scope on a web server. XSP scripts share control structure syntax with XSL, but place the XSP control structure syntax in a different XML namespace to clarify whether XSP processor 202 executes the control structure, or whether the control structure is handled ir. ..another tier of server pages processing apparatus 200. In the example of XSP script 300 in Fig. 3, XSP statement 302 includes namespace parameters that indicate the name of the base script and the location of files containing information for generating a content file and a style sheet in data gathering process 204 and style sheet builder process 206, respectively. In the example shown in line 302 in Fig. 3, the namespace parameters, denoted by xmlns, include namespaces for XSP documents (xsp="uri:xsp"), XSL documents (xsl="uri:xsl"), and XML default documents (doc="uri:doc"). Note that in this embodiment, open carets "" are used to denote control statements. The XSP scripting language of the present invention includes several different XSP control statements that are denoted by tags that are defined using the schema feature of XML. The XSP control statement tags are recognized by XSP processor 202. For example, XSP script 300 begins with "" in line 398 to denote the start and end of the script. In one embodiment, the syntax for the where: base-script is the name of the script from which this one inherits; script-statements is the value to be assigned to the variable or property; and default-scope is the value to be assigned to the variable or property. Every XSP script has |
---|
682-del-2000-correspondence-others.pdf
682-del-2000-correspondence-po.pdf
682-del-2000-description (complete).pdf
Patent Number | 232954 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Indian Patent Application Number | 682/DEL/2000 | |||||||||
PG Journal Number | 13/2009 | |||||||||
Publication Date | 27-Mar-2009 | |||||||||
Grant Date | 24-Mar-2009 | |||||||||
Date of Filing | 25-Jul-2000 | |||||||||
Name of Patentee | DELL PRODUCTS L.P. | |||||||||
Applicant Address | ONE DELL WAY, ROUND ROCK, TEXAS 78682 U.S.A. | |||||||||
Inventors:
|
||||||||||
PCT International Classification Number | G06F 15/00 | |||||||||
PCT International Application Number | N/A | |||||||||
PCT International Filing date | ||||||||||
PCT Conventions:
|