Introduction to XSL-FO


XSL-FO is about formatting XML data for output.

What you should already know

Before you study XSL-FO you should have a basic understanding of XML and XML Namespaces.

If you want to study these subjects first, please read W3schools XML Tutorial.

What is XSL-FO?

  • XSL-FO is a language for formatting XML data
  • XSL-FO stands for Extensible Stylesheet Language Formatting Objects
  • XSL-FO is a W3C Recommendation
  • XSL-FO is now formally named XSL

XSL-FO is about formatting

XSL-FO is an XML-based markup language describing the formatting of XML data for output to screen, paper or other media.

XSL-FO is formally named XSL

Why this confusion? Is XSL-FO and XSL the same thing?

Yes it is, but we will give you an explanation:

Styling is both about transforming and formatting information. When the World Wide Web Consortium (W3C) made their first XSL Working Draft, it contained the language syntax for both transforming and formatting XML documents.

Later, the XSL Working Group at W3C split the original draft into separate Recommendations:

  • XSLT, a language for transforming XML documents
  • XSL or XSL-FO, a language for formatting XML documents
  • XPath, a language for navigating through elements and attributes in XML documents

The rest of this tutorial is about formatting XML documents: XSL-FO, also called XSL.

You can read more about XSLT in W3schools XSLT Tutorial.

You can read more about XPath in W3schools XPath Tutorial.

XSL-FO is a Web Standard

XSL-FO became a W3C Recommendation 15. October 2001. Formally named XSL.

To read more about the XSL activities at W3C check out



Let us know what you think and help us improve