1 Scope
This International Standard is designed to specify the processing of valid SGML documents.
DSSSL defines the semantics, syntax, and processing model of two languages for the specification of document processing:

1.  The transformation language for transforming SGML documents marked up in accordance with one or more DTDs into other SGML documents marked up in accordance with other DTDs.  The specification of this transformation process is fully defined by this International Standard.

2.  The style language, where the result is achieved by applying a set of formatting characteristics to portions of the data, and the specification is, therefore, as precise as the application requires, leaving some formatting decisions, such as line-end and column-end decisions, to the composition and layout process.
The DSSSL style language is intended to be used in a wide variety of environments with typographic requirements ranging from simple single-column layouts to complex multiple-column layouts.  This International Standard does not standardize a formatter nor does it standardize composition or other processing algorithms. Rather, it provides the means whereby an implementation may externalize style characteristics and other techniques for associating style information with an SGML document.
DSSSL provides a mechanism for specifying the use of external processes to manipulate data.  The nature of these processes is outside the scope of DSSSL, but may include typical data management functions, such as sorting and indexing; typical composition functions, such as hyphenation algorithms; and graphics or multimedia processes for non-SGML data.
Documents that have already been formatted or do not contain any hierarchical structural information or generic markup are not within the field of application of this International Standard.
DSSSL expresses specifications to be performed by some processor that accepts an input document and produces an output document. DSSSL is independent of the type of formatter, formatting system, or other transformation processor.
DSSSL includes

1.  Constructs that provide access to, and control of, all possible marked-up information in an SGML document, as well as mechanisms for string processing to allow for the manipulation of non-marked up data. This is provided by the Standard Document Query Language (SDQL) component of DSSSL.

NOTE 1

String processing is necessary so that no special markers need be embedded in the source document to indicate presentational changes.  The display of a dropped or raised capital letter in a larger point size at the beginning of a line or paragraph is an example of a case where string processing may be used to isolate the first character or group of characters in order to achieve a desired presentational effect.

2.  Provisions for specifying the relationship between one or more SGML documents as input to a transformation process and zero or more resulting SGML documents as the output of the process.

3.  Provisions for specifying the relationships between the SGML document(s), as expressed in the source Document Type Definition(s), and the result of the formatting process.  The output of the formatting process may be an ISO/IEC 10180 Standard Page Description Language (SPDL) document or it may be a document in some other, possibly proprietary, form.

4.  Provisions for describing the typographic style and layout of a document.

5.  Definitions of a machine-processable syntax for the representation of a DSSSL specification and its various components.

6.  Provisions for creating new DSSSL characteristics and their associated values, as well as new flow object classes.  These are declared in the declarations for the style language portion of the DSSSL specification.
This International Standard is intended for use in a wide variety of SGML application environments, including both electronic publishing and conventional printing.
2 Conformance
DSSSL includes two independent languages, the transformation language and the style language, which specify processing of an SGML document. A DSSSL specification contains a number of process specifications, each of which uses either the style language or the transformation language.  A process specification that uses the style language is a style-specification.  A process specification that uses the transformation language is a transformation-specification.
If a style-specification complies with all the provisions of this International Standard, it is a conforming DSSSL style-specification. If a transformation-specification complies with all the provisions of this International Standard, it is a conforming DSSSL transformation-specification.
In both the style language and transformation language, some facilities are optional.  Each optional facility is associated with a named feature.  A process specification that makes use of an optional facility shall enable the feature with which it is associated using the features element type form.
A conforming DSSSL system shall support the style language, the transformation language, or both the style language and the transformation language.
The documentation for a conforming DSSSL system shall state whether it supports the transformation language or the style language or both and, for each language that the system supports, shall state which features of the language it supports.
A conforming DSSSL system that supports the style language shall be able to process any conforming SGML document using any conforming DSSSL style-specification that enables only features of the style language that the DSSSL system is documented to support.
A conforming DSSSL system that supports the transformation language shall be able to process any conforming SGML document using any conforming DSSSL transformation-specification that enables only features of the transformation language that the DSSSL system is documented to support.
3 Normative references
The following standards contain provisions which, through reference in this text, consititute provisions of this International Standard.  At the time of publication, the editions indicated were valid.  All standards are subject to revision, and parties to agreements based on this International Standard are encouraged to investigate the possibility of applying the most recent editions of the standards indicated below.  Members of IEC and ISO maintain registers of currently valid International Standards.
ISO 8879:1986, Information processing  Text and office systems  Standard Generalized Markup Language (SGML).
ISO/IEC 9541-1:1992, Information technology  Font information interchange  Part 1: Architecture.
ISO/IEC 9541-2:1992, Information technology  Font information interchange  Part 2: Interchange Format.
ISO/IEC 10744:1992, Information technology  Hypermedia/Time-based Structuring Language (HyTime).
ISO/IEC 10180:1995, Information technology  Processing languages  Standard Page Description Language (SPDL).
ISO/IEC 9070:1991, Information technology  SGML support facilities  Registration procedures for public text owner identifiers.
ISO/IEC 10646-1:1993, Information technology  Universal Multiple-Octet Coded Character Set (UCS)  Part 1: Architecture and Basic Multilingual Plane.
ISO 639:1988 Codes for the representation of names of languages.
ISO/IEC 3166:1993, Codes for the representation of names of countries.
ISO/IEC 6429:1992, Information technology  Control functions for coded character sets.
ISO/IEC 8601:1988, Data elements and interchange formats  Information exchange  Representation of dates and times.
ISO/IEC 9945-2:1993, Information technology  Portable Operating System Interface (POSIX)  Part 2: Shell and utility.
4 Definitions
For the purpose of this International Standard, the definitions given in ISO 8879 and the following definitions apply.
4.1  area
A rectangular box with a fixed width and height produced by the formatting of a flow object.  An area can be imaged on a presentation medium to produce a set of marks.
4.2  association
A triple consisting of a query-expression, a transform-expression, and a priority-expression.  The priority-expression defaults to 0. Associations are used to control the transformation process.
4.3  atomic flow object
A flow object that has no ports.
4.4  auxiliary grove
A grove created by parsing nodes in another grove.
4.5  characteristic
A named parameter of a flow object.
4.6  complete grove
The grove that would be built using a grove plan that selected all the classes and properties from the property set.
4.7  component name
A name defined in a property set with three variants: a reference concrete syntax name, an application name, and a full name.
4.8  creation origin
The node relative to which the position of a node in a result grove is specified.
4.9  descendants
The union of the subtrees of the children of a node.
4.10  enumerator
A possible value of an enumeration data type.
4.11  flow object
A specification of a task to be performed by the formatter. A flow object has a class, which specifies the kind of task, and characteristics which further parameterize the task.
4.12  formatting process
The process partially specified by the style language.
4.13  grove
A set of nodes connected into a graph by their nodal properties. A grove is built using a grove plan.
4.14  grove plan
A set of classes and properties selected from a property set.
4.15  grove root
The unique node in a grove that has no origin.
4.16  intrinsic property
A property that is automatically part of a property set, without being defined in the property set.
4.17  line-progression-direction
A direction associated with inline areas. The line-progression-direction is perpendicular to the inline-progression-direction of the inlined area.
4.18  nodal property
A property whose value is a node or list of nodes. Nodal properties are categorized by their property set as subnode, irefnode, or urefnode.
4.19  node
An ordered set of property assignments.  A node is a member of a grove, and belongs to a class defined in the grove plan used to build its grove.
4.20  origin
For a node x, the node that exhibits for a subnode property a value that includes x.  Every node in a grove other than the grove root has a unique origin.
4.21  origin-to-subnode relationship
The subnode property of the origin of a node that includes the node in its value.
4.22  port
A point on a flow object in a flow object tree to which an ordered list of flow objects can be attached. A port is either the principal port of the flow object or it is named.
4.23  primitive data type
A data type that has no super type.  The primitive data type of a data type is the data type itself, if the data type has no super type, and otherwise the primitive data type of the super type of the data type.
4.24  property assignment
The assignment of a property value to a property name.
4.25  property set
A set of classes and properties with associated definitions.
4.26  process specification
The combination of the specification in a process specification element and the specifications in any other process specification elements that the process specification element is declared to use.
4.27  process specification element
An instance of a transformation-specification or style-specification element type form.
4.28  process specification part
A section of the process specification coming from a single process specification element.  Any process specification elements referred to using the use attribute are separate parts.  A part of a process specification takes precedence over any later parts of the process specification.
4.29  siblings (of a node)
The other nodes in the grove that occur in the value of the origin-to-subnode relationship property of the origin of the node.
4.30  sosofo
A specification of a sequence of flow objects.
4.31  source grove
The grove parsed to create an auxiliary grove.
4.32  spread
Consecutive back/front pair of pages in a page-sequence.
4.33  stream
An ordered list of flow objects attached to a port of a flow object.
4.34  subgrove
The union of a node and the values of the subnode properties of the node.
4.35  subtree
A node together with the subtrees of its children.
4.36  synchronization set
A set of flow objects in different streams whose relative positioning is constrained.
4.37  transformation process
The process specified by the transformation language.  It transforms one or more SGML documents into zero or more other SGML documents.
4.38  tree
The subtree of a node that has no parent.
4.39  verification grove
The grove that would be built by parsing the SGML document or subdocument generated from the result grove using a grove plan that included all classes and properties of the SGML property set.
4.40  zone
One of four named subdivisions of a column.  The four zones are: top-float, body-text, bottom-float, and footnote.  The positioning of an area to be placed in a column-set area container can be controlled by labeling it with the name of a zone.
Annex A: Further Information
For examples, tutorials, production cross reference list, and other relevant material for the understanding and implementation of DSSSL see the following web site and ftp address:
http://www.ornl.gov/sgml/WG8/wg8home.htm
ftp.ornl.gov/sgml/wg8/dsssl