[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Testing with MSXML 3.0 or MSXML 6.0 (WAS: XSL 2.0 and .NET and VB)


Subject: [xsl] Testing with MSXML 3.0 or MSXML 6.0 (WAS: XSL 2.0 and .NET and VB)
From: "Manfred Staudinger" <manfred.staudinger@xxxxxxxxx>
Date: Mon, 2 Jul 2007 14:47:26 +0200

Hi Abel,

By default, with Vista and
higher, any IE will use MSXML 6.0. Win2k, WinXP and Win2k3 by default
use MSXML 3.0, unless MS Office 2003 is installed, in which case IE6
defaults to MSXML 5.0. But, surprisingly, IE7 will default to MSXML 3.0

Thanks for the concise clarification. Well, some month ago I have read through the "Using the right version of MSXML in Internet Explorer" blog entry you mentioned, but got very frustrated.

Part of that disappointment was: "Just remember to test your app with
MSXML6 and with MSXML3 so you aren't surprised when you release
your application". But how would I do that if I use PI ? Can I tell the IE
which version to use for default ? May I install 2 IE 6 with different MSXML's ?
I would love the possibility of a "stand-alone" installation to support that
(as in http://www.positioniseverything.net/articles/multiIE.html).

The other consideration was, should I upgrade to MSXML6 ? Sure I should,
but when ? Would this mean to lose the ability to test with MSXML3 ?
You see, many question marks, few if any answers (from MS).

Read on at this good and detailed story about the versions and how
best to instantiate them and you will be enthralled ;)
Not exactly.

Manfred

On 02/07/07, Abel Braaksma <abel.online@xxxxxxxxx> wrote:
M. David Peterson wrote:
> On Sun, 01 Jul 2007 04:26:08 -0600, Manfred Staudinger
> <manfred.staudinger@xxxxxxxxx> wrote:
>
>> No. Both IE 6 and IE 7 use MSXML3.
>
> They do?  UGGGLLYYY!!!  I guess it's because I have physically
> installed MSXML 6 that I had it there by default...
>
> Hmmm... That bites!
>

This is not entirely correct. It depends on what operating system you
have, or it depends on the user settings. By default, with Vista and
higher, any IE will use MSXML 6.0. Win2k, WinXP and Win2k3 by default
use MSXML 3.0, unless MS Office 2003 is installed, in which case IE6
defaults to MSXML 5.0. But, surprisingly, IE7 will default to MSXML 3.0
(MS considers 3.0 a more stable and secure release, and 6.0 is its
successor, not 4.0 or 5.0), unless MSXML 6.0 is available.

MS wants to put MXSML in some future service pack for 2k, XP and 2k3,
which may change matters (and probably will make matters even worse).

If a user downloads MSXML 6.0 by hand, it will become the preferred
version for either IE6 or IE7.

When you try to instantiate an MSXML object without specifying its
version number, it will NOT instantiate the latest version, instead, it
will ALWAYS instantiate an MSXML 3.0 object:

new ActiveXObject('Msxml2.DOMDocument.3.0')

and

new ActiveXObject('Msxml2.DOMDocument)

are both equal on any system. So, defaults or not, you must always
specify the 6.0 version explicitly to use it.

Does this all sound awfully confusing? Read on at this good and detailed
story about the versions and how best to instantiate them
http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
and you will be enthralled ;)

Cheers,
-- Abel Braaksma


Current Thread