XSL Formatting Objects
Un documento XSL-FO es un documento XML en el que se especifica cómo se van a formatear unos datos para presentarlos en pantalla, papel u otros medios. El significado de las siglas XSL-FO es eXtensible Stylesheet Language Formatting Objects.
Hay que destacar que en el documento XSL-FO figuran tanto los datos como el formato que se les va a aplicar.

La unidad básica de trabajo en un documento XSL-FO es el "Formating Object", unidad básica para presentar (formatear) la información. Estos objetos de formato se refieren a páginas, párrafos, tablas, etc.

Este es un breve ejemplo de documento XSL-FO:
<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
        <fo:simple-page-master master-name="hola"
                           page-height="29.7cm"
                           page-width="21cm"
                           margin-top="5mm"
                           margin-bottom="10mm"
                           margin-left="20mm"
                           margin-right="20mm">
            <fo:region-body margin-top="10mm" margin-bottom="10mm" />
        </fo:simple-page-master>
    </fo:layout-master-set>
    
    <fo:page-sequence master-reference="hola">
        <fo:flow>
            <fo:block>Hola, mundo</fo:block>
        </fo:flow>
    </fo:page-sequence>
</fo:root>

Para obtener el documento XSL-FO pueden seguirse dos vías: 
Generarlo directamente a partir de los datos. El documento XSL-FO contiene las especificaciones de formato y los propios datos.
Transformar un documento XML que contenga los datos a presentar con una hoja de estilos XSLT. De esta forma los datos (XML) se independizan del formato que proporcionará la hoja de transformación XSLT.

Cuando se tiene el documento XSL-FO, puede ser procesado por un programa llamado "procesador de XSL-FO" para obtener el documento final en distintos formatos. El formato final más utilizado es el PDF.

Los procesadores XSL-FO libres más conocidos son FOP y PassiveTeX.

XSL-FO es una recomendación del World Wide Web Consortium. El nombre oficial de la recomendación es Extensible Stylesheet Language (XSL) y no XSL-FO.

Véase también
Lenguaje de marcado
XML
XSLT
XSD

Enlaces externos 
W3C Recommendation (v. 1.0 15-10-2001)
Tutorial (en Castellano)
XSL-FO introduction and examples 
XSL-FO Tutorial and Examples 
XSL-FO Tutorial 
Tutorial de Formatting Objects
Visual XSL-FO Editor 
XSL-FO Tutorial and Samples 

XML
Estándares del World Wide Web Consortium