XSLT

Doug Tidwell. XSLT. O'Reilly. Copyright © 2001 O'Reilly & Associates, Inc.. 0-596-00053-7.

I read a lot more technical books than is apparent from this reading list, but I use most of them as reference works, so I don’t think to consider them as reading. I’ve had so many occasions to return to XSLT, however, that I thought it proper to add it to my reading list.

XSLT is a three-fold toolset: the XSLT stylesheets themselves, the XPath query language used in them, and the toolkits that process them.

XSLT stylesheets are XML documents that specify how to transform another XML document into something different: an HTML file, a PDF file, or whatever. XSLT documents are sort of a combination of XML and computer programming. They’re very nifty and powerful, but they combine the worst of two world. They’re verbose, like all XML documents, and they’re obscure, like all computer programs. If you’re willing to work in that sort of world, Tidwell makes good sense of things.

XPath is a sort of query language used within an XSLT stylesheet to identify different parts of the XML document to be transformed. XPath’s basic metaphor is the Unix filesystem, with the root of a document being / and its descendants being things like /document/title. There’s more to it than that, of course, and Tidwell provides many instructive examples of how to parse an XML document using XPath queries.

XSLT/XPath toolkits are computer programs that parse, interpret, and execute XSLT stylesheets. Tidwell tends to emphasis the Java toolkits, which isn’t really my interest—though to be fair the Java community was the first to build a relatively mature toolset.

Tidwell and his editors at O’Reilly have struck just the right balance between tutorial and reference work. Many of the chapters are worth an entire re-reading to pick up a larger concept, while the reference material in back, complete with original examples, makes the book an indespensible reference.

—May 4, 2004

Return to Reading List

Home - Tech - Praise - Paul - Books - About

printer-friendly layout