SGML on the Desktop / 2. Which tools do I use? / 2.2. Which parser/formatter?


2.2. Which parser/formatter?

It is another part of the point of SGML, that the decision about which parser/formatter to use is quite separate from the decision about what DTD to use. Since SGML is a carefully defined standard, all SGML tools will be able to interwork, and will be to some extent interchangeable. The decision about which to use depends on your budget, what local expertise is available, and on what tools your collaborators will be using.

The following are random notes on some of the better known systems.

*SP is a free SGML system from *James Clark. It includes an SGML parser (nsgmls), a DSSSL engine (Jade), and support for HyTime and XML, as well as other useful SGML tools. It is extremely high quality, and very responsive to changing standards. It is available for Unix and *Windows-NT. The only downside is that although the SP documentation is clear and complete, it is extremely terse, and there is no handholding available.
*Omnimark is a highly regarded SGML parser/formatter. The company distributes a free variant, called Omnimark Lite, which can be used for small or simple conversions.
*FM+SGML is an add-on to Adobe's FrameMaker desktop publishing package. The SGML editor is integrated within the system. I understand that it uses SGML as an import and export format, and stores files and their formatting in a separate internal format, and that this leads to some idiosyncracies (see discussion in the newsgroup comp.text.sgml July 1998).
The general-purpose scripting language *Perl has good support for SGML in Dave Megginson's *SGMLSpm toolkit. Perl is free, and can do a lot more than work with SGML.

The language DSSSL (Document Semantics and Style Specification Language) is a recently defined standard for expressing how an SGML document is to be converted (formatted). XSL (XML Stylesheet Language) is a similar, and developing, standard for XML. CSS (Cascading Style Sheets) is an unrelated, and now probably obsolete, standard for HTML).

The intention is that once you have expressed your DTD's semantics in DSSSL, you can use any DSSSL engine to do the actual down-conversion, just as you can use any SGML parser to interpret your document. At present, James Clark's Jade is the only tool I know of to implement it, but its use should spread. Using DSSSL might be slightly harder work than using some proprietary system for formatting but, given that the language is more widely taken up, it should be future-proof.
Norman Gray
21 July 1998