Wiki Home

XML Parser Roundup


Namespace: SoftwareEng
Stuff about XML parsers, and what's cool or not.

Talk about a Rat's Nest: MSXML Parser Release History

[2001.07.02] The latest released XML parser from Microsoft is MSXML 3.0.

[2001.07.02] See also the April 2001 Microsoft XML Parser 4.0 Technology Preview: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmsxml/html/msxmlcabfile.asp

Get the MSXML 3.0 .cab File Redistribution Package here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmsxml/html/msxmlcabfile.asp. This gives you msxml3.dll, msxml3a.dll, and msxml3r.dll.
MSXML2.DomDocument: MSXML2 is based on version 2.6 and later of the Micorsoft.XMLDOM.

Microsoft.XMLDOM: A buggy parser that was installed with IE 5.0 and 5.1 and Windows 2000 which requires a download from Microsoft to fix. This bug was fixed in the MSXML 2.5, then re-introduced in MSXML 3.
The best workaround to date is to use MSXML 3 and use MSXML2.DOMDocument, instead of Microsoft.XMLDOM. If you use Microsoft.XMLDom you need to patch MSXML. See http://west-wind.com/webconnection/msxml.asp. Scuttlebutt is this will not be fixed by Microsoft.

'Scuse me, but MSXML.DLL is being updated. Mine is version 8.0 something and is a result of either or both DotNetOffsite link to http://gotdotnet.com or VFP beta installs. Indeed, the MSXML.DLL shipped with IE 5.5, IIRC, corrected the bug, too. So, just because someone has MSXML.DLL doesn't mean they have the bug. The reason they released 2 and 3 with the base version was to have side by side capability. Supposedly. -- Nancy Folsom

To check for this bug in an installed parser run the following code:

oXML=CREATE("Microsoft.XMLDOM")

lnError = 0
ON ERROR lnError = ERROR()

*** Load Invalid XML - this shouldn't cause a COM exception
*** but pass the error to the various error properties
*** if a COM exception (-1) occurs the buggy parser is in use
oXML.LoadXML("")   

ON ERROR

IF lnError # 0
   *** XML bug exists
ENDIF

-- Rick Strahl
MSXML 3 or later is required to parse embedded XML schemas. Embedded XML Schemas are served by SQL Server 2000 and also by VFP 7 with schema generation enabled. In order to use these schema enabled documents MSXML 3 is required - without it they will not load.
-- Rick Strahl

Bottom line to avoid all this mess: Install MSXML 3 with your apps and use MSXML2.DOMDocument for your XML parser to make sure everything works consistently without patches.
-- Rick Strahl
With all due respect I'd be a little anxious about changing years of XML code to refer directly to MSXML2 when that's highly likely to change (indeed I have an MSXML3), also. So, if they put out an MSXML4, you're screwed, right?

Also, why not use MSXML3 instead? (Serious question. I didn't find any docs the day I was rearching this that said later version numbers (version of the DLL, that is) took things away along the different file name versions. Sheesh. What a mess. -- Nancy Folsom

It's easy to confuse the ProgId (msxml2), the DLL file name, and the version number. They're different things. I had the same confusion happening which is the genus of this topic.-- Steven Black.
Category XML
( Topic last updated: 2001.07.08 10:26:01 PM )