As you know, XML, by itself, merely provides the constructs necessary to describe data; it offers no information about how that data is to be presented to a user. Hence, a requirement arises for a separate stylesheet language to handle the presentation aspects of an XML application. This stylesheet language is the Extensible Stylesheet Language (XSL), and it consists of the following three components:
XML Path Language (XPath), which provides constructs to locate specific nodes or node collections in an XML document tree
XSL Transformations (XSLT), which is responsible for restructuring, or transforming, XML data into a different format
XSL Formatting Objects (XSL-FO), which is responsible for the formatting and presentation of the result. ...