SGML-Based Document Assembly and Rendering at Perot

The ECOS infrastructure platform developed at Perot Systems aimed to permit the same document being delivered via multiple delivery mechanisms, such as the Web, fax, and plaintext. To meet this objective, I designed and developed a two-tier document assembly and rendering system based on SGML (the precursor to XML).

The system composed a document using the following steps:

  1. A template for the document was created off-line, showing the static contents and the slots into which dynamic data should be substituted at run-time. The slots were expressed in a proprietary templating language that handled substitution, multi-level looping, conditionals, and inclusions (see documentation).
  2. A business application generated the dynamic data.
  3. A document assembly process merged the template with the dynamic data, generating an SGML document containing the information to be displayed.
  4. A rendering process was picked according to the output medium, and converted the SGML document to the desired output. HTML was handled using OmniMark. Fax was handled using the Unix utilities troff. ASCII text was generated using the Unix utilities tbl (for table generation) and troff.

This document assembly process was tested through several iterations and used to deliver a large Web-site for a major client in 1998.

Rujith de Silva
Created 2001-02-07; modified 2001-02-07