MSXML4.0 版中的新增功能(3)



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 使之成为服务器端的企业级组件。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3582.html