我对MSXML 4.0有所了解.
Microsoft有一个页面,提供各种MSXML 4.0对象的CLSID和ProgID:
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
Run Code Online (Sandbox Code Playgroud)
但是,我的Vista机器或同事的XP机器上都没有注册ProgID或CLSID.
我很愿意到MSXML 5.0,这是在Windows XP和Windows Vista计算机-但我想,以确保我有尽可能广泛的兼容性; 我认为MSXML 4.0比MSXML 5.0更广泛.
Microsoft确实建议我使用MSXML 6.0:
建议您从早期版本的MSXML升级到MSXML 6.0.与早期的MSXML版本相比,MSXML 6.0提供了安全性和性能改进.
它被简单地弃用,以支持MSXML 6.0.Microsoft XML团队的这篇博客文章介绍了MXSML的历史.不要让我在标题的"...在Internet Explorer"部分推迟,该页面上的历史完全独立于IE.
在该博客条目的"MSXML生命周期和历史"部分中,作者声明:
MSXML4是MSXML6的前身,但尚未在操作系统中发布.MSXML6在可靠性,安全性,W3C和System.Xml兼容性方面向前迈出了重要一步,它还支持本机64位环境.目前我们在MSXML6和MSXML3上投入的资金更多,我们鼓励客户在可能的情况下移至6,并在必要时移至3.
OP编辑:重要的是要注意MSXML3是在 W3C决定最终的XSD规范之前发布的.最终,W3C使用的XSD语法与Microsoft为MSXML3创建的语法不同.MSXML6与W3C选择的XSD方案完全兼容.
这意味着MSXML3和MSXML6彼此不兼容 ; 和MSXML3不使用标准 XSD.