title: jQuery and MSXML
body: <p>MSXML6 is supposed to have the best security, performance, reliability, and W3C conformance (<a href="http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx" rel="nofollow noreferrer">Using the right version of MSXML in Internet Explorer</a>).</p>
  
  <p><strong>Questions:</strong></p>
  
  <ol>
  <li>Why does not jQuery use MSXML6?</li>
  <li>Does jQuery use MSXML3? (I think the answer is  yes, see my update below...)</li>
  <li>Can i fetch the version of MSXML from an <a href="http://msdn.microsoft.com/en-us/library/ms759148(VS.85).aspx" rel="nofollow noreferrer"><code>IXMLDOMDocument</code></a> instance? If so, how?</li>
  </ol>
  
  <p><strong>Update:</strong></p>
  
  <p>I've made some research based on Deviant's answer:</p>
  
  <p><a href="http://jquery.com/" rel="nofollow noreferrer">jQuery</a> creates the <a href="http://msdn.microsoft.com/en-us/library/ms759148(VS.85).aspx" rel="nofollow noreferrer"><code>IXMLHTTPRequest</code></a> object, which was first released with <a href="http://msdn.microsoft.com/en-us/library/ms762314(VS.85).aspx" rel="nofollow noreferrer">MSXML 2.0</a>, like this:</p>
  
  <pre><code>new ActiveXObject("Microsoft.XMLHTTP");</code></pre>
  
  <p><code>Microsoft.XMLHTTP</code> is a <a href="http://msdn.microsoft.com/en-us/library/ms757837(VS.85).aspx" rel="nofollow noreferrer">ProgID</a>, which is <a href="http://msdn.microsoft.com/en-us/library/ms766426(VS.85).aspx" rel="nofollow noreferrer">only implemented in MSXML3 for legacy support</a> and not recommended. If i understand <a href="http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx" rel="nofollow noreferrer">the reference</a> correctly this would have created a version 2.x <code>IXMLHTTPRequest</code> object, before those versions was <a href="http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx" rel="nofollow noreferrer">“kill-bitted”</a>. Now I'm pretty sure this ProgID creates an MSXML 3.0 <code>IXMLHTTPRequest</code> object. This may answer my second question.</p>
  
  <p>Here is sample code that shows how to create the two recommended versions of the <code>IXMLHTTPRequest</code> object:</p>
  
  <pre><code>new ActiveXObject("MSXML2.XMLHTTP.3.0"); // MSXML 3.0 ProgID...
  new ActiveXObject("MSXML2.XMLHTTP.6.0"); // MSXML 6.0 ProgID...
  </code></pre>
  
  <p>I've tested XSLT performance in MSXML3 vs MSXML6. MSXML6 used less than 1/10 of the time to do the same transformation as MSXML3 for a pretty large XML file!</p>
  
  <p><strong>Rerences:</strong></p>
  
  <ol>
  <li><a href="http://jquery.com/" rel="nofollow noreferrer">jQuery: The Write Less, Do More, JavaScript Library</a></li>
  <li><a href="http://msdn.microsoft.com/en-us/library/ms759148(VS.85).aspx" rel="nofollow noreferrer"><code>IXMLHTTPRequest</code></a></li>
  <li><a href="http://msdn.microsoft.com/en-us/library/ms762314(VS.85).aspx" rel="nofollow noreferrer">MSXML API History</a></li>
  <li><a href="http://msdn.microsoft.com/en-us/library/ms757837(VS.85).aspx" rel="nofollow noreferrer">GUID and ProgID Information</a></li>
  <li><a href="http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx" rel="nofollow noreferrer">Using the right version of MSXML in Internet Explorer</a></li>
  <li><a href="http://msdn.microsoft.com/en-us/library/ms766426(VS.85).aspx" rel="nofollow noreferrer">MSXML 3.0 GUIDs and ProgIDs</a></li>
  <li><a href="http://msdn.microsoft.com/en-us/library/ms764622(VS.85).aspx" rel="nofollow noreferrer">MSXML 6.0 GUIDs and ProgIDs</a></li>
  <li><a href="http://msdn.microsoft.com/en-us/library/ms761415(VS.85).aspx" rel="nofollow noreferrer">Why Version-Independent GUIDs and ProgIDs Were Removed</a></li>
  </ol>