DSSSL (Document Style Semantics and Specification Language) is a standard for the processing of SGML (Standard Generalized Markup Language) documents. Whereas SGML is a standard for describing documents in terms of logical structure (rather than presentation), DSSSL describes how such a structured document might be presented visually, or converted to something else, or processed in some other way. SGML is a document structure language; DSSSL is a document processing language, especially for presentation or transformation.
A quick example: the Web page you're looking at right now is an HTML (Hypertext Markup Language) document. HTML is a usage of SGML. Using DSSSL as a standard, someone could write a definition that would convert the Web page (HTML document) you're looking at into a (let's call it) Tactile Markup Language (TML) document that could be processed by an online reader-and-sound converter for the blind. Or someone could write a definition that would transform the HTML document into a Microsoft Word document. DSSSL describes how you write such a definition, effectively how you map each markup tag from one definition (such as HTML) into some formatting process or markup tag in another "language."
DSSL contains separate parts and you can choose which parts of the standard to use when creating a DSSSL definition. It contains standards for:
- A style language
- Flow objects
- A transformation language
- A document model
- A query language
The style language lets you describe how each document element (heading, paragraph, list, and so forth) will be formatted for displaying, printing, or other presentation in terms of such things as fonts, colors, and space measurements. Flow objects are the formatted objects themselves - for example, the paragraph described in terms of its typographic fonts. Flow objects are usually described as part of a style specification. The transformation language is a language for mapping a document in one SGML format to a document in another SGML format. The document model is a view of how any document is organized that uses a "grove, tree, branch, leaf..." metaphor. The query language lets you access parts of a document just as SQL lets you access particular data from a database.
Several DSSSL processors have been written that are available for downloading from the Web.