MSXML
From Wikipedia, the free encyclopedia
Microsoft XML Core Services (MSXML) is a set of services that allow applications written in JScript, VBScript, and Microsoft development tools to build Windows-native XML-based applications. It supports XML 1.0, DOM, SAX, an XSLT 1.0 processor, XML schema support including XSD and XDR, as well as other XML-related technologies.
MSXML is a collection of distinct products, released and supported by Microsoft. These products can be enumerated as
- MSXML 6.0 MSXML6 is the latest MSXML product from Microsoft, and (along with MSXML3) is shipped with the Microsoft Windows operating system.
- MSXML 5.0 MSXML5 is a binary developed specifically for Microsoft Office.
- MSXML 4.0 MSXML4 was shipped as a separate, downloadable SDK targeted at Independent Software Vendors and third parties.
- MSXML 3.0 MSXML3 is a current MSXML product, represented by msxml3.dll, and is found on Microsoft Windows operating systems.
- MSXML 2.6 This is an early version of MSXML, and is represented by msxml2.dll. This product is no longer supported by Microsoft, and the CLSIDs and ProgIDs it exposes have been subsumed by MSXML 3.0.
- MSXML 2.5 This is an early version of MSXML, and is represented by msxml.dll. This product is no longer supported by Microsoft, and the CLSIDs and ProgIDs it exposes have been subsumed by MSXML 3.0.
For complete MSXML version information, see the MSXML Version List at Microsoft.
[edit] Developing Software with MSXML
For new XML-related software development in C++, use MSXML 6.0 or XmlLite. For guidance on which version of MSXML to use in the browser, refer to the Xml Core Team Blog post, Using MSXML in the Browser at MSDN.
Different versions of MSXML support slightly different sets of functionality. While a complete list of differences is beyond the scope of this article, some examples are provided here.
- MSXML 3.0 supports only XDR schemas, it does not support XSD schemas. MSXML 4.0, MSXML 5.0, and MSXML 6.0 support XSD schemas. Finally, MSXML 6.0 does not support XDR schemas.
- MSXML 5.0 contains an implementation of XML Digital Signatures.
All MSXML products are similar in that they are exposed programmatically as COM (Component Object Model) objects. You can program against MSXML objects from C++ or from scripts languages such as JScript and VBScript. Managed .NET Interop with MSXML COM components is not supported or recommended.
As with all COM components, you programmatically instantiate an MSXML object by CLSID or ProgID. Each version of MSXML exposes its own set of CLSIDs and ProgIDs. For example, to create an MSXML 6.0 DOMDocument object, which exposes the IXmlDomDocument, IXmlDomDocument2, and IXmlDomDocument3 COM interfaces, you use the ProgID "MSXML2.DOMDocument.6.0".
MSXML also supports version-independent ProgIDs. Version-independent ProgIDs do not have a version number associated with them. For example "Microsoft.XMLHTTP". These ProgIDs were first introduced in MSXML 1.0, however are currently mapped to MSXML 3.0 objects and the msxml3.dll.