概要:

  • 使用MSXML 6。它随着Vista发布,也提供在Win2k、XP和2003的安装包。它最安全、性能最好、可靠性最好、最符合W3C标准。
  • MSXML 3是我们最推荐的替补——从Win2k SP4开始,你几乎可以在所有操作系统上找到它。你几乎不用考虑软件发布的问题。而且它经常随着操作系统升级。
  • MSXML 4是七年前发布的,不过,现在已经被MSXML 6取代,应该仅仅用于支持旧版应用程序(legacy applications)。
  • MSXML 5是为微软Office量身定做,并不是为普通的开发而设计的。Internet Explorer 7在Internet Zone默认不会直接运行MSXML5——当你尝试实例化MSXML5时IE会跳出提示栏。此外,只有安装了Office 2003及以上的系统会有MSXML5。总之,应该尽量避免在网络应用中使用MSXML5。
  • 事实上,MSXML5 组件是默认关闭的。  

MSXML生命周期和历史

说来话长,不如让我们回顾不同版本的MSXML、发布背景以及定位。

让我们的客户把他们的应用程序移植到MSXML6上去是我们的最终目标。说到发布,MSXML 6将随着操作系统一起发布,这样网页作者以及软件开发人员都可以方便地使用这个部件而不用考虑发布的问题。不过,由于客户需要在所有微软支持的操作系统上使用同样的XML API,我们仍然需要一种方法使得新的XML技术可以应用到较低版本的操作系统(Win2k、Win XP和Win2k3)中。

MSXML 6已经随着Vista一起发布,不过对于以前的操作系统,则需要单独安装发行包。我们希望MSXML6与较低版本的操作系统的下一个Service Pack一起发布,但是我们需要足够的商业需求才可以这样做。所以,我们的近期和中期计划是仍然保持发布一个可以安装在较低版本操作系统上的MSXML6 可再发行组件包(Redistributable Package)。在以后的博文中,我们会详细讲述迁移到MSXML6的好处。

虽然我们希望今天每个人都在使用MSXML6,但仍然清醒地意识到迁移需要相当的时间。所以我们将继续在MSXML3上投入资源以支持现有的应用程序以及满足那些需要零发布需求。虽然MSXML3并不具有MSXML6的新特性,不过MSXML3仍然不失为一个稳定而强健的XML平台。MSXML3已经随着Win2000 SP4以及以上的操作系统一起发布,对于应用程序而言可以说无需考虑发布的问题。以后,MSXML3的更新将会随着每种操作系统的Service Pack一起发布。 MSXML3 SP7 是最后一个以可再发行组件包形式发布的MSXML3 Service Pack。以后,我们的合作伙伴和客户将不会有使用MSXML3更新的可再发行组件包的需求。

MSXML4是MSXML6的前身,不过并不曾随着操作系统发布。就稳定性、安全性、W3C标准以及与System.Xml的兼容性而言,MSXML6是一个巨大的进步。此外,MSXML6还提供64位版本。目前,我们主要在MSXML6和MSXML3上投入精力,所以我们希望用户尽可能迁移到MSXML6,或者根据需要迁移到MSXML3。

最后,如果不是针对Microsoft Office 2003或者Microsoft Office 2007编写程序却使用MSXML5的开发者,应该尽快迁移到MSXML6。


一些需要注意的事情

  • MSXML6中对安全敏感的特性是默认关闭(off-by-default)的
    然而,为了向下兼容和避免一些问题,MSXML3中一些对安全敏感的特性是默认打开(on-by-default)的。请查阅SDK以了解更详细的信息。
  • 使用XSD架构语言
    MSXML3并不支持Xml Schema(XSD 1.0)。所以依赖XSD的应用程序应该直接使用MSXML6。MSXML6在XSD的实现上和MSXML4以及MSXML5上有些不同。MSXML6更加符合W3C标准,对.Net2.0中的System.XML更加兼容。所以在有些应用程序升级的时候可能有些工作要做。请查阅SDK以了解更详细的信息。
  • 默认查询语言
    当你使用DOM中的SelectNodes或SelectSingleNode进行查询的时候,在MSXML6中默认的选择语言是XPath,而在MSXML3中则是XSL模式。可以像这样xmlDoc.setProperty("SelectionLanguage", "XPath"); 通过设置DOM的二级属性“选择语言”把MSXML3的查询语言设置成标准XPath 1.0。请查阅SDK以了解更详细的信息。
  • 不指定版本(version-independent)的ProgIDs
    在MSXML中,有关于“不指定版本”的ProgID的问题总是让人产生混淆。不指定版本的ProgID总是绑定到MSXML3(与许多人认为的绑定到系统中最高版本的MSXML不同)。这就意味着无论指定或不指定版本“3.0”,ProgID将返回同一个对象。比如,下面两行代码都会返回一个MSXML3 DOMDocument对象:
    var xmlDOM = new ActiveXObject('Msxml2.DOMDocument.3.0');

    var xmlDOM = new ActiveXObject('Msxml2.DOMDocument');
  • 较老版本的ProgIDs
    远离那些比3.0还低的ProgIDs的版本。在某些特定的操作系统中,仍然会带有MSXML 2.6。然而在最近的MS06-061安全补丁中,这些较古老版本的已经被禁用(kill-bitted)了。
  • MSXML2 vs. Microsoft命名空间
    我见到过许多代码把ActiveX对象Microsoft.XMLHTTP实例化,而不是MSXML2.XMLHTTP.3.0或MSXML2.XMLHTTP.6.0(如果使用6.0)。Microsoft命名空间事实上已经过时了,而且它是用MSXML3实现的,仅仅是为了支持旧版的应用程序。不幸的是,我们对老版本支持使用了一个好听的名字(Microsoft)。但请在实例化对象的时候坚持使用MSXML2命名空间。

来源:http://blogs.msdn.com/b/sqlcrd/archive/2008/11/04/internet-explorer-msxml.aspx

转载于:https://www.cnblogs.com/diguonianzhu/archive/2012/04/06/2434970.html

[转]MSXML版本历史相关推荐

  1. 从未停止!OpenGL的版本历史和发展

    由于本文的内容过长,在Chrome浏览器下可能不能完全显示,建议使用IE或者FireFox阅读本文. 来源请注明,本文永久地址为http://www.cnblogs.com/vertexshader/ ...

  2. 解决win7 若要安装Office2010,需要在计算机上安装MSXML版本6.10.1129.0 问题

    安装Office遇到了若要安装Office2010,需要在计算机上安装MSXML版本6.10.1129.0.我就具体教教大家怎么解决这个问题.(很多朋友注册表里找不到6.0来问我,请记得查看最后一个步 ...

  3. 需要在计算机安装msxml版本,安装Office2010提示需要MSXML版本6.10.1129.0的解决方法...

    今天给朋友装Office2010,由于朋友之前使用的是绿化版的0ffice2007,所以卸载后安装Office遇到了若要安装Office2010,需要在计算机上安装MSXML版本6.10.1129.0 ...

  4. 不会查看GIT版本历史?快收藏这个工具

    如果你想查看git的版本演变历史,可以这样做: 打开Git Bash,切换到项目目录 $ pwd $ ll $ cd git-rainbow/ $ ll $ cd mtxcrm/ $ ls -la 除 ...

  5. “Google chrome”,安卓和苹果版本,以及他的版本历史真是绚丽啊!

    目录 版本历史 安卓版本 苹果版本 版本历史 Google 官方博客在2008年9月2日撰文说,于 第二天  在超过  100个 国家 同时发布"Google Chrome"  的 ...

  6. 2021-07-22 Office2010安装需要MSXML版本6.10.1129.0的方法

    今天给朋友装Office2010,由于朋友之前使用的是绿化版的0ffice2007,所以卸载后安装Office遇到了若要安装Office2010,需要在计算机上安装MSXML版本6.10.1129.0 ...

  7. 安装Office2010提示需要安装MSXML版本6.10.1129.0的解决方法,超简单,亲测可用

    在安装Office2010时,提示需要安装MSXML版本6.10.1129.0,可以明明安装了MSXML还是不行,很让人恼火啊.以下方法可以完美解决,而且无需安装MSXML,一键解决. 解决方法: 安 ...

  8. 微软CRM的版本历史

    从2006年开始,一直做微软CRM的实施交付工作,经历了产品从3.0版一直到365版本,中间跨越了7个版本.希望能通过此文让大家了解微软CRM产品的版本历史变迁. 2001年微软收购北美一家CRM产品 ...

  9. OpenGL的版本历史和发展

    从未停止!OpenGL的版本历史和发展 由于本文的内容过长,在Chrome浏览器下可能不能完全显示,建议使用IE或者FireFox阅读本文. 来源请注明,本文永久地址为从未停止!OpenGL的版本历史 ...

最新文章

  1. MySQL导出到excle显示不了_mysql导出select语句结果到excel文件遇到问题及解决方法_MySQL...
  2. 跨域理解及服务器端解决跨域问题
  3. 由《我不是药神》到互联网行业从业保障
  4. 远离盛行道德绑架的团队
  5. 【渝粤题库】广东开放大学 静态网页技术 形成性考核
  6. c++面向对象高级编程 学习七 转换函数
  7. mysql new map_使用构造器模式动态构建Map作为mybatis的查询条件
  8. Python练习:七段数码管绘制
  9. LA 4254 贪心
  10. 如何让Tuxera NTFS总是挂载不干净的卷?
  11. springmvc 使用
  12. xml 解析库 msxml6.dll
  13. C语言程序——计算圆的周长、圆的面积、球的体积
  14. 趣味点名软件_网传川大教授用刷脸软件点名 无人逃课
  15. php 随机字符串函数,PHP 生成随机字符串的方法函数
  16. 论文阅读笔记《Learning for Disparity Estimation through Feature Constancy》
  17. oss调整图片大小宽高
  18. 网络里有两个计算机怎么删掉其中的一个,文件删不掉显示已在另一个程序中打开怎么办删除?...
  19. html查看详情,查看详情.html
  20. E-prime学习笔记01

热门文章

  1. WindowsPhone 7.8 Tiles 1 : WideTile
  2. 我曾经得到的一个最好的编程建议
  3. VC/MFC Combo Box控件的用法
  4. 让你的程序只能运行一个实例
  5. 08 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(下)
  6. 11.11 ntsysv:管理开机服务
  7. 11.13 ethtool:查询网卡参数
  8. 小a的计算器(牛客签到题A)-简单模拟
  9. c#怎么调用oracle存储过程,c# 调用oracle 存储过程、方法简易例子
  10. 弹性盒子内容体居右对其_弹性盒子侧轴对齐方式