Extensible Stylesheet Language (XSL)
One of the primary design goals of XML was to provide an environment in which document content (such as a phone number) could be separated from presentation information (such as the formatting instructions making the phone number bold and italic). Although XML documents are very well suited to expressing information, at some point they generally must be formatted for human consumption. XSL is the W3C's solution to the problem of transforming and displaying XML documents.
XSL is actually a blanket term that covers two separate technologiesone for transforming XML documents into other formats and another for describing page layout and formatting in XML. These two technologies are called XSL Transformations (XSLT) and XSL Formatting Objects (XSL-FO), respectively.
XSL Transformations (XSLT)
The XSLT portion of the XSL recommendation is already a W3C recommendation (as of November 16, 1999). As with XML and Namespaces for XML, it was decided that the immediate need for an XML transformation language was too pressing to delay it until the entire XSL specification was complete. In operation, an XSLT stylesheet document is an XML document that contains templates describing how a source document is to be modified to create a target document. Figure 1 shows an example of how this process works.
Figure 1 The XSLT transformation process.
Using this technique, the same source document might be rendered into a half-dozen target formats (such as XHTML, XSL-FO, plain text, or a different XML application). Currently several full-featured standalone and integrated XSLT transformation programs are available.
XSL Formatting Objects (XSL-FO)
Unlike XSLT, XSL-FO doesn't specify how to transform XML into another format. Instead, it's a very sophisticated XML vocabulary for specifying how to lay out text and graphical information on a page (or series of pages). Although it's technically possible to author XSL-FO documents directly, the more common intended use is as a transformation language (particularly XSLT) to transform an XML document into an XSL-FO document.
The XSL-FO portion of the XSL specification has not been finalized, and there are presently no browsers or display programs that show XSL-FO pages directly. The current solution for testing and developing XSL-FO production systems is to use a translator program that converts XSL-FO documents into a more widely supported page-layout format (such as Adobe's PDF or PostScript).