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 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.

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.

VersionShips WithMicrosoft Support?Notes
MSXML 1.0 MSXML 2.0Internet Explorer 4.0 Internet Explorer 5.0No
MSXML 2.5Internet Explorer 5.01 and MDAC 2.5.NoCLSIDs and ProgIDs that this version exposed have been subsumed by MSXML 3.0.
MSXML 2.6Microsoft SQL Server 2000 and MDAC 2.6.NoCLSIDs and ProgIDs that this version exposed have been subsumed by MSXML 3.0.
MSXML 3.0All supported Microsoft Windows operating systemsYesMSXML 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.0Shipped as an independent web release to add features and improve performance.NoSupport 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.0Microsoft Office 2003 Microsoft Office 2007YesOriginally 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.0Shipped 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 centerYesMSXML 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 FeaturesW3C SpecMSXML ConformanceRemark
XML CoreXML 1.0 (First – fourth Edition)4th Edition
XML Namespaces 1.0 (3rd Edition)Yes
DOM Level 1Yes
XML SchemaXML Schema 1.0 (2nd Edition)Yes (MSXML4/5/6)
No (MSXML3)See
XPath/XQueryXPath 1.0YesSee
XML TransformationXSLT 1.0YesSee

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.

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 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 NameMSXML 3.0MSXML 4.0MSXML 5.0MSXML 6.0
DOMDocumentCLSID_DOMDocument/ CLSID_DOMDocument30CLSID_DOMDocument40CLSID_DOMDocument50CLSID_DOMDocument60
FreeThreadedDOMDocumentCLSID_FreeThreadedDOMDocument/ CLSID_FreeThreadedDOMDocument30CLSID_FreeThreadedDOMDocument40CLSID_FreeThreadedDOMDocument50CLSID_FreeThreadedDOMDocument60
DSOControlCLSID_DSOControl/CLSID_DSOControl30CLSID_DSOControl40CLSID_DSOControl50CLSID_DSOControl60
XMLSchemaCacheCLSID_XMLSchemaCache/ CLSID_XMLSchemaCache30CLSID_XMLSchemaCache40CLSID_XMLSchemaCache50CLSID_XMLSchemaCache60
XSLTemplateCLSID_XSLTemplate/CLSID_XSLTemplate30CLSID_XSLTemplate40CLSID_XSLTemplate50CLSID_XSLTemplate60
MXHTMLWriterCLSID_MXHTMLWriter40CLSID_MXHTMLWriter50CLSID_MXHTMLWriter60
MXNamespaceManagerCLSID_MXNamespaceManager40CLSID_MXNamespaceManager50CLSID_MXNamespaceManager60
MXXMLWriterCLSID_MXXMLWriter40CLSID_MXXMLWriter50CLSID_MXXMLWriter60
SAXAttributesCLSID_SAXAttributes40CLSID_SAXAttributes50CLSID_SAXAttributes60
SAXXMLReaderCLSID_SAXXMLReader40CLSID_SAXXMLReader50CLSID_SAXXMLReader60
MXDigitalSignature
XMLHTTPCLSID_XMLHTTP/CLSID_XMLHTTP30CLSID_XMLHTTP40CLSID_XMLHTTP50CLSID_XMLHTTP60
ServerXMLHTTPCLSID_ServerXMLHTTP40CLSID_ServerXMLHTTP50CLSID_ServerXMLHTTP60

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

Show: