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:
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
, orMsxml2.DOMDocument.6.0
).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
, orMsxml2.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