MSXML4.0 版中的新增功能

MSXML4.0 版中的新增功能

2001 年 9 月发行的 Microsoft XML Core Services (MSXML) 4.0 版中的新增功能 
Microsoft Corporation 
2001年10月

下载 MSXML 4.0,网址为 MSDN Downloads(英文)。

摘要: 本文重点介绍了与版本 3.0 相比,2001 年 9 月发行的 Microsoft XML Core Services (MSXML) 4.0 版中的新功能和重要变更。

目录

简介 
新功能 
并行功能和删除替代模式 
重要说明

简介
大家将注意到的第一个变化是 MSXML 的正式新全名。一开始,MSXML 是提供 XML 分析的组件,因此其全名为 Microsoft® XML Parser。随着时间的迁移,XML 和 MSXML 在不断发展。现在 MSXML 提供的功能已远远超出了分析。自版本 3.0 发布以来,名称一直在变化,现在可以说是大功告成了。新名称,即 Microsoft® XML Core Services,充分说明了该组件所提供的新功能。请注意名称的缩写仍和以前相同:MSXML。

2001 年 9 月发行的 Microsoft XML Core Services (MSXML) 4.0 版是 MSXML 4.0 的正式发行。该版本提供许多重要的新功能,也有一些重要的变化,尤其是并行功能。MSXML 4.0 也提供了对已知问题的解决方案;在性能、一致性和文档方面都有所改进并提供附加示例。

与版本 3.0 相比,MSXML 4.0 提供的改进和附加功能主要包括以下三个方面:

对最终的 World Wide Web Consortium (W3C) XML Schema (XSD) Recommendation 的扩展支持。 
性能上有极大改进。 
基于实际标准 Simple API for XML (SAX2),对连续 XML 处理结构的扩展支持。 
另一个重大变化是删除了替代模式。MSXML 版本 4.0 和其后的版本将严格地以并行模式进行安装。这意味着版本独立的 ProgIDs 将不再受支持,而且现有的 Microsoft® Internet Explorer 版本将不能自动使用 MSXML 4.0(如果没有脚本)。进行此变更的原因在于,根据客户的反馈,独立版本的 ProgIDs 在使用 MSXML 版本 2.6 和其后的版本维护应用程序时会产生许多问题。

MSXML 3.0 中推出的 ServerXMLHTTPRequest 对象,提供了可靠的服务器端 HTTP 访问(独立于 WinInet)。该服务器端 HTTP 堆栈功能现在已包含新的 WinHTTP 5.0 组件(随 MSXML 4.0 安装一并推出)。ServerXMLHTTPRequest 仅为该组件提供前端。

有关 2001 年 7 月发行的 Microsoft XML Parser (MSXML) 4.0 技术预览中的新功能,请参阅 What's New in the July 2001 Microsoft XML Parser 4.0 B2 Technology Preview(英文)。有关 MSXML 4.0 所有功能的详细信息,请参阅该组件随附的文档。

新功能
XML 架构支持
此版本中的许多功能都提供 XML 架构支持。您可以使用外部架构缓存或 xsi:schemaLocation/xsi:noNamespaceSchemaLocation 属性,在 SAX 和 DOM 中针对 XML 架构验证 XML。尽管没有 XPath 2.0,但 MSXML 4.0 可以提供扩展功能(符合标准)以支持处理 XPath 和 XSLT 中的 XSD 类型。

MSXML 4.0 也使您可以使用 SAX 中的类型发现与 DOM 中的“架构对象模型”(SOM) 来获得已验证的文档中的架构信息。除了对最终 XML 架构推荐的支持外,MSXML 继续支持 XML-Data Reduced (XDR) 及文档类型定义验证。

性能改进
此外,MSXML 4.0 也提供新的、更快的 XML 分析程序以及经重大改进的 XSLT 引擎。通过将 NewParser 属性设置为 “真”,DOM 和新分析程序可以一起使用。

新分析程序不能支持异步 DOM 载入或 DTD 验证。除此之外,所有其他功能与旧分析程序相同,只是速度更快。在测试中,如果只进行分析,MSXML 的性能高出 2 倍;如果进行 XSLT 转换,性能则会高出 4 倍。

对连续 XML 处理的扩展支持
MSXML 4.0 对基于 SAX2 API 的连续 XML 处理结构提供扩展支持。包括以下方面:

DOM 与 SAX 分析模型的集成 
能够生成 HTML 输出 
能够将 SAX 内容处理程序插入 XSLT 处理器的输出 
跟踪名称空间声明 
您现在可以使用 MXXMLWriter 对象从 DOM 树中生成 SAX 事件。同样,您也可以从 SAX 事件中建立 DOM 树。该功能使您可以将 DOM 和 SAX 紧密集成到应用程序中。

MXHTMLWriter,这个新对象使您可以用 SAX 事件输出 HTML,方式与 <xsl:output>XSLT 中的元素从结果树中生成 HTML 的方式一样。新 MXHTMLWriter 对象为性能卓越的 Active Server Pages (ASP) 提供必要的支持,ASP 可用 SAX 阅读器阅读 XML 文档,将这些文档放入自定义 SAX 筛选器并以 HTML 页的形式将数据输出给用户。MXHTMLWriter 对象也可用于许多其他应用程序,如手动生成 HTML 页。

XSLT 处理器现在接受作为输出的 SAX 内容处理程序。这意味着 SAX 筛选器链可直接处理已转换的 XML。例如,您可以使用此功能删除 XML 再生成和再分析,从而当传入的 XML 文档需要译入同一本词典时,XML 文档可立即由一个应用程序消耗掉。

新 MXNamespaceManager 对象使您可以手动跟踪名称空间声明并在当前的上下文或某一 DOM 节点的上下文中加以解析。虽然 MSXML 支持名称空间,并能自动解析元素和属性的名称,但许多情形下,属性值或元素内容都使用合格的名称。新 MXNamespaceManager 对象能够跟踪并解析这些合格的名称。

并行功能和删除替代模式
删除替代模式
直到 MSXML 3.0 版,您才可以使用替代模式使最新的 MSXML 组件模拟 MSXML 2.0(Internet Explorer 5.0 及 5.5 浏览时用它来演示 XML)。之所以可以这样做,是因为有一个特殊的实用程序,xmlinst.exe,操纵 Microsoft Windows® 注册。虽然替代模式不是推荐的方法,许多用户仍尝试使用它,结果根据 Microsoft 客户支持的调查,发现在维护应用程序方面有许多问题。此外,需要维护旧有的功能也使 MSXML 组件超出了原有的分量。

现在替代模式已从 MSXML 4.0 中完全删除,而且不能使用替代模式用 MSXML 2.0 代替 Internet Explorer。这意味着如果您用 Internet Explorer 作为默认程序打开 XML 文件,双击 XML 文档后,Internet Explorer 将不会使用 MSXML 4.0 来显示该文档。仍可以传统方式使用 MSXML 4.0,使用脚本在 HTML 页中操纵 XML。

删除版本独立的 ProgIDs
由于同样的原因,版本独立的 ProgIDs 已被删除。该删除是为了提供真正的并行安装,而以前的版本中,在安装 MSXML 新版本时仅某些 ProgIDs 随之升级。现在 CreateObject("MSXML2.DOMDocument") 实例化的不是 MSXML 4.0 DOM,而是前一版本。如果您要使用 MSXML 4.0,必须创建如下对象:CreateObject("MSXML2.DOMDocument.4.0")。因此,对于 C++ 和 Microsoft Visual Basic® 应创建 "MSXML2.DOMDocument40"。如果要使用 MSXML 4.0 版,所有其他的 MSXML 对象也要做类似的改变。

这是因为要改进代码的可维护性;而以前的设计,只要环境出现意外变化,很容易发生错误。简而言之,版本独立的 ProgIDs 对于测试性的 MSXML 非常方便,但是在生产环境中,风险极高。例如,用户使用版本独立的 ProgIDs 开发了代码,并假设 MSXML 3.0 确实存在。如果该用户稍后安装或重新安装 Microsoft SQL Server™,可能会意外发现他们正在使用 MSXML 2.6 而非 MSXML 3.0。将版本独立的 ProgIDs 从 MSXML 4.0 中删除可消除这种不稳定性,并可改进 MSXML 使之成为服务器端的企业级组件。

删除旧代码
此版本丢弃了许多旧功能。由于使用了替代模式,大部分功能都不再需要了。已清除的功能包括:

旧式、非一致性的 XSL,目前已完全由 W3 标准的 XSLT 1.0 取代。自 MSXML 3.0 后,完整的 XSLT 1.0 即可使用。 
旧式、非一致性的 XSLPattern 语言,目前已完全由 W3 标准的 XPaht 1.0 取代。自 MSXML 3.0 后,完整的 XPath 1.0 即可使用。 
旧式、非一致性的 XDR 初级 uuid: namespaces。旧 XDR 支持的正确命名空间现在是基于 HTTP 的名称空间:urn:schemas-microsoft-com:xml-data 及 urn:schemas-microsoft-com:datatype。 
旧的、非标准的 NodeFactory 界面,在 MSXML 3.0 中被降级。此界面用于 XML 连续分析。它已完全由 SAX2 分析程序取代。自 MSXML 3.0 后,SAX2 分析程序即可使用。 
normalize-line-break 功能现在对 SAX 分析程序没有任何影响。按 XML 规范,断行已完全正常化。 
并行功能
MSXML 4.0 的最终版本在推出时,其 DLL 名称(msxml4.dll、msxml4r.dll 及 msxml4a.dll)与预览版完全相同。由于删除了版本独立的 ProgIDs,保证了 MSXML 4.0 不会干扰以前安装的 MSXML(2.0、2.6 或 3.0)。Windows XP 并行安装为 Windows XP 用户做得更彻底。也就是说,Windows XP 可以采用特殊的并行功能以管理您的应用程序使用 MSXML 的方式及所使用的版本(从 4.0 往后的版本)。要做到这一点,必须创建一个特殊的应用程序声明,以将应用程序链接到 MSXML 4.0 的特定版本。有关详细信息,请参阅 Microsoft XML Parser 4.0 B2 and Windows XP(英文)。如果要用过去使用过的相同方法使用 MSXML,您不必做任何事情;MSXML 会同时以全局(和以前一样)及并行(新)模式安装于 Windows XP 上。

独立的 WinHTTP 版本 5.0 组件
ServerHTTPRequest 组件的功能现在由独立的 WinHTTP 组件提供。这是一个新服务器端组件,提供可靠的 HTTP 堆栈功能。没有 WinHTTP 组件,使用服务器端模式的 ServerHTTPRequest 及 DOM/SAX 将无法访问基于 HTTP 的数据。如果在运行 Windows NT®/2000/XP OS 的计算机上安装 MSXML 4.0,系统会自动安装 WinHTTP 组件。然而,对于 Windows 98/Me 情况则不同,WinHTTP 无法在此类系统上运行。您仍可以在 Windows 98 或 Windows Me 上安装 MSXML,但必须使用默认的 DOM/SAX 模式,或使用 WinInet 组件的 XMLHTTPRequest 对象来提供 HTTP 功能。WinInet 组件已随 Internet Explorer 预安装在这些 Windows 版本上。

此版本提供更轻便、更迅速、更一致的 XML 处理组件,用户可安全地在企业级系统的服务器环境中加以使用。只要可确保客户端计算机上安装了所需的组件,MSXML 4.0 仍可成功地用于环境控制适宜的客户端(与非瘦客户机情况相同)。

重要说明
如果安装了 MSXML 4.0 Previews (四月或七月的 MSXML 4.0 技术预览版本)
仍可以支持从技术预览直接升级到 RTM。必须先卸载预览版,再安装 RTM。您可能需要手动撤消注册并从 system32 目录删除 msxml4*.dll 文件。要撤消注册 MSXML 4.0 预览版,请运行:

regsvr32 /u msxml4.dll

如果已安装了 MSXML 4.0 四月发行的 MSXML 4.0 技术预览版本
请注意版本独立的 ProgIDs 已从 MSXML 4.0 中删除(尽管在四月发行的版本中还存在),所以安装此版本会使它们无法运作。这也可能严重影响许多使用 MSXML 3.0 的应用程序(如 Microsoft Visual Studio® .NET 安装程序)。要避免此问题,请从命令行运行以下两个命令并从 system32 目录删除 msxml4*.dll 文件,然后再安装此版本。

regsvr32 /u msxml4.dll
regsvr32 msxml3.dll

这将确保版本独立的 ProgIDs 指向 MSXML 3.0。请务必在安装此版本前完成上述操作。如果在您的计算机上没有 regsvr32.exe,则可以从此处下载(英文)。如果已安装了四月以后发行的版本,请向新闻组寻求帮助。再次提醒您,可能需手动从 system32 目录删除 msxml4*.dll 文件。

(0)

相关推荐

  • MSXML4.0 版中的新增功能

    MSXML4.0 版中的新增功能 2001 年 9 月发行的 Microsoft XML Core Services (MSXML) 4.0 版中的新增功能  Microsoft Corporation  2001年10月 下载 MSXML 4.0,网址为 MSDN Downloads(英文). 摘要: 本文重点介绍了与版本 3.0 相比,2001 年 9 月发行的 Microsoft XML Core Services (MSXML) 4.0 版中的新功能和重要变更. 目录 简介  新功能 

  • jQuery 3 中的新增功能汇总介绍

    从jQuery 震撼整个 Web ,至今已有十年了,我们有很好的理由一直坚持使用维护它.jQuery为用户提供了 DOM 进行操作,执行 Ajax 请求,创建动画等等,极为友好的接口.此外,与 DOM API 不同的是,jQuery 采用了 复合模式(composite pattern). 正因为如此,你可以在一个jQuery集合上调用jQuery方法,而不用担心集合包含的元素数量(零,一个或多个). 在未来的几周内,随着 jQuery 3 的发布,jQuery 会到达一个重要的里程碑.jQue

  • Python中sys模块功能与用法实例详解

    本文实例讲述了Python中sys模块功能与用法.分享给大家供大家参考,具体如下: sys-系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数.它始终可用. sys.argv 传递给Python脚本的命令行参数列表.argv[0]是脚本名称(依赖于操作系统,无论这是否是完整路径名).如果使用-c解释器的命令行选项执行命令,argv[0]则将其设置为字符串'-c'.如果没有脚本名称传递给Python解释器,argv[0]则为空字符串. 要循环标准输入或命

  • 一想千开PJblog审核功能补丁 v2.0版 发布第1/3页

    这次这个补丁,应该说和上和是没有多少关系的,是完全重新编写的.但为了不和上次发布的那个补丁混淆,给这个补丁加个版本号2.0. 一.PJblog审核功能补丁v2.0对PJblog功能上的改进 1.重大改进:一想千开首创"敏感字"概念并引入应用到PJblog审核功能补丁v2.0 什么是"敏感字"?一想千开对"敏感字"的定义是这样的:含有"敏感字"的言论有可能是非法言论,也有可能是正常言论.这类词语我们不能直接加进"过滤关

  • 揭秘PowerShell 5.0新特性和新功能

    Windows PowerShell 5.0中包含了大量的新特性和新功能,提升了整体的用户体验.虽然其中一些功能只能供硬核PowerShell开发人员使用,但其他新功能和特性具有广泛的适用性. 例如其中一个新功能是远程文件编辑.管理员暂时可以通过PowerShell建立与另一个Windows服务器的远程会话.新的远程文件编辑功能在此基础之上进行构建,从而能够建立一个远程会话,然后在远程计算机上编辑文件. 建立远程会话的方法通常相同.你可以使用Enter-PSSession命令,附上–Comput

  • PHP中的加密功能

    数据加密在我们生活中的地位已经越来越重要了,尤其是考虑到在网络上发生的大量交易和传输的大量数据.如果对于采用安全措施有兴趣的话,也一定会有兴趣了解PHP提供的一系列安全功能.在本篇文章中,我们将介绍这些功能,提供一些基本的用法,以便你能够为自己的应用软件中增加安全功能. 预备知识     在详细介绍PHP的安全功能之前,我们需要花点时间来向没有接触过这方面内容的读者介绍一些有关密码学的基本知识,如果对密码学的基本概念已经非常熟悉,就可以跳过去这一部分.     密码学可以通俗地被描述为对加/解密

  • php版微信自定义回复功能示例

    本文实例讲述了php版微信自定义回复功能.分享给大家供大家参考,具体如下: 配置好服务器之后,就可以用php实现自动回复了. index.php中的代码 <?php define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (isset($_GET['echostr'])) { $wechatObj->valid(); }else{ $wechatObj->res

  • Android 8.0系统中应用图标的适配微技巧

    现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了.三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米.华为.OV等国产手机厂商即将推出的新年旗舰机也会搭载Android 8.0系统.因此,现在已经是时候需要让我们的应用程序对Android 8.0系统进行适配了. 其实在去年Android 8.0系统刚推出的时候,我就仔细翻阅过Google官方的功能变更文档.变更项着实不少,但是真正需要我们去进行功能适配的地方却并不多.总结了一下,最

  • Android 8.0系统中应用图标的适配技巧

    现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了.三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米.华为.OV等国产手机厂商即将推出的新年旗舰机也会搭载Android 8.0系统.因此,现在已经是时候需要让我们的应用程序对Android 8.0系统进行适配了. 其实在去年Android 8.0系统刚推出的时候,我就仔细翻阅过Google官方的功能变更文档.变更项着实不少,但是真正需要我们去进行功能适配的地方却并不多.总结了一下,最

  • MySQL8.0.11版本的新增特性介绍

    MySQL 8.0 for Windows v8.0.11 官方免费正式版 64位 一. 数据字典(Data dictionary) 1)合并了存储数据库对象信息的事务性数据字典:之前版本是存储于元数据文件和非事务表中 : 二.原子数据定义语句(原子DDL)(Atomic Data Definition Statements (Atomic DDL)) 三.安全性和账户管理(Security and account management) 1)A new caching_sha2_passwor

随机推荐