US 20040268238A1 (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2004/0268238 A1 Liu et al. (43) Pub. Date: Dec. 30, 2004

(54) SYSTEMS AND METHODS FOR (52) US. Cl...... 715/513 PROCESSING DOCUMENTS USING AN XML-BASED PROCESS FLOW DESCRIPTION LANGUAGE

_ _ _ (57) ABSTRACT (76) Inventors: Pelya Llu, East Brunswick, NJ (US); Liang H. Hsu, West Windsor, NJ (US) Systems and methods for document processing using XML qorrespondence Adfiresg based template server pages. An XML-based Process FloW Slemens Corporatlon Description Language (PFDL) is employed to describe a Intellectual Property Department processing model for specifying a processing sequence of 170_W00d Avenue South XML-based template sever pages, Which supports develop Isehn’ NJ 08830 (Us) ment of Web-based applications and services. Aprocessing _ model for processing XML-based template server pages is (21) Appl' NO" 10/609,711 preferably based on an extensible, XML-based, pipeline (22) Filed; Jun_ 30, 2003 processing model that speci?es a collection of template processors (XML applications) that are executed in a speci Publication Classi?cation ?ed sequence for processing XML-based templates, and Which can interpret processor-speci?c XML elements Within (51) Int. Cl.7 ...... G06F 15/00 the templates. g Q

Web/Application Server Backend BusinessIAppIicationISite Logic 25 36" 33

Object Content Pages! Trans ormation Components XML Templates! Definitions DTDs

Template Proces§or(s) DOM Data Application (e.g, tsp.exe, XS/?m Access Controller 1, -/ 80 J H p’ /Y/

‘ Q , XML Processing Engine A 91 \) "Z7 w (Pipeline Processing) /‘''’2‘? Qq / ' XML Content/Logic. Other Transformation ~ Processor Parser Processor Processor(s) (9.9" XSLT)

\ / \ / \ / \ / XML-based Templates \ / é/ / / HTML/XHTML/XML Pages URL with Variabldlnput and \ Session) / \ \ Network Backbone // \ / 1 Client Device

XML/HTML Browser Patent Application Publication Dec. 30, 2004 Sheet 1 0f 5 US 2004/0268238 A1

v L2 111/

| i Web/Application Server 2; 3i’ Backend BusinessIApplication/Siteas Logic

Object Content Pages! Trans ormation Backend State, XML Templates! Definitions Components (e.g., XSLT Persistence . ltd! '

Template Proces§or(s) DOM Data Application (e.g, tsp.exe, XS/f'ae Access Controller 2L] 910 J M f’ /5’/ 51¢ 27 XMl. Processing Engine 0?? 0,) q /7 r___ w 1 (Pipeline Processing) f" /—’ _/ ' . Transformation XML ‘ Content/Logm _ Other __ Parser ' Processor Processor(s) Processor §e.g., XSLT) / \ ,1 \ / \ / \ XML-based Templates \ / é/ // HTML/XHTML/XML Pages URL with Variable?lnput and \ / Session) \ / \ Network Backbone / / L / Client Device

XML/HTML Browser

Fig. 1 Patent Application Publication Dec. 30, 2004 Sheet 2 0f 5 US 2004/0268238 Al

£33k?Ami395?commwwmE8+ ‘mlN W962i:\Q\Q\@5559EEQEEQEPESEPE19?:momma 1t+orig . Patent Application Publication Dec. 30, 2004 Sheet 3 0f 5 US 2004/0268238 A1

EMILE-uA DMILEEA CHI-E25A DEALS-t Quin-‘5%A Quin-E5 CHI-E25 Quins-E hum-‘E25 Quin-55*.

A>?Ew wEw: 02g AanEo wEmc m:_m> Aim-co 85823 “on: 202625 592:: AZaEw Qcoimmw AbaEo $950222". Em “80530.. “02:52 ABQEo 35882. How: Eogmmma GHQ.E855Ho.mPEwEQEN.smmouopm@228:N5$582036.28 Patent Application Publication Dec. 30, 2004 Sheet 4 0f 5 US 2004/0268238 A1

PENEwGHQmoiaixuccnvumwcqGEM855208:28:isSSd?.uommouoa iv5538.53=5,m6“m3dm.559.5m52.358Al Patent Application Publication Dec. 30, 2004 Sheet 5 0f 5 US 2004/0268238 A1

foEEEmnéouEEvA>uonéouEE <._.uonbouEE US 2004/0268238 A1 Dec. 30, 2004

SYSTEMS AND METHODS FOR PROCESSING applications. In general, active template processing methods DOCUMENTS USING AN XML-BASED PROCESS enable dynamic content generation via server-side process FLOW DESCRIPTION LANGUAGE ing, for example. For example, Active Server PagesTM (or “ASP”) and Java Server PagesTM (or “JSP”) are examples of TECHNICAL FIELD Well-knoWn active template processing protocols that are [0001] The present invention relates to systems and meth used for dynamically composing/updating and delivering ods for document processing using document templates. pages. These methods enable the development of dynamic, Further, the present invention relates to systems, methods interactive front-ends for Web applications. and applications that implement an XML-based PFDL (Pro [0008] More speci?cally, as is Well-knoWn in the art, JSP cess FloW Description Language) for providing active docu is a technique that enables separation of content generation ment template processing using computation speci?cations and page layout, Which enables application developers to that are speci?ed Within XML-based templates. create Web applications using Web pages that display BACKGROUND dynamically-generated content. In general, JSP documents are text-based documents that are authored using markup [0002] In general, document processing systems and vocabularies (such as static HTML, XML, etc.) to include methods provide various types of computation tasks as static tags (e.g., HTML, XML), along With additional JSP required for transforming document formats and structures, speci?c tags, declarations, and/or scripts, to encapsulate the particularly in dynamic Web page generation. For example, logic that generates the dynamic content for the page. In With respect to server-side document processing of Web contrast to static content that is delivered “as is” to clients, documents on the WWW (), a process for a JSP page undergoes server-side processing including inter dynamically generating a Web document typically com preting the J SP page and converting the J SP page to a servlet prises receiving client requests (e.g., URL and input data) Which is compiled and loaded by a JSP engine to dynami from a client application, folloWed by server-side data cally generate the content of the JSP page. During process source connection, content access from server-side database, ing of a servlet associated With a JSP page, the JSP engine document transformation, and then Web page generation. Will pass the static formatting tags (e.g., HTML, XML) [0003] The development of open standards such as XML directly back to the response page. During dynamic content (extensible ) has led to more ef?cient and generation, a JSP page may call JavaBeans (or other Java effective methods for document processing, Wherein the components), Which contain business and data logic for an documentation process can be automated in many areas in application to perform processing on the server. document lifecycle. [0009] The J SP method enables separation of presentation, [0004] As is knoWn in the art, XML is an extensible text content and business logic, Wherein JSP developers generate format standard, Which has been developed for use With the business logic (e.g., Java components) that drives the large-scale electronic publishing and netWork exchange of content presented to the end user, and the custom JSP various types of data, for example. XML alloWs authors and tags/elements that encapsulate pieces of business logic providers to design their oWn document markup (see, e.g., (reusable components), and Wherein content authors gener XML Extensible Markup Language (XML) 1.0 (Second ate presentation templates that use the components/elements Edition) W3C Recommendation 6 Oct. 2000). (business logic) that are made available by the developers. [0005] Conventionally, Web applications Were developed [0010] Similarly, an ASP is an HTML page that includes using loW-level programming languages by Writing pro one or more scripts that are interpreted by a script interpreter grams and scipts. With the development of higher level on the Web server to build or customiZe a page on the ?y n-tier application designs that enable separation of content, before sending the page to the requesting client. business logic and presentation, template processing meth ods have been used to describe the data independent portions [0011] Although template techniques such as JSP and ASP, of Web applications, such as introductory pages, forms, etc., are suitable for Web-based publishing environments, general page layout, etc. such methods do not implement XML syntax. As such, When handling XML-based documents, such methods must imple [0006] In general, application authors can create templates ment double processing and can create performance that de?ne the layout and sructure of a set of pages using, issues With complex computation tasks. e.g., HTML or XML vocabularies. Conventional templating methods for document processing include “passive” tem [0012] Accordingly, given the increasing popularity and plate and “active” template processing methods. Passive ubiquity of XML for, e.g., Web-based application environ template methods have limitations With respect to document ments, it Would be highly desirable to generate an active processing speci?cations. Indeed, passive template methods template system and method for providing document pro normally specify generic document structure layout and cessing and application development based on con?gurable content instantiation, Wherein computation speci?cations XML-based templates. are hard-coded in the template interpretation program. Such passive template methods are typically rigid and do not SUMMARY OF THE INVENTION alloW document structures to be dramatically modi?ed, Which is disadvantageous for Web-based applications, for [0013] The present invention relates to systems and meth example, Which typically require various computation tasks ods for document processing using XML-based template for serving client requests. server pages. In one embodiment of the invention, a method for processing documents comprises: executing a document [0007] On the other hand, “active” document template template; obtaining template processing speci?cations that processing techniques are highly desirable for Web-based are speci?ed Within the document template to provide US 2004/0268238 A1 Dec. 30, 2004

instructions for processing elements of the document tem [0019] FIG. 2 is a How diagram illustrating a method for plate; and processing the elements Within the document template processing using an extensible pipeline-processing template by sequentially calling template processors that are model for XML-based templates according to an embodi speci?ed in the template processing speci?cations. ment of the invention. [0014] Preferably, template processing speci?cations [0020] FIG. 3 is an exemplary diagram illustrating an according to an embodiment of the invention are described XML DTD (document type de?nition) of a Process FloW using an XML-based Process FloW Description Language Description Language for data access and variables process (PFDL), Which describes a processing model for specifying ing, according to an embodiment of the invention. a processing sequence of XML-based template sever pages. Such model supports development of Web-based applica [0021] FIG. 4 is an exemplary diagram illustrating an tions and services. More speci?cally, a processing model for XML DTD of a Process FloW Description Language for processing XML-based template server pages according to conditional logic processing, according to an embodiment of an embodiment of the invention is preferably based on an the present invention. extensible, XML-based, pipeline processing model that [0022] FIG. 5 is an exemplary diagram illustrating an speci?es a collection of template processors (XML applica XML DTD of a Process FloW Description Language for tions) that are executed in a speci?ed sequence for process document transformation processing, according to an ing XML-based templates, and Which can handle processor embodiment of the invention. speci?c XML elements Within the templates. For example, a processing model can specify a sequence of conditional DETAILED DESCRIPTION OF THE logic processing, data access processing, document trans PREFERRED EMBODIMENTS formation processing and/or session handling, etc. [0023] The present invention relates to systems and meth [0015] Preferably, document processing systems and ods for document processing using XML-based template methods according to the invention are based on template speci?cations Within XML-based templates, Wherein the server pages. An XML-based Process FloW Description Language (PFDL) according to an embodiment of the inven semantics of such template speci?cations are used to direct tion describes a processing model for specifying a process the computation of XML template processors. For example, ing sequence of XML-based template sever pages, Which in one embodiment, pipeline process How descriptions, supports development of Web-based applications and ser Which are used for directing the computational steps of the vices. In general, a processing model for processing XML XML template processors, are implemented using standard based template server pages according to an embodiment of XML syntax of processing instructions (PI) that are speci?ed the invention is preferably based on an extensible, XML in the prologs of XML-based templates. In other Words, a based, pipeline processing model that speci?es a collection pipeline processing model according to an embodiment of of template processors (XML applications) that are executed the present invention is preferably based on a sequence of in a speci?ed sequence for processing XML-based tem processing instructions that are speci?ed Within an XML plates, and Which can interpret processor-speci?c XML based template to direct the template processing. The pro elements Within the templates. For example, a processing cessing instructions use standard XML syntax to describe model can specify a sequence of conditional logic process processors and processor-related XML elements that are ing, data access processing, document transformation pro de?ned in a doctype attribute. As such, pipeline processing cessing and/or session handling, etc. frameWorks for processing template server pages according to the invention are extensible, enabling users to de?ne [0024] Preferably, document processing systems and custom XML template processors speci?ed by custom methods according to the invention are based on template DTDs (document type de?nition). speci?cations Within XML-based templates, Wherein the [0016] Systems and methods for pipeline processing semantics of such template speci?cations are used to direct XML-based template server pages according to the inven the computation of XML template processors. For example, tion can be used for building various types of Web-based in one embodiment, pipeline process How descriptions, Which are used for directing the computational steps of the applications and services, such as a Web-based product con?guration application. A Web-based product con?gura XML template processors, are implemented using standard tion application according to the present invention provides XML syntax of processing instructions (PI) that are speci?ed a frameWork for pipeline processing of XML template server in the prologs of XML-based templates. In other Words, a pages to perform various product con?guration tasks (Which pipeline processing model according to an embodiment of are speci?ed in XML templates) such as con?guration the present invention is preferably based on a sequence of computation, transformation, connection and interaction. processing instructions that are speci?ed Within an XML based template to direct the template processing. The pro [0017] These and other embodiments, aspects, features cessing instructions use standard XML syntax to describe and advantages of the present invention Will be described or processors and processor-related XML elements that are become apparent from the folloWing detailed description of de?ned in a doctype attribute. As such, pipeline processing the preferred embodiments, Which is to be read in connec frameworks for processing template server pages according tion With the accompanying draWings. to the invention are extensible, enabling users to de?ne BRIEF DESCRIPTIONS OF THE DRAWINGS custom XML template processors speci?ed by custom DTDs (document type de?nition). [0018] FIG. 1 is a diagram of a system for template processing using XML-based process How descriptions and [0025] It is to be understood that the systems and methods processing model, according to an embodiment of the described herein in accordance With the present invention present invention. may be implemented in various forms of hardWare, soft US 2004/0268238 A1 Dec. 30, 2004

Ware, ?rmware, special purpose processors, or a combina sources. The components (25) encapsulate business logic to tion thereof. Preferably, the present invention is imple perform generic tasks such as calling Web services or mented in as an application comprising program accessing a backend databases (e.g., database (14)), for instructions that are tangibly embodied on one or more example. program storage devices (e.g., hard disk, magnetic ?oppy [0030] The application content is preferably authored disk, RAM, CD Rom, DVD, ROM, etc.), and executable by using XML content pages (and/or other declarative lan any device or machine comprising suitable architecture. guages) and XML-based templates that are stored in the [0026] It is to be further understood that because the database (24). The database (24) may further include DTDs constituent system modules and method steps depicted in the associated With the content pages/templates, Which are accompanying Figures are preferably implemented in soft accessible during page processing to interpret elements/tags Ware, the actual connections betWeen the system compo Within such pages/templates. Furthermore, presentation of nents (or the How of the process steps) may differ depending the content may be speci?ed based on transformation de? upon the manner in Which the application is programmed. nitions stored in database (23) (e.g., XSLT (Extensible Given the teachings herein, one of ordinary skill in the Stylesheet Language De?nitions)) that enable transforma related art Will be able to contemplate these and similar tion of the structure of XML document instances to other implementations or con?gurations of the present invention. structures (e.g., HTML, XHTML, WML, etc.). The database (23) may comprise a plurality of stylesheet ?les that include [0027] Referring noW to FIG. 1, a diagram illustrates a coding for performing such transformations and/or coding client/server system that provides pipeline processing of (XSL) for rendering/presenting the transformed content. The XML-based templates based on process How descriptions, XML template/documents in database (24) can specify links according to an embodiment of the present invention. The to such stylesheet ?les and associated DTDs stored in exemplary system of FIG. 1 illustrates a Web-based frame database (23). Work, although one of ordinary skill in the art Would readily [0031] The XML processing engine (17) processes XML appreciate that the invention can be implemented in other template pages (24) and/or transformation de?nitions (23) envrionments. In general, the system (10) comprises a Web for providing dynamic generation and/or presentation of server/application server (11) and a client device (12) (e.g., e.g., HTML, XML, XHTML content pages. The XML Workstation, portable laptop, PDA, mobile (smart) phone, processing engine (17) can use object components (25) etc.) including a XML/HTML broWser application (13) (objects/programs associated With the business and data (although other modalities may be implemented such as logic) for, e.g., accessing backend information from data WML). The client device (12) can be used to access the base (14), changing/accessing application state (22), per server (11) over a netWork (14) (e.g., Internet, Wireless, forming task oriented operations, etc., during processing of LAN, WAN, PSTN, etc.). The server (11) can access one or an XML template. more enterprise databases (e.g., database (14)) such as Oracle, DB2, SQL server, etc. over a netWork (15) (e.g., [0032] It is to be understood that the XML templates (24) LAN), Which netWork can be the same or different from the may comprise any legal XML document. XML templates are netWork (14). The Web-based application architecture shoWn preferably used to describe the content and structure of in FIG. 1 is preferably an n-tier application With a broWser documents/pages of an application. The XML templates are based front end, a middle-tier business logic, and backend preferably used for dynamic generation of the front end user database and transaction server. interface (e.g., HTML forms). XML templates may contain a query string for accessing data from a database or may [0028] In general, the server (11) comprises backend busi contain a stored procedure that is executed by accepting ness/application/site logic (16) (or logic module), Which input parameters that are passed to variables de?ned in the generally includes programming layers/modules that pro template. In other Words, an XML template can be executed vide knoWn Web sever and application server functionalities, by URL With parameter values, and passing the parameters and Well as the application logic for driving one or more to the stored procedure. applications/services. Preferably, the overall application [0033] In addition, in accordance With the present inven architecture of the logic module (16) separates the program tion, one or more XML templates include template speci? ming layers for the business logic, content page logic and cations (process ?oW descriptions) that are interpreted to page presentation logic, as is understood by those of ordi direct the computation of one or more XML template nary skill in the art. In addition, the server (11) comprises an processors (21). In particular, the logic module (16) com XML processing engine (17) that performs pipeline process prises a plurality of XML processors (21) (or template ing of XML-based templates according to the invention. processing applications) that are invoked and executed in a [0029] More speci?cally, the logic module (16) performs speci?ed sequence (pipeline processing) by the XML pro various functions such as driving the application Work?oW cessing engine (17) in accordance With the template speci under control of an application controller (18), processing ?cations for processing/interpreting processor-speci?c XML incoming requests (and variables) from client device (12) elements that are contained Within the XML templates. In and mapping such requests to content pages stored in one embodiment, pipeline process How descriptions, Which database (24), performing backend database accesses to are used for directing the computational steps of the XML database (14), for example, via a data access module (19), template processors, are implemented using standard XML and maintaining application state and persistence in data syntax of processing instructions (PI) that are speci?ed in base(22). The backend logic comprises a plurality of com the prologs of XML-based templates (the details of Which ponents (25) (e.g., reusable components such as J avabeans, are discussed beloW With reference to FIGS. 2-5). Enterprise Java beans, etc.) that are used to dynamically [0034] By Way of example, FIG. 1 illustrates an exem generate content and provide dynamic access to data plary pipeline processing by the XML processing engine US 2004/0268238 A1 Dec. 30, 2004

(17). An XML parser (26) is a processor that is initially that are exposed as objects. As is knoWn in the art, the DOM invoked to interpret an XML template/document, determine is a platform and language-neutral programming interface the structure and properties of the data and generate a speci?cation being developed by the World Wide Web hierarchically structured tree for downstream processing Consortium (W3C), Which alloWs programs and scripts to (and optionally checks XML syntax using a DTD and dynamically access and update the content, structure and reports errors). style of different types of documents (e.g., XML, HTML [0035] As illustrated in FIG. 1, the XML parser (26) may documents). With DOM, can build documents, receive as input an XML template together With variables navigate their structure, and add, modify, or delete elements and content. Virtually, anything found in an HTML or XML (input variables and session variables) received from the document can be accessed, changed, deleted, or added using client device (12). Such input may be the result, for example, DOM. of a user ?lling an HTML form With input variables (e.g., passWords, username), Wherein the HTML form comprises [0040] Therefore, using DOM, during document process a link to an XML template that is called for processing the ing, the logic module (16) can maintain the application state input variables by passing the input variables as parameters and XML documents in database (22) in a DOM format. The to the speci?ed XML template. DOM can be used an intermediate model of the application’s state that contains the user input, before it is Written back to [0036] Then based on processing instructions Within the XML template, pipeline processing the XML template may a database. The DOM module (20) creates/modi?es a DOM be sequentially performed by a content/logic template pro tree, Which can be done With the XML parser (26), via the DOM API. The underlying may be represented cessor (27), other processors (28) and a transformation by an XML DOM instance and DOM instances can be processor (29). created from the application state. The DOM representation [0037] The content/logic processor (27) (e.g., the tsp.exe of an XML document can be transformed into an HTML or application from template processor module (21)) is used by WML presentation via the transformation processor (29) and the XML processing engine (17) for processing XML ele DOM API to provide a ?nal presentation. ments of XML templates that specify content and logic processing. Such processing includes, for example, process [0041] It is to be understood that the pipeline processing ing input parameters, conditional logic processing, process performed by XML processing engine (17), as speci?ed by template instructions, can include pipeline processing Within ing embedded SQL queries, etc. In addition, other proces templates, Wherein processing occurs for elements Within sors (28) may be called to perform other types of user one XML template. Alternatively, pipeline processing may de?ned processes such as Web service, data access, occur betWeen templates, Wherein one XML template calls/ application programs, etc., as speci?ed in the template uses another template such that processing continues With speci?cations. instructions of the other template. [0038] The transformation processor (29) (e.g., XSLT [0042] FIG. 2 is an exemplary ?oW diagram illustrating a processor) can be invoked (e.g., .exe from template method for template processing using an extensible pipeline processor module (21)) for processing XML elements of processing model for XML-based templates according to an XML templates that specify document transformation and/or embodiment of the invention. Initially, an XML-template is rendering using, for example, the transformation de?nitions invoked (executed) to perform a particular task (step 100). (23) (e.g., XSLT and/or XSL stylesheets). As discussed in Preferably, XML template processing is invoked by standard further detail beloW, transformation processing includes, URL (or URN, URI), Which describes the address of a e.g., speci?cation of top-level transformation parameters, desired template and includes input parameters (e.g., vari speci?cation of client-side javascripts for client-side pro ables and session parameters). For example, URL descrip cessing or XSL rendering. In a preferred embodiment, the tions can be speci?ed in several attributes including, for transformation processor (29) comprises an XSLT Processor example, href, action, src, etc. of HTML/XHTML elements that transforms an XML instance into another form. The in Web pages. It is to be understood that step (100) represents database (23) includes XSLT de?nitions, Which describe a one of various stages of processing. For instance, step (100) vocabulary recogniZed by the XSLT processor (29) to trans can represent a situation Where an input URL and variables form the structure of a source ?le into a different structure are received in connection With a client request, Wherein suitable for continued doWnstream processing. A stylesheet template processing is invoked based on an XML template can be Written With both the transformation vocabulary and speci?ed in the client request. Alternately, step (100) repre formatting semantics vocabulary (e.g., XSL), Which is used sents a situation Where an XML template is invoked in by a rendering agent to reify abstract expression of format response to a nested element Within an XML template that into a particular medium of presentation. The input to the calls another XML template. Indeed, as noted above, pipe XSLT processor (29) comprises one or more stylesheets and line processing may occur Within an XML template and/or one or more source ?les. The output of XSLT processor (29) betWeen XML templates. is a result tree of abstract nodes. The result tree output from the transformation processor (29) can be sent directly to the [0043] After and an XML template is invoked and parsed, client device (12) for rendering by the client broWser (13) pipeline processing (e.g., steps 101-103) is performed in based on, e.g., XSL rules speci?ed in the client or based on accordance With a sequence of XML processing instructions inserted javascripts. Alternatively, rendered content pages that are speci?ed Within the XML template to specify the may be sent from the server (11) to the client broWser (13). template processing. [0039] The system of FIG. 1 may further comprise a [0044] In accordance With one exemplary embodiment of DOM (Document Object Model) processor (20) to provide the invention, the processing instructions are preferably in an API that enables control and access of XML tree elements standard XML syntax of processing instructions and are US 2004/0268238 A1 Dec. 30, 2004

specifed in the beginning (prolog) of an XML template mmdoc. In addition, the processsing instruction provides a before the root element in the body of the XML template. link (via the processor attribute) to the xslt.exe application The processing instructions are passed to the application in processor module (21), Which is used to perform such using the XML parser and provide special instructions for document transformation processing, and a link (via the the application for pipeline processing. By Way of example, doctype attribute) to the associated DTD, xslt.dtd, for speci pipeline processing instructions can start from and end With the processing instruction [0050] The output of the transformation processing (step . XHTML, XML, depending on the application, together With embedded javascripts for client-side processing for render [0045] The processing instructions begin With scope of the invention. content. An ATTLIST declaration for element mmdoc-local var declares tWo attributes, name and value, Which are both [0049] Next, the processing instructions in the XML tem string-types attributes (CDATA) With default value plate may include a processing intruction that directs the #IMPLIED (attribute value not required, and no default application to call a transformation processor (e.g., XSLT processor) for providing document transformation (step provided). 103). In the exemplary embodiment, the processing instruc [0056] The ELEMENT declaration for element mmdoc tion associated With step 103 speci?es that the tags/elements session-var is used to specify session variables. The session of the XML template are interptered in the namespece of variables store information for the life of the user session to US 2004/0268238 A1 Dec. 30, 2004

maintain the state Web application With respect to the user of items for a repeating reference. The attribute index session during multiple client-server interactions in the describes the index variable in the repeating reference. The otherWise stateless HTTP protocol. The content model attributes from and to describe the starting and ending index EMPTY indicates that the element has no content. An values. They are optional. In this case, from value is ATTLIST declaration for element mmdoc-session-var assumed to be 1. The to value is assumed to be the index to declares tWo attributes, name and value, Which are both the end of set values. string-types attributes (CDATA) With default value [0064] FIG. 5 illustrates an exemplary XML DTD (e.g., #IMPLIED. (xslt.dtd) of a Process FloW Description Language for speci [0057] An ELEMENT declaration for element mmdoc fying document transformation and outputs With client-side session-open, With content model EMPTY, speci?es a ses javascripts, according to an embodiment of the invention. As sion start in a Web-based application. An ATTLIST decla decribed above in accordance With the exemplary embodi ration for element mmdoc-session-open declares four ments of FIGS. 1 and 2, the xslt.exe template processor is attributes, datasource, user, passWord, and time-out, Which invoked to process the XML elements in template server are each string-types attributes (CDATA) With default value pages according to the model speci?ed by the xslt.dtd. #IMPLIED. [0065] An ELEMENT declaration for element mmdoc-xsl [0058] An ELEMENT declaration for element mmdoc comprises a content model With child elements mmdoc session-close, With content model EMPTY, speci?es a ses toplevel and mmdoc-java, Wherein the mmdoc-xsl element sion end in a Web-based application. An AT TLIST declara describes an XSLT transformation, the mmdoc-toplevel ele tion for element mmdoc-session-close declares one attribute, ment describes top-level input parameters to the XSLT SessionID, Which is a string-type attribute With default value transformation speci?cation and the mmdoc-java element #IMPLIED. describes client-side JavaScript, and Wherein the comma indicates that the elements mmdoc-toplevel and mmdoc [0059] An ELEMENT declaration for element mmdoc java must occur once in the order declared and the * transaction, With content model having element mmdoc indicates that there can be Zero or more ordered pairs of such query, speci?es a sequence of database or any data source elements. An ATTLIST declaration for element mmdoc-xsl operations With data integrity (the + indicates that the declares an attribute href, Which is a string-type attribute element mmdoc-query may be repeated more than once but (CDATA) With default value #IMPLIED, Which is used to it must occur once). provide a link to e.g., a stylesheet. [0060] An ELEMENT declaration for element mmdoc [0066] An ELEMENT declaration for element mmdoc query, With content model EMPTY, is used for describing a toplevel indicates that the element content contains parsed database query or update based on a database SQL element character data (#PCDATA). An ATTLIST declaration for attribute. An ATTLIST declaration for element mmdoc element mmdoc-toplevel declares tWo attributes, name and query declares four attributes, datasource, sql, roWindex, and value, Which are each string-types attributes (CDATA) With resultset, Which are each string-types attributes (CDATA) default value #IMPLIED. With default value #IMPLIED. [0067] An ELEMENT declaration for element mmdoc [0061] An ELEMENT Declaration for element mmdoc java indicates that the element content contains tWo child data-connection, With content model EMPTY, is used for elements mmdoc-parameter and mmdoc-body, separated by specifying a data source connection. The datasource could a comma Which indicates that each element must occur at be a database or any ?les. An ATTLIST declaration for least one in the speci?ed order, and Wherein the * denotes element mmdoc-data-connection declares three attributes, that there can be Zero or more mmdoc-parameter. An datasource, user, and passWord, Which are each string-types ATTLIST declaration for element mmdoc-parameter attributes (CDATA) With default value #IMPLIED. declares tWo attributes, name and value, Which are each [0062] Referring noW to FIG. 4, an exemplary XML DTD string-types attributes (CDATA) With default value is shoWn for specifying XML elements for conditional logic #IMPLIED. processing (Which is handled by the tsp.exe processor) [0068] An ELEMENT declaration for element mmdoc ELEMENT declarations for elements mmdoc-if and body indicates that the element content contains parsed mmdoc-elseif each comprise a content model including an character data (#PCDATA). ANY content model (any content is alloWed) or element mmdoc-elseif, Which elements are used for describing con [0069] It is to be appreciated that the present invention ditional logic for comparisons. Operators include include may be implemented for various Web applications. One such GT (greater than), GE(Greater than or equal to), LT(less application is product con?guration. As is knoWn in the art, than), LE(less than or equal to), and IN (member of). Web-based product con?guration applications enable busi ATLIST declarations for elements mmdoc-if and mmdoc nesses to market complex customiZable products and ser elseif include condition attributes, Which are string-type vices using electronic commerce. Such applications alloW attributes With default values #IMPIED. Acondition is a GT users to design con?gurable products as desired, Whereby (greater than), GE(Greater than or equal to), LT(less than), users can con?gure customiZed products, automatically LE(less than or equal to) and/or IN (member of) string vieW design and pricing changes as product con?guration comparison. modi?cations are made, and vieW a model of the item being created as the user selects different options throughout the [0063] An ELEMENT declaration of element mmdoc con?guration process. repeat comprises an ANY content model, and is used for specifying repeating XML elements based on attributes set, [0070] A Web-based product con?guration application index, from and to values. The attribute set describes a set according to the present invention employs a frameWork for US 2004/0268238 A1 Dec. 30, 2004

pipeline processing of XML template server pages to per executing a content and logic template processor for pro form various product con?guration tasks (Which are speci cessing elements associated With content and logic process ?ed in XML templates) such as con?guration computation, ing. transformation, connection and interaction. Web-based 10. The method of claim 9, Wherein elements associated XML computation for document processing includes data With content and logic processing comprise: elements for source connection, data accessing, document transforma describing conditional logic of comparison, Wherein opera tion, interaction With Web clients. The application can be tors include GT(greater than), GE(Greater than or equal to), executed from a Web broWser and alloWs the user to execute LT(less than), LE(less than or eaual to) and IN (member of); product con?guration concurrently or independently in (ii) an element for specifying a repeating element; (iii) an either client/server or thin Web client environments. element for declaring a block of local and session variables [0071] Although illustrative embodiments have been in templates; (iv) an element for specifying local variables in described herein With reference to the accompanying draW document templates; (v) an element for describing session ings, it is to be understood that the invention is not limited variables; (vi) elements for specifying a session start and to the precise system and method embodiments described session end; (vii) an element for specifying data source herein, and that various other changes and modi?cations connection; (viii) an element for specifying a sequence of database or any data source operations With data integrity; may be affected therein by one skilled in the art Without departing form the scope or spirit of the invention. All such (xi) an element for describing database query or update; or any combination thereof. changes and modi?cations are intended to be included Within the scope of the invention as de?ned by the appended 11. The method of claim 1, Wherein the step of processing claims. the elements Within the document template, comprises executing a transformation processor for processing ele ments associated With document transformation and output What is claimed is: 1. A method for processing documents, comprising the ting rendering scripts. steps of: 12. The method of claim 11, Wherein the elements asso ciated With document transformation and outputting render executing a document template; ing scripts comprise: an element for describing a docu obtaining template processing speci?cations that are ment transformation; (ii) an element for describing top-level speci?ed Within the document template to provide input parameters for the document transformation; (iii) an element for describing a script; or any combination thereof. instructions for processing elements of the document template; and 13. The method of claim 11, Wherein the transformation processor comprises an XSLT (extensible stylesheet lan processing the elements Within the document template by guage transformation) processor and Wherein the scripts sequentially calling template processors that are speci comprise javascripts. ?ed in the template processing speci?cations. 14. A process How processing model for processing 2. The method of claim 1, Wherein the step of executing document templates, Wherein the model is speci?ed by a document template is performed by invoking the the extensible process How descriptions Within a document document template through a URI (universal resource iden template that specify a pipeline sequence of template pro ti?er) comprising an address of the document template and cessors that are executed in a speci?ed sequence for pro input variables. cessing processor-speci?c elements Within the document 3. The method of claim 1, Wherein the document template template. comprises an extensible markup language (XML) template, 15. The processing ?oW model of claim 14, Wherein the and Wherein the template processing speci?cations are document templates comprise XML templates that are extensible. invoked by URI (uniform resource identi?er), Which 4. The method of claim 1, Wherein the template process describe the address of the templates and the input param ing speci?cations comprise processing instuctions that are eters. speci?ed using XML syntax in a prolog of the document 16. The processing model of claim 15, Wherein the XML template. templates comprise legal XML documents that optionally 5. The method of claim 1, Wherein the template process comprise XML processing instructions for directing the ing speci?cations comprise an attribute that speci?es a processing sequence of XML elements Within the XML template processor and invoking address. templates. 6. The method of claim 5, Wherein the template process 17. The processing model of claim 16, Wherein the ing instructions further comprise a grammar, or an attribute pipeline sequence is speci?ed by a sequence of the XML that speci?es a grammar and invoking address, Wherein the processing instructions that are speci?ed in a prolog of an grammar enables an corresponding processor to process XML template to specify the processing of the XML tem related elements in the document template. plate. 7. The method of claim 6, Wherein the grammar compries 18. The processing model of claim 17, Wherein a sequence a XML-based document type de?nition (DTD). of processing instructions begins With a processing instruc 8. The method of claim 1, Wherien the step of processing tion that speci?es content and logic processing and ends the elements Within the document template, comprises pro With a processing instruction that speci?es document trans viding a pipline sequence of processing inlcuding condi formation. tional logic processing, data acccess processing, document 19. The processing model of claim 18, Wherein a pro transformation processing and any combination thereof. cessing instruction comprises an attribute that speci?es a 9. The method of claim 1, Wherein the step of processing template processor and its location, Which is invoked for the elements Within the document template, comprises processing template processor-speci?c elements in the XML US 2004/0268238 A1 Dec. 30, 2004

template, and wherein the processing instruction comprises template, comprises instructions for executing a content and an attribute that speci?es a grammar that describes the logic template processor for processing elements associated template processor-speci?c elements. With content and logic processing. 20. Aprogram storage device readable by machine, tan 29. The program storage device of claim 28, Wherein gibly embodying a program of instructions executable by the elements associated With content and logic processing com machine to perform method steps for processing documents, prise: elements for describing conditional logic of com the method steps comprising: parison, Wherein operators include GT(greater than), executing a document template; GE(Greater than or equal to), LT(less than), LE(less than or eaual to) and IN (member of); (ii) an element for specifying obtaining template processing speci?cations that are a repeating element; (iii) an element for declaring a block of speci?ed Within the document template to provide local and session variables in templates; (iv) an element for instructions for processing elements of the document specifying local variables in document templates; (v) an template; and element for describing session variables; (vi) elements for processing the elements Within the document template by specifying a session start and session end; (vii) an element sequentially calling template processors that are speci for specifying data source connection; (viii) an element for ?ed in the template processing speci?cations. specifying a sequence of database or any data source opera tions With data integrity; an element for describing 21. The program storage device of claim 20, Wherein the instructions for executing a document template comprise database query or update; or any combination thereof. instructions for invoking the document template through a 30. The program storage device of claim 20, Wherein the URI (universal resource identi?er) comprising an address of instructions for processing the elements Within the document the document template and input variables. template, comprise instructions for executing a transforma 22. The program storage device of claim 20, Wherein the tion processor for processing elements associated With docu document template comprises an extensible markup lan ment transformation and outputting rendering scripts. guage (XML) template, and Wherein the template processing 31. The program storage device of claim 30, Wherein the speci?cations are extensible. elements associated With document transformation and out 23. The program storage device of claim 20, Wherein the putting rendering scripts comprise: an element for template processing speci?cations comprise processing describing a document transformation; (ii) an element for instuctions that are speci?ed using XML syntax in a prolog describing top-level input parameters for the document of the document template. transformation; (iii) an element for describing a script; or 24. The program storage device of caim 20, Wherein the any combination thereof. template processing speci?cations comprise an attribute that 32. The program storage device of claim 30, Wherein the speci?es a template processor and invoking address. transformation processor comprises an XSLT (extensible 25. The program storage device of claim 24, Wherein the Stylesheet Language Transformation) processor and template processing instructions further comprises a gram Wherein the scripts comprise javascripts. mar, or an attribute that speci?es a grammar and invoking 33. A system for processing document templates, com address, Wherein the grammar enables an corresponding prising a server, Wherein the server comprises a plurality of processor to process related elements in the document document templates for describing content and structure of template. an application, and a template processing engine for pro 26. The program storage device of claim 25, Wherein the viding server-side processing of one or more document grammar compries a XML-based document type de?nition templates, Wherein the server implements a process How (DTD). processing model for processing a document template, 27. The program storage device of claim 20, Wherien the Wherein the model is speci?ed by extensible process How instructions for processing the elements Within the document descriptions Within the document template that specify a template, comprises instructions for providing a pipline pipeline sequence of template processors that are executed sequence of processing including conditional logic process in a speci?ed sequence by the template processing engine ing, data acccess processing, document transformation pro for processing processor-speci?c elements Within the docu cessing and any combination thereof. ment template. 28. The program storage device of claim 20, Wherein the instructions for processing the elements Within the document