Glossary · 3 · Publishing SDKs and structured content
XSL-FO
Also known as: XSL Formatting Objects, Extensible Stylesheet Language Formatting Objects, XSL
In XML publishing, XSL-FO (XSL Formatting Objects) is the formatting vocabulary of the W3C Extensible Stylesheet Language (XSL) that describes page masters, regions, blocks, tables, lists and other layout objects of paginated output; an FO processor renders such a document, typically to PDF.
- Publishing SDKs
- Standards
In one sentence
XSL-FO is the W3C XSL vocabulary for page layout; an XSLT stylesheet produces it and an FO processor renders it, typically to PDF.
Example
DITA Open Toolkit transforms a DITA map with XSLT into an XSL-FO document and passes it to Apache FOP, which writes the printable PDF manual.
How it applies
- Publishing SDKs: XSL-FO is the classic PDF path of XML publishing toolkits. An XSLT stylesheet maps the content model (for example DITA elements) to formatting objects, and an FO processor computes line and page breaks and writes the output. In DITA Open Toolkit the PDF transformation lets users choose the processor with the
pdf.formatterparameter: Apache FOP (the default), Antenna House Formatter or RenderX XEP. - Customization: Corporate layouts are implemented as overrides of the stylesheets and attribute sets that generate the FO, usually packaged as a plug-in, rather than by editing the toolkit's files.
- Processor differences: Processors implement XSL 1.1 to different degrees and add extensions (for example for PDF bookmarks, accessibility tags or change bars). A layout that relies on extensions is tied to one processor; documentation of the publishing setup should name it.
- Accessibility and archiving: Requirements such as tagged PDF or archival PDF profiles depend on processor support and configuration, not on XSL-FO alone; the output must be checked.
XSL-FO vs. CSS Paged Media
CSS Paged Media describes paginated layout with CSS applied to HTML or XML; renderers that support it produce PDF from the same markup as the web output. XSL-FO needs a separate transformation into formatting objects but offers a complete, standardized page model. As of October 11, 2026, XSL 1.1 (2006) is the latest XSL Recommendation, while CSS Paged Media Module Level 3 is a W3C Working Draft (last published September 14, 2023). Many publishing toolkits offer both paths.
Naming
“XSL” originally named both the transformation language and the formatting vocabulary; the transformation part became XSLT. “XSL-FO” is the common name for the formatting part, which the W3C specification calls simply XSL.