XSL-FO or XSL Formatting Objects
XSL Formatting Objects, or XSL-FO, is an XML markup language for document formatting. XSL-FO is part of XML, a set of W3C technologies designed for the transformation and formatting of XML data. The other parts of XSL are XSLT and XPath.
Unlike HTML and XHTML, XML documents have no inherent, implicit or default layout format. XSL-FO is a language that can be used to specify physical layout, colouring, typography etc, of XML documents for screen, print, and other media. In this sense it serves a similar role to CSS, but it is more powerful and flexible, particularly with regard to, for example, pagination and scrolling.
Unlike CSS, but in common with XSLT, XSL-FO is itself expressed in well-formed and validXML. This increases its flexibility still further, for example allowing XSL-FO be mixed with XSLT in the same stylesheet if required.