揭开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.)的名称都没有变化。