I want to verify that my idea of a hierarchy in languages for production of
traditional documents bears some resemblance to reality. (Note that I don't
expect anything close to a perfect model, just a reasonable and useful
approximation.)
=============================
Meta-Markup Languages:
We use these languages to define Markup, Transform, and Formatting languages
that can be tailored to a specific problem. Designing standard Meta-Markup
languages allows development of generalized parsing tools.
Examples: SGML and XML
---
Markup Languages:
These languages denote structure and or content. Separating markup from
formatting allows automated transformation of a document into different
formats for different functions--or even just different print runs.
Examples: DocBook, TEI
---
Transform Languages:
Transform languages provide standard tools to describe how to translate a
source document (a Marked Up document) to an object document (a Formatted
document.)
Examples: DSSSL, XSLT + XSL-Pointer
Note: I would argue that CSS is a special case. It is not a true transform
language but instead is designed to provide direct instructions for
converting strict Markup XHTML to Formatted XHTML. In any case, HTML is not
directly relevant to this discussion since it was never meant to be used for
hard-copy.
---
Formatting Languages:
Formatting languages provide high-level instructions that can be directly
converted to a typeset document. That is, Formatting languages can be
thought of as high-level typesetting languages.
Examples: XSL:FO
Note: Transitional style HTML 4.0 and XHTML are hybrids that combine
elements from the Markup and Formatting levels. After application of a CSS,
XHTML is transformed from a Marked Up to a Formatted document.
---
Typesetting Languages:
These very powerful but difficult languages were designed for electronic
typesetting. Using them can be almost as tedious as laying out type
mechanically.
Examples: RTF, TeX, troff
Note: LaTeX obscures the division between Formatting and Typesetting
languages. It even contains hints of Markup.
---
High-Level Printer Control Languages:
These languages provide a bridge between programmers and printers.
Examples: dvi, PostScript.
---
Low-Level Printer Control Languages:
Proprietary languages akin to Assembly language for controlling printers.
------------------------------
Trent Shipley
Work:
(602) 522-7502
mailto:tshipley@symbio-tech.com
http://www.symbio-tech.com