Actually those program ids can be confusing, if you have an application using the program id "MSXML2.XSLTemplate40" then that application uses MSXML version 4. The prefix "MSXML2 is common to all supported MSXML versions i.e. MSXML version 3 has program
ids like "MSXML2.DOMDocument.3.0", MSXML version 6 program ids like "MSXML2.DOMDocument.6.0". See http://msdn.microsoft.com/en-us/library/ms766426%28v=vs.85%29.aspx and http://msdn.microsoft.com/en-us/library/ms754671%28v=vs.85%29.aspx and http://msdn.microsoft.com/en-us/library/ms764622%28v=vs.85%29.aspx
for details on the program ids.
Based on that your description is unclear, if you use MSXML version 4 and want to upgrade to version 6 see
http://blogs.msdn.com/b/xmlteam/archive/2007/03/12/upgrading-to-msxml-6-0.aspx.
MVP Data Platform Development
My blog