Example document for SGML processing

Abstract
This document illustrates a simple SGML document type. It should be easy to write processors that can handle this document.

This document as an SGML instance

The first SGML file in the "hack" series was an example of a complete document. In this context complete means that the text file containing the document instance also holds the document type definition for the instance.

More common practice is for the document type definition to reside in a separate text file from the instance. The file containing the document type definition is referenced through the document type declaration, which is the DOCTYPE container at or near the beginning of the instance.

Processing generalities

In translating an SGML document many steps are obvious.

In particular, for translation from one document type to another, often many things can be translated element-wise.

Sometimes, however, it is necessary to descend recursively into an element.

An example where recursive descent is needed

For the task of translating this document type to HTML the link element provides an example where element-wise translation will not work.

List handling

First of all is the question of where the list element is allowed. The DTD at hand on March 26 defined the list element but did not allow it into the content model of any of the other elements. So it was what might call a stranded element. Where should list be allowed?

  1. in sections (<section>).

  2. in paragraphs (<para>).

  3. in item paragraphs (<ipar>).