Microsoft has released an XML Parser 4.0 Technology Preview which "provides a solid look at a number of important new features of MSXML 4.0, including XSD language validation in the DOM and XSD support in XPath and XSLT. The technology preview offers fixes for known problems, improved performance, more samples, and more complete documentation. Most prominent among the additions to the technology preview is the support of the latest W3C XML Schema, Proposed Recommendation (March 30, 2001). The most important feature is the ability to validate XML documents in the DOM using the XML Schema. Currently, validation has to be done automatically using the XMLSchemaCache object. You can use all the XML Schema features except regular expressions, which will be supported in a later release. While adding support for the latest XML Schema recommendation, the MSXML 4.0 Technology Preview continues to support XML-Data Reduced (XDR) and document type definition (DTD) validations. The second new schema feature is support of the XML Schema in XPath and, consequently, in XSLT. With additional extension functions, permitted by XPath and XSLT standards, you can check nodes for XSD types and presence of schema information, sort and compare strings and time-date values, and convert strings to numbers in a manner conformant with the XSD specification. The MSXML technology preview extends its support for sequential XML processing architectures, based on the SAX2 API, in three ways: (1) Integration between the DOM and SAX parsing models; (2) Generation of HTML output via a new MXHTMLWriter coclass; (3) Tracking of namespace declarations via IMXNamespaceManager and IMXNamespacePrefixes interfaces."
From the article on 4.0 Technology Preview new features:
Now, you can use the MXXMLWriter object to generate SAX events out of a DOM tree and, likewise, build a DOM tree out of SAX events. This feature allows you to closely integrate DOM and SAX in your applications.
A new object, MXHTMLWriter, allows you to output HTML using a stream of SAX events, much in the same way that the <xsl:output> element in XSLT can generate HTML from a result tree. The new MXHTMLWriter object provides necessary support for high-performing Active Server Pages (ASP), which read XML documents with a SAX reader, put those documents through custom SAX filters, and output the data to the user as an HTML page. The MXHTMLWriter object is also useful for a number of other applications, like the manual generation of HTML pages.
The new MXNamespaceManager object allows you to manually track namespace declarations and resolve them either in the current context or in the context of a particular DOM node. While MSXML supports namespaces, and can automatically resolve names of elements and attributes, there are more and more cases where an attribute's value or an element's content uses qualified names. For example, the following code uses a qualified name for the genre and style attributes. The new MXNamespaceManager object is readily able to track and resolve these qualified names.
To simplify development of C++-based SAX components, there is the SaxAppWizard utility for Microsoft Visual Studio. With this utility, you can quickly develop backbone SAX applications just like console or WFC applications are developed when creating a new project.
Requirements: "Platforms supported include Microsoft Windows 2000, Windows NT 4.0, Microsoft Windows Me, Microsoft Windows 98, and Microsoft Windows 95. For minimum functionality, the MSXML 4.0 Technology Preview requires the Microsoft Internet Explorer 4.01 Service Pack 1. For full functionality, MSXML 4.0 requires Internet Explorer 5.01 (or later). ServerXMLHTTP support is only available on computers that have Windows 2000 installed or on computers that have Windows NT 4.0 with Internet Explorer 5.01 (or later) installed. In addition, support for the MIME Viewer and XMLHTTP is only available with Internet Explorer 5.0 (or later)."