The crux of client-side XML Processing in IE5 (1/2) - exploring XML | WebReference

The crux of client-side XML Processing in IE5 (1/2) - exploring XML

The crux of client-side XML Processing in IE5

Had you tried to use the RSS2HTML stylesheet of column16 in Internet Explorer, you would have quickly noticed that it does not work in most versions of this browser. Digging into the Microsoft Developer Network (MSDN) documentation for a cause I came across the following paragraph in one article:

"If you've been watching the Microsoft® XML Web site (, you've probably noticed the increased pace of MSXML releases. MSXML 2.0 shipped with Microsoft Internet Explorer 5.0 while MSXML 2.5 shipped with Windows® 2000. There was also an interim MSXML 2.6 release which included most of the features in the current 3.0 release with a few exceptions. There have also been several additional MSXML 3.0 releases this year."

For those of us who are less familiar with (and possibly less interested in ;-) Microsoft Windows internals: MSXML is a package that offers XML processing capabilities for the operating system in the form of:

For Windows, MSXML is packaged as a Dynamic Link Library (DLL) that contains several Component Object Model (COM) components, including the XML parser and XSL processor. These can be used by any other program, for instance a Web browser, to offer XML-related services, such as parsing and rendering XML data with XSL style sheets. If you found any XML-related services in Internet Explorer for the Macintosh let me know, because I didn't.

So not only are you limited in the platforms supported, you also have to develop different solutions for the various versions of the installed MSXML versions. Of course Microsoft strives to maintain backwards compatibility, but unfortunately this implies it is only safe to assume that the functionality of MSXML version 2.0 is available. (Version 1, which shipped with IE4, is fairly limited for real world usage.)

MSXML 2.0 was released before the W3C made XSL-T a recommendation, so before it was finalized. While most W3C developments went rather smoothly from first inception to finalization, this was not the case for XSL. Different requirements for browser display and print finally resulted in the split between XSL-T and XSL-FO. The syntax for navigating an XML tree changed from XSL patterns to XPath, which looks only slightly different but is incompatible. While this was not foreseeable, Microsoft (and all its customers) is now stuck with non-standard XML implementations as their least common denominator across all current Windows machines.

The following table illustrates the supported APIs in different versions of MSXML:

MSXML version1.
Installed withIE4IE5Win 2000MSDNMSDN
MS-DOM X - - --
XSL Patterns - X X XX
XPath - - X XX
SAX - - - --
SAX2 - - X XX

Let's try to adapt the RSS2HTML Stylesheet to use the deprecated XSL Patterns.

Produced by Michael Claßen
All Rights Reserved. Legal Notices.

Created: Sep 26, 2000
Revised: Sep 26, 2000