Re: [xsl] Drop-in replacement for MSXML to get to XSL2.0

Subject: Re: [xsl] Drop-in replacement for MSXML to get to XSL2.0
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Thu, 31 May 2012 10:09:25 +0100
On 31/05/2012 00:26, Mark Anderson wrote:
Hi Guys

I'm doing a lot of work in an app that produces documents using XSL. The app (not sure if it's VB6 or VB.net) uses MSXML, is there any way to somehow replace MSXML processor with something that supports XSL2.0 and have the transform call still work. (I'm assuming--wildly--that it *just* needs a dll with the same interface as MSXML. Getting real tired of 1.0 :-(

The difference between VB6 and VB.net here is rather important.

I think the closest thing to an XSLT 2.0 processor that runs as a COM component is the Altova processor. They chose not to emulate the MSXML API very closely; in particular, as far as I can see, they only work with "lexical XML" as input and output, not with MSXML DOM documents. They no doubt had good reasons for this decision: because MSXML has such close coupling between parsing, validation, and transformation, it can make it difficult to just replace the transformation part with a different engine.

For .NET the story is rather different, since there are's a choice of several XSLT 2.0 processors for .NET, including Saxon. The APIs for Saxon are not a direct emulation of either MSXML or the native .NET transformation engine (one reason being that the APIs are defined as concrete classes rather than interfaces, as Microsoft clearly never envisaged an alternative implementation being provided.) However, in designing the .NET interface for Saxon we did try to integrate as much as possible with the XML classes in the .NET framework.

Michael Kay
Saxonica

Current Thread