XSLT resources, take 2

Following up on my earlier post about XSLT: I am drawing near the end of the first stage of my project and wanted to update my notes.

One thing I learned is that XSLT is far from dead. There was a 2.0 version of the standard released a while back that fleshed out some of the capabilities of the language, and much of the contents of XSLT have sunk seamlessly into other frameworks. The nice thing about XSLT is that it is a very compact yet flexible technology that is easy to learn the fundamentals; the reason that so many of the resources about it are older is that there simply aren’t that many lingering questions in working with XSLT that are generating ongoing discussions. It just works.

The two best resources for this project were a pair of O’Reilly books, Learning XSLT and the XSLT 1.0 Pocket Reference. I read the former over a couple of plane trips on Friday, and by Saturday night I was happily hacking away at the task that I was trying to do.

I had a couple of learning experiences with XSLT along the way, and learned two techniques that I think are worth sharing and were not documented in the O’Reilly books (though they may be elsewhere).

The first was in reordering nodes in the XML document. I had a few nested (level two) elements in my document for which I needed to take their contents (level three elements) and move them up a level in the document. But I couldn’t figure out how to do it without breaking the DTD. I finally realized that I could process any node and place it anywhere in the target set by being specific in my call to <xsl:apply-templates> and always using a select, rather than simply letting the stylesheet process the nodes in the order that they occur in the parent document. I will try to hack up a sample transform to illustrate what I’m talking about.

The second dealt with batch processing at the command line. Microsoft’s msxsl.exe is a nice, lightweight, fast transformation engine that can be called from a DOS prompt. Unfortunately, it does not accept wild cards for input, so you have to call it explicitly with each file to be transformed. A useful sample solution I found for XSLT batch processing using msxsl uses a VBScript in the Windows Scripting Host to enumerate the files in a source directory and calls msxsl in a loop to process them. The only problem is that the method used opens and closes a command window for each file being transformed, which is distracting and may hurt performance. I will continue to look for better methods, but for my project today this VBscript did the trick.

itSMF show notes: don’t fear ITIL v.3

I have been at the itSMF Fusion conference in Charlotte, NC for the past two days; today is the last day for the vendor exhibits, so I’ll be packing up tomorrow morning to head back to Boston.

It’s been fairly eventful. We announced a new version of our flagship ITSM product yesterday; completed a rigorous verification process of our new functionality against the ITIL standards; and are chugging ahead on a number of other fronts.

One question that I had coming to the show was about the adoption of ITIL v.3. The new version of the IT Infrastructure Library best practices has changed a lot of the way the information is structured and caused a little market confusion, with some companies asking whether they need to restart all their ITIL efforts to recenter around ITIL v.3. Adding to the confusion is the growth in the document set, which has gone from two core books to five, and added a large number of satellite books—a real wall of documentation that can daunt even the most determined prospective adopter.

The answers I have been hearing at the show have been heartening, both from consultants and companies. The basic take on v.3 that seems to be emerging is that there are places where it definitely adds value, but that the core value proposition of v.2 around systemizing IT Service Management is really intact. A number of customers have said to me that they value the additional clarity in v.3 around areas like service request, but they aren’t planning to rethink their entire implementation of incident through change.

The big danger with new versions of standards is that they create barriers to adoption for companies that have already started the process; in this case, those barriers seem to be easily surmountable.