i have a dependancy on MSXML 4.0.
Microsoft has a page that gives the CLSID and ProgIDs of various MSXML 4.0 objects:
Symbolic Name: CLSID_DOMDocument40
GUID: {88d969c0-f192-11d4-a65f-0040963251e5}
ProgID: Msxml2.DOMDocument.4.0
Symbolic Name: CLSID_XMLSchemaCache40
GUID: {88d969c2-f192-11d4-a65f-0040963251e5}
ProgID: Msxml2.XMLSchemaCache.4.0
But none of the ProgIDs or the CLSIDs are registered on my Vista machine, or on colleague’s XP machine.
- Was MSXML 4.0 only shipped with some version of Office (e.g. Office 2003)?
- Did it originally ship with Windows XP, but a later service pack removed it?
- Was there a security vulnerability, and it’s been depricated?
- Has it simply been depricated?
i’m willing to move to MSXML 5.0, which is available on Windows XP and Windows Vista machines – but i’d like to be sure that i have the widest possible compatibility; and i would have thought MSXML 4.0 would be more widely available than MSXML 5.0.
Microsoft does recommend that i use MSXML 6.0:
It is recommended that you upgrade
from earlier versions of MSXML to
MSXML 6.0. MSXML 6.0 provides security
and performance improvements over
earlier MSXML versions.
It’s simply been deprecated in favour of MSXML 6.0. This blog entry from the Microsoft XML team goes through the history of MXSML. Don’t me put off by the "…in Internet Explorer" part of the title, the history on that page is completely independent of IE.
In the section "MSXML Lifecycle and history" in that blog entry, the author states that:
OP edit: It’s important to note that MSXML3 was released before the W3C decided on a final XSD specification. Ultimately W3C went with an XSD syntax different than what Microsoft had created for MSXML3. MSXML6 is fully compatible with the W3C’s chosen XSD scheme.
This means that MSXML3 and MSXML6 are not compatible with each other; and MSXML3 does not use standard XSD.