Next Up Previous Contents
Next: E.2 Document summaries
Up: E.1 SGML arcana
Previous: E.1.2 HyTime, architectures and groves
[ID index][Keyword index]

E.1.3 DSSSL

The SGML processing part of this package is implemented in DSSSL, which is a standard [iso10179] for device independent formatting of SGML documents. DSSSL includes both a style language and a (DTD to DTD) transformation language.

I have used James Clark's Jade implementation of DSSSL. This implements the style language, but not the transformation language.[Note 13] Jade has back-ends which generate RTF, MIF and rather odd TeX requiring a specialised TeX format. Clark added an SGML-transformation back-end, as a Jade extension of the standard, which uses non-standard flow-object constructors to specify SGML elements, entities and the like. In addition, I added a back-end which generates LaTeX.

It follows that the stylesheets which implement this Starlink package are not standards-conforming, and are specific to Jade. This needs a little justification.

This does not in any way affect the standards conformance of the rest of the SGML set - the various DTDs and the HyTime support - since the processing of documents is by design completely independent of the standards which define their markup.

See Appendix E.6 for online resources.

Appendix E.4 includes documentation for some of the important DSSSL stylesheets.

Notes on the code:

E.1.3.1 Jade and OpenJade

James Clark's Jade distribution, at <http://www.jclark.com/jade/>, has been frozen at Jade 1.2.1. Jade development has now forked, with `OpenJade' being developed by the community. This is based at <http://jade-cvs.avionitek.com/>. I hope to move to this distribution when time is available.

E.1.3.2 Customising the DSSSL source code.

The DSSSL source code which produces the HTML and LaTeX output has been parameterised to a limited extent. As described in Appendix E.4, it can therefore be customised either on the Jade command line, or by providing Jade with an alternative DSSSL parameters file.

Jade has a -V option which takes a DSSSL variable name as argument; this variable is then given the value #t (true), overriding any other definition in a stylesheet. Several of the stylesheets' parameters are designed to be settable this way. You can either give this option explicitly on a Jade command line, or pass it to Jade via the sgml2docs command line (see Section 6.2):

sgml2docs '--jadeflags=-Vshow-element-ids' ...

If this type of customising is insufficient, then you may take a copy of the appropriate parameters file in $STARLINK_SGML_DIR/dsssl/sl/html/slparams.dsl (or the corresponding .../latex file), call it, say my-params.dsl, and change what parameters you like. The stylesheets refer to the parameters files by the public identifiers PUBLIC "-//Starlink//TEXT DSSSL Common Parameterisation//EN", PUBLIC "-//Starlink//TEXT DSSSL HTML Parameterisation//EN" and PUBLIC "-//Starlink//TEXT DSSSL LaTeX Parameterisation//EN", and these are mapped to the real files by the catalogue file in $STARLINK_SGML_DIR/dtd/CATALOG.starlink. To direct the system to your own parameter file instead, create a catalogue file of your own (conventionally given the name CATALOG), and include the appropriate line like

PUBLIC "-//Starlink//TEXT DSSSL HTML Parameterisation//EN" my-params.dsl
(you can give a path relative to the location of the catalogue, and it's best if you quote the entry exactly as here). To direct the SGML system to this catalogue, you must include the file at the beginning of the SGML_CATALOG_FILES environment variable:
SGML_CATALOG_FILES=./CATALOG:$SGML_CATALOG_FILES
(or use the corresponding setenv command).


Next Up Previous Contents
Next: E.2 Document summaries
Up: E.1 SGML arcana
Previous: E.1.2 HyTime, architectures and groves
[ID index][Keyword index]
The Starlink SGML Set
Starlink System Note 70
Norman Gray, Mark Taylor
21 April 1999. Release DR-0.7-13. Last updated 24 August 2001