The first step in learning the W3C's Extensible Stylesheet Language Formatting Objects (XSL-FO) 1.0 Recommendation is to understand the context of this technology in light of other Extensible Markup Language (XML) Recommendations and markup standards. The XSL-FO XML vocabulary is used to express the desired formatting semantics that have a rich heritage from both the Document Style Semantics and Specification Language (DSSSL) and Cascading Style Sheets (CSS), as well as the integral Extensible Stylesheet Language Transformations (XSLT) Recommendation.
Extensible Markup Language (XML). We use XML to express information hierarchically in a sequence of characters according to a vocabulary of element types and their attributes. Using various Recommendations and other industry standards, we can formally describe the makeup and constraints of an XML vocabulary in different ways to validate the content against our desired document model.
Document Style Semantics and Specification Language (DSSSL). The International Organization for Standardization (ISO) standardized in DSSSL a collection of style semantics for formatting paginated information. DSSSL also includes a specification language for the transformation of Standard Generalized Markup Language (SGML) documents of any vocabulary, and implementations have since been modified to support the styling of XML documents of any vocabulary. This standard introduced the concept of a flow object tree comprising objects and properties reflecting the internationalized semantics of paginated output.
Cascading Style Sheets (CSS). Initially created for rendering HTML documents in browsers, CSS formatting properties can ornament the document tree described by a sequence of markup following that specific SGML vocabulary. CSS was later revised to describe the ornamentation of XML documents so that CSS-aware browsers can render the information found in a decorated document tree described by any XML vocabulary. Browsers recognizing these properties can render the contents of the tree according to the semantics of the formatting model governing the property interpretation.
Extensible Stylesheet Language family (XSLT)/XSL/XSL-FO. Two vocabularies specified in separate W3C Recommendations provide for the two distinct styling processes of transforming and rendering XML instances.
The Extensible Stylesheet Language Transformations (XSLT) is a templating vocabulary used to describe how a processor creates a transformed hierarchical result from an instance of XML information.
The Extensible Stylesheet Language Formatting Objects (XSL-FO) is a pagination markup language whose vocabulary captures the semantics of formatting information for paginated presentation. Formally named Extensible Stylesheet Language (XSL), this Recommendation normatively incorporates the entire XSLT Recommendation by reference and, historically, these two used to be defined together in a single W3C draft Recommendation.
While XSLT is designed primarily for the kinds of transformation required for using XSL, it can also be used to meet arbitrary transformation requirements.