Microsoft XML Core Services (MSXML) is the native (Win32) API for high-performance XML-based applications that adhere to the XML 1.0 standard. Core services that MSXML provides include:
- The Document Object Model (DOM), a standard library of application programming interfaces (APIs) for accessing XML documents.
- The Simple API for XML (SAX), a programmatic alternative to DOM-based processing.
- XMLHttpRequest and ServerXMLHTTPRequest for implementing AJAX and REST'ful service-oriented applications.
- The ability to issue XPath 1.0 queries over DOM documents and transform XML with XSLT 1.0.
- Support for the XSD 1.0 specification with the XmlSchemaCache.
- The Schema Object Model (SOM), an additional set of APIs for accessing XML Schema documents programmatically that was introduced in MSXML 4.0 and later.
For more information, see the
MSDN documentation for the MSXML SDK.
There are four currently supported versions of MSXML.
- MSXML6 first shipped with SQL Server 2005, as a web release, and is included with Windows XP SP3, Windows Vista, Windows 7, and later Windows releases. MSXML6 has enhancements for security, performance, stability, and improvements in XSD 1.0 & XML 1.0 conformance as well as support for x64 and Itanium architectures. It is recommended for applications that have Windows Vista or higher as minimum system requirements and those that can install MSXML6 using Windows Installer (Windows Server 2003, Windows XP SP2).
- MSXML4 was introduced to add features and improve performance but has been superseded by MSXML6. Customers on MSXML4 should look at migrating to MSXML6 as soon as schedule constraints allow as MSXML4 is nearing deprecation.
- MSXML3 is the most widely distributed version. It contains a number of browser-based technologies for backwards compatibility and legacy support and is installed by default on all supported Windows operating systems from Windows 2000 SP4 + URP and higher so it may be used by applications that cannot redistribute the MSXML installer or have downlevel systems requirements.
- MSXML5 was a special release only for Microsoft Office 2003 and Microsoft Office 2007. It is obsolete outside of these products.
To summarize, MSXML6 should be used when possible. Be careful, however, when writing code to load a different version of MSXML if v6 is not installed on a target machine. For example, it is generally a bad idea to work backwards by version number. If MSXML6 is not available, MSXML3 is generally the best fallback.
For a detailed description of which features were added and removed in which versions of MSXML, see: