MSXML Roadmap

 

This article describes the existing releases of MSXML technologies. The article also briefly summarizes features that MSXML provides, have been improved or deprecated in past and current releases.

MSXML(Microsoft XML Core Services)

MSXML provides a set of services that allow customers who use JScript, VBScript and Microsoft Visual Studio (2005 and later versions) to build high-performance XML based applications that provide a high level of interoperability with other applications that adhere to the XML 1.0 standard.

MSXML APIs are exposed programmatically as Component Object Model (COM) objects. Developers can program against MSXML objects from C++ or from scripting languages such as JScript and VBScript. Like all COM components, MSXML objects are programmatically instantiated by CLSID or ProgID. Each version of MSXML exposes its own set of CLSIDs and ProgIDs. Different versions of MSXML support slightly different sets of functionality. Later sections describe different MSXML versions.

MSXML Releases

Different versions of MSXML are included within Microsoft products such as Microsoft Windows, Microsoft Internet Explorer, Microsoft Office, and Microsoft SQL Server. MSXML is also updated when you install software updates through various Microsoft products. Refer to List of Microsoft XML Parser (MSXML) versions for detailed information, including version numbers for each release.

Version Ships With Microsoft Support? Notes
MSXML 1.0 MSXML 2.0 Internet Explorer 4.0 Internet Explorer 5.0 No
MSXML 2.5 Internet Explorer 5.01 and MDAC 2.5. No CLSIDs and ProgIDs that this version exposed have been subsumed by MSXML 3.0.
MSXML 2.6 Microsoft SQL Server 2000 and MDAC 2.6. No CLSIDs and ProgIDs that this version exposed have been subsumed by MSXML 3.0.
MSXML 3.0 All supported Microsoft Windows operating systems Yes MSXML 3.0 is the most broadly deployed version of MSXML. It contains several browser-based technologies for backward compatibility and legacy support. When MSXML 6.0 is not available MSXML 3.0 is generally the best fallback version, even though it does not support all of the same features as MSXML 6.0.

The lifecycle and service mode of MSXML 3.0 is subject to the hosting Microsoft Windows operating system. For more information, see Microsoft Help and Support.
MSXML 4.0 Shipped as an independent web release to add features and improve performance. No Support ended April 2014; superseded by MSXML 6.0. Customers must upgrade their applications that use MSXML 4.0 to use MSXML 6.0 instead to remain secure.
MSXML 5.0 Microsoft Office 2003 Microsoft Office 2007 Yes Originally designed specifically for applications targeting the Microsoft Office product family. Use outside of Microsoft Office products is not recommended. The lifecycle and service mode for MSXML 5.0 is subject to the Microsoft Office product it was shipped with. For more information about lifecycle of Microsoft Office products, see Microsoft Help and Support
MSXML 6.0 Shipped as an in-box component on Microsoft Windows XP SP3, Microsoft Windows Vista, and later operating systems. It was also shipped as a web release to support redistribution on Microsoft Windows XP SP2 and Windows Server 2003 SP1. Download MSXML 6.0 for these systems from the Microsoft download center Yes MSXML 6.0 is the latest MSXML product from Microsoft. It provides improved W3C compliance and increased compatibility with System.XML in Microsoft .Net Framework. The lifecycle and service mode of MSXML 6.0 is subject to the hosting Microsoft Windows OS. For more information about the Windows Operating System lifecycle, see Microsoft Help and Support

MSXML Standard Support

MSXML conforms to several World Wide Web Consortium (W3C) web standards. The following table lists the W3C Specifications that MSXML complies with. The next section of this document describes MSXML-specific information.

XML Features W3C Spec MSXML Conformance Remark
XML Core XML 1.0 (First – fourth Edition) 4th Edition
XML Namespaces 1.0 (3rd Edition) Yes
DOM Level 1 Yes
XML Schema XML Schema 1.0 (2nd Edition) Yes (MSXML4/5/6)
No (MSXML3) See
XPath/XQuery XPath 1.0 Yes See
XML Transformation XSLT 1.0 Yes See

XML Schema (XSD) and XML-Data Reduced (XDR)

Starting with version 4.0, MSXML supports the final World Wide Web Consortium (W3C) XML Schema (XSD) Recommendation. Before the XSD Recommendation, MSXML also implemented XML-Data Reduced (XDR), an XML schema language from Microsoft. XDR is supported in MSXML 3.0, MSXML 4.0, and MSXML 5.0, but it was not made available in MSXML 6.0.

Extensible Stylesheet Language Transformations (XSLT)

XSL specifies a language definition for XML data presentation and data transformations. Data transformation means parsing an input XML document into a tree of nodes and then converting the source tree into a result tree.

Before version 3.0, MSXML implemented XSL support based on World Wide Web Consortium Working Draft 16-December-1998 of XSL. In MSXML 3.0, MSXML has support for both XSLT 1.0 and the old dialect. The support of the old dialect was removed from MSXML 4.0 and later versions.

XML Path Language (XPath) and XSLPattern

XML Path Language (XPath) expressions use a path notation, like that used in URLs, to address parts of an XML document. The expression is evaluated to yield an object of the node-set, Boolean, number, or string type. In addition, an XPath expression can have predicates (filter expressions) or function calls.

XPath 1.0 support is available in all supported MSXML versions.

XSLPattern is a predecessor of XPath that was implemented only in MSXML 3.0. XSLPattern is the default query language in MSXML 3.0, so customers must explicitly set the SelectionLanguage property to use XPath in MSXML 3.0. For details, see SelectionLanguage Property.

MSXML Programming Model and Features

XML DOM Document

Document Object Model (DOM)

The Document Object Model (DOM) provides a standard set of objects for representing HTML and XML documents, a standard model of how these objects can be combined, and a standard interface for accessing and manipulating these objects.

MSXML DOM provides a set of classes that directly reflect the W3C Document Object Model (DOM) Level 1 specification, which allows programs and scripts to dynamically access and update the content, structure and style of documents.

MSXML allows you to create DOM objects that can use two types of thread models:

  1. If you are writing a single-threaded application or a multithreaded application in which only one thread can have access to a DOM object at one time, you can use the rental-threaded model (Msxml2.DOMDocument.3.0, Msxml2.DOMDocument.4.0, Msxml2.DOMDocument.5.0, or Msxml2.DOMDocument.6.0).

  2. If you are writing an application in which multiple threads can have access to a DOM at the same time, use the free-threaded model (Msxml2.FreeThreadedDOMDocument.3.0, Msxml2.FreeThreadedDOMDocument.4.0, Msxml2.FreeThreadedDOMDocument.5.0, or Msxml2.FreeThreadedDOMDocument.6.0).

Simple API for XML (SAX)

The Simple API for XML (SAX) is a public standard for event-driven parsing of XML documents. SAX can be used to build DOM trees (or portions of DOM trees); conversely, developers can traverse DOM trees and emit SAX streams. Because SAX does not demand resources for an in-memory representation of the document, it is a good alternative to the Document Object Model (DOM). There is a tradeoff among features, performance, and memory footprint between the DOM parser and the SAX parser.

The SAX interface is available in all supported MSXML versions. SAX support in MSXML 4.0 and later versions includes methods for completing transformation and validation, which result in better messaging support for end users.

Web Application Support: XMLHTTP and ServerXMLHTTP

XMLHTTP and ServerXMLHTTP APIs are widely used in web applications to establish an HTTP connection between clients and servers for files or objects. The XMLHTTP and ServerXMLHTTP objects offer similar functionality. However XMLHTTP relies on WinInet control for HTTP access to remote XML documents and is designed for client applications; ServerXMLHTTP uses WinHTTP and is designed for server applications.

XMLHTTP and ServerXMLHTTP are available on all supported MSXML versions.

Schema Support

XML Schema Definition (XSD)

The XML Schema Definition (XSD) language is the current standard schema language for all XML documents and data. XSD defines the structure and data types for XML documents.

XSD validation support is available in MSXML 4.0 and later versions. The implementation is based on the XSD 1.0 specification published by the World Wide Web Consortium (W3C) on May 2, 2001.

Schema Cache

MSXML can create a cache of the XML Schema documents associated with namespace URIs.

Schema cache is available in all supported MSXML versions. A number of changes and improvements have been made to the schema cache in MSXML 6.0. For details, see Improvements in Schema Cache Behavior in MSXML 6.0.

Schema Object Model (SOM)

Schema Object Model (SOM) is a navigable set of classes that allow you to work with documents that are formed according to the XSD specification.

Use the SOM when you want to get information about the data type or logical structure of an XML schema document node. You can also use the SOM to build your own custom structures from an XML Schema.

SOM was is included in MSXML 4.0 and later versions.

Other features

XML Digital Signature

XML Digital Signature is an implementation of digital signatures applied to XML documents. The syntax and semantics of XML digital signature follows the W3C standard as specified in the "XML-Signature Syntax and Processing" 3C Recommendation 12 February 2002, available at www.w3.org/TR/xmldsig-core/.

This feature was implemented only in MSXML 5.0 for Microsoft Office Applications.

Data Source Object (DSO) and Data Island

The XML Data Source Object (DSO) allows you to bind an XML data set to HTML elements.

Data islands are XML data that are referenced or included in an HTML page and tagged using an <XML> element. To display an HTML table of the elements and attributes contained in XML data you can use either the <OBJECT> element to refer to the XML data source object, or the <XML> element to refer to data islands. The contents of the table change as the XML data changes.

Both DSO and data islands are deprecated technologies. Support for DSO and data islands was removed from MSXML 4.0 and later versions. Developers are encouraged to update existing applications that use DSO and data islands to use XSLT instead.

MSXML Objects

MSXML supports the W3C standard and several features through a set of COM objects. Different MSXML versions exhibit slight discrepancies. The following table lists MSXML objects that are supported in current MSXML versions. For detail information about ProgIDs, refer to GUID and ProgID Information.

Object Name MSXML 3.0 MSXML 4.0 MSXML 5.0 MSXML 6.0
DOMDocument CLSID_DOMDocument/ CLSID_DOMDocument30 CLSID_DOMDocument40 CLSID_DOMDocument50 CLSID_DOMDocument60
FreeThreadedDOMDocument CLSID_FreeThreadedDOMDocument/ CLSID_FreeThreadedDOMDocument30 CLSID_FreeThreadedDOMDocument40 CLSID_FreeThreadedDOMDocument50 CLSID_FreeThreadedDOMDocument60
DSOControl CLSID_DSOControl/CLSID_DSOControl30 CLSID_DSOControl40 CLSID_DSOControl50 CLSID_DSOControl60
XMLSchemaCache CLSID_XMLSchemaCache/ CLSID_XMLSchemaCache30 CLSID_XMLSchemaCache40 CLSID_XMLSchemaCache50 CLSID_XMLSchemaCache60
XSLTemplate CLSID_XSLTemplate/CLSID_XSLTemplate30 CLSID_XSLTemplate40 CLSID_XSLTemplate50 CLSID_XSLTemplate60
MXHTMLWriter CLSID_MXHTMLWriter40 CLSID_MXHTMLWriter50 CLSID_MXHTMLWriter60
MXNamespaceManager CLSID_MXNamespaceManager40 CLSID_MXNamespaceManager50 CLSID_MXNamespaceManager60
MXXMLWriter CLSID_MXXMLWriter40 CLSID_MXXMLWriter50 CLSID_MXXMLWriter60
SAXAttributes CLSID_SAXAttributes40 CLSID_SAXAttributes50 CLSID_SAXAttributes60
SAXXMLReader CLSID_SAXXMLReader40 CLSID_SAXXMLReader50 CLSID_SAXXMLReader60
MXDigitalSignature
XMLHTTP CLSID_XMLHTTP/CLSID_XMLHTTP30 CLSID_XMLHTTP40 CLSID_XMLHTTP50 CLSID_XMLHTTP60
ServerXMLHTTP CLSID_ServerXMLHTTP40 CLSID_ServerXMLHTTP50 CLSID_ServerXMLHTTP60

See Also

Using the right version of MSXML in Internet Explorer
What's New in MSXML