问题
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.
回答1:
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:
MSXML4 was a predecessor to MSXML6 but hasn't ever shipped in the operating system. MSXML6 is a significant step forward in terms of reliability, security, W3C and System.Xml compatibility, and it also has support for native 64-bit environments. Right now we are investing much more heavily in MSXML6 and MSXML3 and we're encouraging our customers to move to 6 when possible and 3 when necessary.
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.
回答2:
Check out the Q&A which-version-of-msxml-should-i-use?
The short answer for you is: use MSXML6.
回答3:
MSXML4 SP3 is a backup option with these highlights:
- Improved security and reliability. Kind of like MSXML6!
- No further SPs planned so migrate to MSXML6 if you can.
- MSXML4 SP2 supports ends on 4/13/2010 according to the release note.
If you really can't move off from MSXML4, the SP3 is a good option for you. I've subtly hinted at a better alternative as well, but I wouldn't want to repeat myself.
来源:https://stackoverflow.com/questions/1075891/what-became-of-msxml-4-0