XSL Formatting Objects atau XSL-FO adalah sebuah bahasa markup XML untuk menata dokumen. XSL-FO adalah bagian dari XSL, sekelompok teknologi dari W3C yang dirancang untuk transformasi dan penataan data XML. Bagian-bagian XSL lainnya adalah XSLT dan XPath.
Tidak seperti HTML dan XHTML, dokumen-dokumen XML tidak memiliki penataan default. XSL-FO adalah bahasa yang dapat digunakan untuk mengatur tata letak tertentu, warna, tipografi dsb, dokumen XML untuk digunakan dalam tampilan layar, cetakan, dan media lainnya. Dalam pengertian ini ia memiliki peran yang mirip dengan CSS, tetapi lebih handal dan fleksibel, terutama berkaitan dengan (antara lain) pembagian halaman dan scrolling.
Tidak seperti CSS, tetapi seperti XSLT, XSL-FO juga dinyatakan dalam bentuk XML. Hal ini meningkatkan fleksibilitasnya lebih lanjut, contohnya memungkinkan XSL-FO untuk digabungkan dengan XSLT dalam stylesheet yang sama bila diperlukan.