First experiences with XSL

Michael Kay M.H.Kay at
Fri Jan 30 15:04:50 GMT 1998

I've downloaded MSXSL and used it to generate HTML for a couple of document
types, successfully but with a certain amount of frustration caused by (a)
lack of diagnostics when I got things wrong, and (b) limited functionality.

I've now implemented the same thing without XSL: I wrote an MSXML
application in Java that does a recursive walk down the document tree and
calls a registered "handler" class to process each element type. I added a
number of helper methods such as isFirstOfType() to allow the handlers to
get information about their context more easily.

Here is an example of one of the handlers (for the XML element tagged

class SPEECHHandler extends HTMLNodeWriter {
    public void handleElement(ElemNode e) {
        if (e.isFirstOfType())
        if (e.isLastOfType())

I have to report:
- the element handlers looked very similar to the XSL rules
- the number of DTD-specific lines of code was identical (106 in each case!)
- it was far easier to debug
- you can do very many things that you can't do in XSL, like sorting the
children of a node according to some attribute value, or getting information
about user preferences from an external database.

I have yet to spot any disadvantages. I haven't looked at performance or
footprint, but I can't see any intrinsic reason why XSL should be smaller or
faster. (Currently some of the methods like isLastOfType() are very
inefficient due to the limited navigation capabilities in MSXML. I could
speed it up if I built my own tree!).

Any XSL enthusiasts want to prove me wrong?

Regards, Mike Kay

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list