My XML files are showing the unknown programs icon.

Why can't I change the icon? I looked it up in the registry, but I found no error. Look at the following:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\.xml] 
@="xmlfile" 
"Content Type"="text/xml" 
"PerceivedType"="text" 

[HKEY_CLASSES_ROOT\.xml\PersistentHandler] 
@="{7E9D8D44-6926-426F-AA2B-217A819A5CCE}" 

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\xmlfile] 
@="@C:\\Windows\\System32\\msxml3r.dll,-1" 
"EditFlags"=hex:00,00,00,00 
"FriendlyTypeName"=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,\ 
  00,6f,00,6f,00,74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,\ 
  32,00,5c,00,6d,00,73,00,78,00,6d,00,6c,00,33,00,72,00,2e,00,64,00,6c,00,6c,\ 
  00,2c,00,2d,00,31,00,00,00 

[HKEY_CLASSES_ROOT\xmlfile\BrowseInPlace] 

[HKEY_CLASSES_ROOT\xmlfile\CLSID] 
@="{48123BC4-99D9-11D1-A6B3-00C04FD91555}" 

[HKEY_CLASSES_ROOT\xmlfile\DefaultIcon] 
@="C:\\Windows\\System32\\msxml3.dll,0" 

[HKEY_CLASSES_ROOT\xmlfile\shell] 
@="open" 

[HKEY_CLASSES_ROOT\xmlfile\shell\edit] 

[HKEY_CLASSES_ROOT\xmlfile\shell\edit\command] 
@="\"C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE11\\MSOXMLED.EXE\" /verb edit \"%1\"" 

[HKEY_CLASSES_ROOT\xmlfile\shell\Open] 

[HKEY_CLASSES_ROOT\xmlfile\shell\Open\Command] 
@="\"C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE11\\MSOXMLED.EXE\" /verb open \"%1\"" 

[HKEY_CLASSES_ROOT\xmlfile\shell\Open\ddeexec] 
@="" 

[HKEY_CLASSES_ROOT\xmlfile\ShellEx] 

[HKEY_CLASSES_ROOT\xmlfile\ShellEx\IconHandler] 
@="{AB968F1E-E20B-403A-9EB8-72EB0EB6797E}" 

Can you find something wrong? Or can you paste your registry values?

I need default registry values about xml which is with the default associated exe.


Yes this time it has nothing to do with the icon cache. As this post correctly pointed out to me: http://www.sevenforums.com/microsoft-office/152972-no-icon-xml-files.html#post1315413

the problem is due to the IconHandler, apparently installed by some Office suite version. So it's enough to remove the IconHandler sub-key from xmlfile key, and leave a reasonable predefined string value in DefaultIcon key (like the one you already have).


Office uses a 32-bit Icon Handler, which breaks the XML icon on 64-bit systems.

To stop Office from trying to serve your icons for XML files, you can use this registry script:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\xmlfile\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,00,73,00,\
  78,00,6d,00,6c,00,33,00,2e,00,64,00,6c,00,6c,00,2c,00,30,00,00,00

[-HKEY_CLASSES_ROOT\xmlfile\ShellEx\IconHandler]

This sets the DefaultIcon key's default value to %SystemRoot%\System32\msxml3.dll,0 and removes the IconHandler key.

Before using this registry script, ensure you want that default key (I think Windows Vista/7/8 use that value by default), and optionally back up your IconHandler key.


It should display the right icon, but you can try to rebuild the icon cache. A simple way is to delete the file IconCache.db witch is found in your user path under Local (in Win XP) or \AppData\Local (Vista/7). (you can restart after you delete this file)