揭开MSXML4.0的面纱

    技术2022-05-11  113

    揭开MSXML4.0的面纱

    时间:2001/05/09 11:09作者:孙一中 中国XML联盟

     

    2001年4月16日,微软发布了MSXML 解析器4.0的技术预览版本。比起3.0版本,有不少改进的地方,例如对W3C最新XML Schema推荐建议的支持。本文将为你总体介绍该版本的新特性,以及如何在新的并列(side-by-side)模式中使用MSXML 4.0。MSXML 4.0安装程序可以在 MSDN Online Downloads 中下载。

    Microsoft? XML Parser (MSXML) 4.0 技术预览版(Technology Preview Release)是MSXML 4.0的先期版本。该技术预览版提供了MSXML 4.0中新的重要特性,同时修改原有的错误、提高了性能,并提供了更多的样例和文档。

    该版本最显著的新特点是对2001年3月30日W3C XML Schema推荐建议的支持。其中包括:

    在DOM中对XML Schema 定义(XSD)语言的校验。原来的MSXML支持的是DTD和XDR(XML-Data Reduces Version)。而随着XML Schema的成熟,MSXML中也转向了对XSD的支持。目前可以采用XMLSchema对象来自动实现对XML Schema的校验功能。除了正则表达式之外你可以使用XML Schema中的所有特性。而正则表达式将在后续的版本中支持。

    在XPath和XSLT中对XSD的支持。通过XPath和XSLT中提供的扩展函数你可以检查XSD类型的结点,对字符串和时间日期数值的比较、排序,或者可以以XSD中支持的方式将字符串转换为数字类型。

    目前XML Schema规范还差最后一步,从推荐建议(Proposed Recommendation)成为正式建议(Recommendation)。在2001年的年中,XML

    Schema将成为W3C的最终建议(Recommendation)。MSXML 4.0也将更新对它的支持。

    另外该版本中也基于SAX2通用标准对顺序化XML的处理架构进行了扩展。这些扩展包括:

    集成DOM和SAX处理模型,通过 SAXXMLReader和 MXXMLWriter对象实现SAX和DOM的互相转换。你可以使用MXXMLWriter在DOM树之外对象产生SAX事件,同样可以利用SAX事件建立DOM树。

    类似于XSLT中通过<xsl:output>元素从结果树中产生HTML,也可以从SAX事件流中生成HTML,它是通过MSXML4.0中新的对象MXHTMLWriter对象实现的。

    提供helper对象跟踪名域(namespace)声明。其中MXNamespaceManager对象完全支持2000年12月28日的SAX修正版本。

    在MSXML 4.0技术预览版本还提供新的SaxApp Wizard机制简化在Microsoft Visual Studio?中开发SAX程序。通过该Wizard,你可以迅速地开发SAX应用框架,类似于新建项目的控制台或WFC应用。

    和MSXML3.0不同之处还在于,MSXML4.0的应用模式称为并列模式(Side-by-Side Mode)。安装MSXML4.0时不必单独运行xminst.exe,而且安装后还可以提供对原来的低版本的支持,而不是替代原来的MSXML 2.0, MSXML 2.6或者MSXML 3.0版本。

    我们用下面的表格来说明MSXML 4.0中新增的特点:

    特性
    XML Schema Definition (XSD) 的支持

    支持W3C 2001年3月30日 XML Schema推荐建议,但还目前还不支持正则表达式和标识约束。

     

    在XSD中支持XPath语言的扩展函数

    MSXML4.0提供了一些XPath中提供的扩展函数,可以支持基于数据类型的节点计算。

     

    IMXNamespaceManager和 IMXNamespacePrefixes接口

    这两个新接口提供了便捷的方式来管理名域、名域前缀和名域URI。

    SAX 到DOM的支持

    通过SAX的 IMXWriter接口,你能够将IMXWriter的output属性设置为DOMDocument对象,从而从SAX事件可以生成DOMDocument对象。

    DOM到SAX的支持

    从DOMDocument触发SAX事件

    MXHTMLWriter

    MXHTMLWriter类是对IMXWriter接口的具体实现之一,可以从SAX应用中产生HTML输出。

    创建C++ SAX应用的Wizard

    SAX Win32 AppWizard可以从Microsoft产品支持服务中下载。它实现了在C++中进行SAX应用的编程。

    增加了IServerXMLHTTPRequest样例

    根据可户客户的要求,在IServerXMLHTTPRequest文档中添加了新的样李。

    增强了XSLT开发指南

    新增添了一些新的主题

    新的GUIDs和PROGIDs

    MSXML 4.0要安装三个DLL文件到你的系统目录:msxml4.dll, msxml4a.dll和msxml4r.dll。不过头文件(msxml2.h)、 .lib文件msxml2.lib)和.idl文件(msxml2.idl.)的名称都没有变化。


    最新回复(0)