(In the weeks leading up to the XML 2006 conference in Boston (5-7 December), I’ll be featuring some of our presentations here on my weblog from our four specialized tracks.)
Track: Hands-on XML
Author: Michael Kay, Technical Director, Saxonica Limited
Summary:XSLT stylesheets are XML documents, and this fact can be exploited in a remarkable variety of ways. This talk will describe the powerful effects you can achieve by generating stylesheets using XSLT.
One of the most powerful techniques in early Unix work was using programs or scripts to automate the creation of other, more complicated programs or scripts: tools like lex and yacc massively simplified programmers’ work and vindicated Unix’s use of plain text as its primary data format, rather than the binary formats used in most other computing environments. In this practical, hands-on presentation, Michael Kay — renowned XSLT guru, book author, and the creator and maintainer of Saxon XML processing engine — showsthat the old Unix spirit is still alive in the XML world, when shows attendees how to use XSLT stylesheets to generate other XSLT stylesheets that would be excessively complex or tedious to create manually.
Where is the paper?
All I see is an Abstract.
π
It must be about three years ago that I had, what can only be described as, an epiphany with respect to seeing XSLT for what it is, an XML application and as such can be generated by XSLT and for that matter transformed by XSLT into another XSLT.
If you are using a framework like Apache’s Cocoon, that allows XSLT transforms to be referenced as the product of another pipeline then that’s one way to employ meta-stylesheets. Another and potentially more interesting approach, which I’m sure Mr. Kay will bring-up, is the use of the Saxon 8 / XSLT 2 extension functions saxon:compile-transform() and saxon:transform(). These two together allow you to load a stylesheet into your running stylesheet and apply it to a node-set or sequence that you are working on.
But why stop there when you could build a transform at run-time based on some aspect of your source document then apply that transform to either the source or some node-set derived from the source to produce the desired result.
All very wonderful stuff and I’d love to be there when he presents his paper but alas I will not. So I hope it will be available post conference.
I initially used XSLT transforms on XSLT stylesheets to map some XHTML generating XSLT into XSL-FO generating XSLT. The end result of that was to simplify the maintenance of a website that published to both XHTML and PDF. Structure and style changes to the XHTML where propagated to the PDF output automatically… Sweet π