MSXML side-by-side installation allows multiple versions to be loaded in memory and used simultaneously by separate applications that depend on different versions of MSXML. For example, MSXML 6.0 will install side by side with MSXML 3.0 and will not impact existing applications that use MSXML 3.0. When a service pack is installed for a version of MSXML, the service pack will completely replace the previous installation of that version. For example, a new service pack for MSXML 3.0 completely replaces the previous installation of MSXML 3.0, but does not affect an installation of MSXML 6.0. The only MSXML version where it is an option to have a later SP version installed without replacing the previous one is MSXML 4.0. This can be done by installing MSXML 4.0 in Windows OS Side-by-Side (WinSxS) mode.

It is not recommended to use Windows OS Side-by-Side (WinSxS) installations. Instead, you should validate your application with the latest service pack of the version of MSXML that you use.

Note

It is recommended that you upgrade from earlier versions of MSXML to MSXML 6.0. MSXML 6.0 provides security and performance improvements over earlier MSXML versions.

To download the latest version of MSXML, see the XML Downloads page of the MSDN Online Library.

In order to build an application written in C++, a MSXML header file has to be included, and the project has to link to a MSXML library. The MSXML header file and library are installed when installing the MSXML SDK. To download MSXML SDK, go to the XML Downloads page of MSDN Online Library and choose the appropriate MSXML version.

If you install MSXML 6.0 SDK, by default your directory will be C:\Program Files\MSXML 6.0, with subdirectories named inc and lib.

MSXML 3.0 was the last version of MSXML to support version-independent CLSIDs and ProgIDs. If you install later versions of MSXML, applications that use version-independent CLSIDs and ProgIDs will continue to run using the most recent version of MSXML that supports version independence, typically MSXML 3.0. To address a particular version of the parser, code should include version-dependent CLSIDs and ProgIDs.

The following statement invokes the version-independent DOM Document implemented in MSXML 3.0: