9

我依赖于 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

但是在我的Vista机器或同事的XP机器上都没有注册ProgIDCLSID

  • MSXML 4.0是否仅随某些版本的 Office(例如Office 2003)一起提供?
  • 它最初是随Windows XP一起提供的,但后来的服务包删除了它吗?
  • 是否存在安全漏洞,并且已被贬低
  • 它只是被贬低了吗?

我愿意迁移到MSXML 5.0,它在 Windows XP 和 Windows Vista 机器可用——但我想确保我拥有尽可能广泛的兼容性;我会认为 MSXML 4.0 会比 MSXML 5.0 更广泛地可用。

Microsoft 确实建议我使用 MSXML 6.0

建议您从早期版本的 MSXML 升级到 MSXML 6.0。MSXML 6.0 比早期的 MSXML 版本提供了安全性和性能改进。

4

3 回答 3

11

它只是被弃用,取而代之的是 MSXML 6.0。Microsoft XML 团队的这篇博文回顾了 MXSML 的历史。不要被标题的“...in Internet Explorer”部分吓到,该页面上的历史完全独立于 IE。

在该博客条目的“MSXML 生命周期和历史”部分中,作者指出:

MSXML4 是 MSXML6 的前身,但从未在操作系统中发布。MSXML6 在可靠性、安全性、W3C 和 System.Xml 兼容性方面向前迈出了重要一步,它还支持本机 64 位环境。现在,我们在 MSXML6 和 MSXML3 上投入更多,我们鼓励客户尽可能迁移到 6,必要时迁移到 3。


OP 编辑​​:重要的是要注意 MSXML3 是在W3C 决定最终 XSD 规范之前发布的。最终,W3C 采用了不同于微软为 MSXML3 创建的 XSD 语法。MSXML6 与 W3C 选择的 XSD 方案完全兼容。

这意味着 MSXML3 和 MSXML6 彼此不兼容;并且 MSXML3 不使用标准XSD。

于 2009-11-26T09:08:21.603 回答
4

查看 Q&A which-version-of-msxml-should-i-use?

简短的回答:使用 MSXML6。

于 2009-07-14T22:04:48.970 回答
2

MSXML4 SP3是具有以下亮点的备份选项:

  • 提高了安全性和可靠性。有点像 MSXML6!
  • 没有进一步的 SP 计划,因此如果可以,请迁移到 MSXML6。
  • 根据发行说明,MSXML4 SP2 支持于 2010 年 4 月 13 日结束。

如果您真的无法摆脱 MSXML4,那么 SP3 对您来说是一个不错的选择。我也巧妙地暗示了一个更好的选择,但我不想重复自己。

于 2010-01-22T23:45:21.567 回答