XML, which structures and describes data in text format, is taking over from proprietary data formats, but unlike HTML it has nothing to say about data representation--this is XSL's job. XSL has two parts, XLST and XSL-FO, and though the latter is little used as yet Professional XSL covers it thoroughly.
Professional XSL starts with an awkward introduction to the declarative XLST language, its associated stylesheets, namespaces and the XPath language. As you need them all to do anything--and declarative programming experience is now rare--it makes for a brain aching beginning. Interestingly, you first learn how to create a default template which produces no output.
After mastering XSLT grammar and syntax you move on to XML transformations using DOM and SAX (simple API for XML) with Java and VB, followed by the obligatory section on Microsoft's aberrant implementations of the XLS standard. The book even covers the various XML image standards--including W3C's SVG--and VoiceMail XML.
Overall, this is probably the clearest exposition of XSL available. However, XSL suffers from a combination of creeping proprietary featuritus and incompatible "standards". In Professional XSL it comes across as powerful but messy, incomplete, poorly supported and immature. This is probably why XSL's most common use remains converting data to Web pages--though as the case studies show, it can potentially do far more. Despite the problems, the combination of relentless explanation coupled with code examples of every aspect of XSL discussed makes this a highly practical choice for the XSL programmer. --Steve Patient
XSL is a vital companion to XML and is used for two main purposes: to format or style XML data (like Cascading Stylesheets) so that it can be displayed in a browser, and to transform XML data. When you transform and XML document, you manipulate the data into a new structure, for example, re-ordering the data. This enables the same data store to be used in an unlimited number of ways. It is the transformation ability that gives XSL (and therefore XML) its real power. You can imagine XSL as a bridging mechanism between your XML data store and the browser. It does a similar job to ASP, but it is platform independent. XSL can also be used to transform XML into other text formats (eg HTML).