Microsoft has released multiple version's of its XML API because XML has been such a fast changing technology. As of version 4.0, the "MS XML Parser" suite has changed to "MS XML Core Services". The abbreviation is still the same: "MSXML". The MSXML is an API that is used to manipulate the W3C API for XML documents and technologies. Of course MSXML also has non-standard features.

A machine may have one version or multiple versions existing side-by-side. Here are the releases:

Version File name File version Shipped With
1.0 msxml.dll 4.71.1712.5 IE4.0
1.0a msxml.dll 4.72.2106.4 IE4.0a-W95oemsr2.5
1.0 Service Pack 1 (SP1) msxml.dll 4.72.3110.0  
2.0 msxml.dll 5.0.2014.0206 IE4.01sp1, IE5.0
2.0a msxml.dll 5.0.2314.1000 IE5.0a-Office2000
2.0b msxml.dll 5.0.2614.3500 IE5.0b-W98se
2.5 Beta 2 msxml.dll 5.0.2919.38  
2.5a msxml.dll 5.0.2919.6303 IE5.01-W95/98/NT4.0
2.5 msxml.dll 5.0.2920.0 IE5.01-W2000
2.5 Service Pack 1 (SP1) msxml.dll 8.0.5226 IE5.01sp1-W2000
2.6 January 2000 Web Release msxml2.dll
(January Web Release)
2.6 Beta 2 msxml2.dll 8.0.5207.3 SQLSrvr2000beta2
2.6 msxml2.dll 8.0.6518.1 SQLSrvr2000
BizTalkTR, BizTalkBeta
3.0 March 2000 Web Release msxml3.dll
(March Web Release)
3.0 May 2000 Web Release msxml3.dll
(May Web Release)
3.0 July 2000 Web Release msxml3.dll
(July Web Release)
3.0 September 2000 Web Release msxml3.dll
(September Web Release)
3.0 Release msxml3.dll 8.0.7820.0  
4.0 msxml4.dll,
This version allows side-by-side installs.

Here is an example of how to create an instance of the DOMDocument object in script.

//In JavaScript
var xml = new ActiveXObject("Msxml2.DOMDocument.4.0");
var xsl = new ActiveXObject("Msxml2.DOMDocument.4.0");
xml.setProperty("SelectionLanguage", "XPath");
currNode = xml.selectSingleNode("//book/author");
'In VBScript
Dim xml, xsl, currNode
Set xml = CreateObject("Msxml2.DOMDocument.4.0")
Set xsl = CreateObject("Msxml2.DOMDocument.4.0")
xml.load "books.xml"
xml.setProperty "SelectionLanguage", "XPath"
currNode = xml.selectSingleNode("//book/author")
<object runat="server" progid="msxml2.DOMDocument.4.0" id="xObj"> </object>

Earlier versions were instantiated by referencing like:  var source = Server.CreateObject("MSXML2.DOMDocument"); or var xml = new ActiveXObject("Msxml2.DOMDocument.2.6");.

The threading model can be switched from the default of rental model to both-threaded (a.k.a. free-threaded), by prefixing with FreeThreaded. EG: CreateObject("MSXML2.FreeThreadedDOMDocument.4.0").

Here are the various components of the MS XML Parser 4.0 direct from MS [2003-02]:

Symbolic Name GUID ProgID
CLSID_DOMDocument40 {88d969c0-f192-11d4-a65f-0040963251e5} Msxml2.DOMDocument.4.0
CLSID_DSOControl40 {88d969c4-f192-11d4-a65f-0040963251e5} Msxml2.DSOControl.4.0
CLSID_FreeThreadedDOMDocument40 {88d969c1-f192-11d4-a65f-0040963251e5} Msxml2.FreeThreadedDOMDocument.4.0
CLSID_MXHTMLWriter40 {88d969c9-f192-11d4-a65f-0040963251e5} Msxml2.MXHTMLWriter.4.0
CLSID_MXNamespaceManager40 {88d969d6-f192-11d4-a65f-0040963251e5} Msxml2. MXNamespaceManager.4.0
CLSID_MXXMLWriter40 {88d969c8-f192-11d4-a65f-0040963251e5} Msxml2.MXXMLWriter.4.0
CLSID_SAXAttributes40 {88d969ca-f192-11d4-a65f-0040963251e5} Msxml2.SAXAttributes.4.0
CLSID_SAXXMLReader40 {7c6e29bc-8b8b-4c3d-859e-af6cd158be0f} Msxml2.SAXXMLReader.4.0
CLSID_ServerXMLHTTP40 {88d969c6-f192-11d4-a65f-0040963251e5} Msxml2.ServerXMLHTTP.4.0
CLSID_XMLHTTP40 {88d969c5-f192-11d4-a65f-0040963251e5} Msxml2.XMLHTTP.4.0
CLSID_XMLSchemaCache40 {88d969c2-f192-11d4-a65f-0040963251e5} Msxml2.XMLSchemaCache.4.0
CLSID_XSLTemplate40 {88d969c3-f192-11d4-a65f-0040963251e5} Msxml2.XSLTemplate.4.0

Page Modified: (Hand noted: ) (Auto noted: )