Improving the Docs Project workflow - Appendix C: Components of the FOSS Docs Toolchain

Background Information
This section explains why we should care about the W3C standards, XSL and XML, how they are related and interact with each other.

The World Wide Web Consortium (W3C) is the authoritative international standards organisation for the World Wide Web. The W3C has defined standards, which include XML and XSL, that go beyond the internet protocol suite.

First of all, we need to give some definitions.

Extensible Markup Language (XML) is a markup language which can be used for defining various types of files, such as configuration files, data structures and documents.

Extensible Style Language (XSL) is an XML transformation language. An XML transformation language is a computer language designed to transform an input XML file into an output file of a particular format.

There are two possible types of output files:


 * Another XML file in a different format


 * A non-XML file, such as PDF or ODF.

Five Necessary Components
This section explains five relevant classes of XML and XSL tools. They are:


 * DTDs


 * XSL Stylesheets


 * XML Text Editors


 * XSLT Processors


 * XSL-FO Processors

DTDs
The Document Type Definition (DTD) is an XML schema language used to define the permissible building blocks of an XML document. It defines the structure of the document by means of a list of legal elements. A DTD can be declared within your XML document as an internal reference, or in a separate module, as an external reference.

With a DTD, a team agrees to use a common data structure for interchanging data. An application can apply a standard DTD to a document to verify that the document structure and markup (syntax) is valid.

A Document Type Declaration, or DOCTYPE, is a directive which links a particular XML file (in our case, a document) with a Document Type Definition (DTD).

XSL Stylesheets
Extensible Stylesheet Language (XSL) is an XML language for transforming XML documents.

An XSL stylesheet is a template written in XSL for directing the transformation of an XML document.

A helpful comparison is:

an XSL stylesheet is to an XML document as a CSS file is to an HTML document.

XML Text Editors
The text editor is used to create or modify the XML source document.

XML text editors can range from basic editors like Gedit, to sophisticated programming editors like Emacs, to WYSIWYG XML editors like Quanta Plus.

XSLT Processors
XSL Transformations (XSLT) processors are the programs which do the actual conversion of the XML document according to the directions provided by the XSL stylesheet.

XSL-FO Processors
XSL Formatting Objects (XSL-FO) is an XML markup language used to generate non-XML documents, such as PDFs.

Probably the best known XSL-FO processor, or program, is the Apache Project's FOP.