XSL Formatting Objects
XSL Formatting Objects lub XSL-FO - oparty na XML język znaczników do formatowania dokumentów. XSL-FO jest częścią XSL, zbioru opracowanych przez W3C technik do transformacji i formatowania danych XML. Inne części XSL to XSLT i XPath.
W przeciwieństwie do HTML i XHTML, dokumenty XML nie zawierają wbudowanego układu wizualnego. XSL-FO jest językiem, który może być użyty do nadania dokumentowi XML układu na stronie, kolorów, czcionek itd. z przeznaczeniem wyniku dla ekranu komputerowego, drukarki czy innych mediów. W tym sensie pełni on podobną rolę jak style CSS, ale jest potężniejszy i bardziej elastyczny, zwłaszcza jeśli chodzi, przykładowo, o paginację i przewijanie.
W przeciwieństwie do CSS, ale podobnie jak XSLT, XSL-FO jest zapisywany w poprawnej postaci XML. Zwiększa to jego elastyczność, pozwalając np. mieszać XSL-FO z XSLT w tym samym arkuszu.