CSS = Style Sheets for HTML
HTML uses predefined tags, and the meaning of each tag is well understood.
The table tag in HTML defines a table – and a browser knows how to display it.
XSL = Style Sheets for XML
XML does not use predefined tags (we can use any tag-names we like), and therefore the meaning of each tag is not well understood.
A table tag could mean an HTML table, a piece of furniture, or something else – and a browser does not know how to display it.
XSL describes how the XML document should be displayed!
XSL consists of three parts:
XSLT – a language for transforming XML documents
XPath – a language for navigating in XML documents
XSL-FO – a language for formatting XML documents