Summary of Findings

November 17, 1999

David Brownell

Summary of Findings


Part 1: Microsoft XML Parser Conformance
Part 2: Non-validating mode
Part 3: Default mode
Part 4: Summary of findings

The non-validating mode of the MSXML.DLL processor, with whitespace handling set appropriately, is relatively conformant, although not without its problems. Certain familiar errors are also seen in this processor:

  • Various legal XML 1.0 names are not accepted, seemingly due to the non-ASCII characters in them.
  • Surrogate pairs are not handled correctly, although the problems seem to be fewer than with some other processors.
  • PUBLIC identifier characters are not fully correct.
  • Nesting of parameter entities is again treated as if it were a well-formedness constraint.
  • Whitespace isn't always reported or normalized correctly.

Both processor modes are in the top quartile of the ones tested in the earlier review, but are not the top rated ones. That gets this processor a "pretty good" rating in my book. Although I'm bothered by the validating mode needing an application level workaround, if you apply it, you'll find that nearly another fifty test cases will behave.

As more XML processors approach meaningful levels of conformance, it will be increasingly important to understand exactly which conformance errors show up in a given parser. The raw "passed tests" statistic, used to assign stars in this evaluation and the previous one, will always miss some important information. That's why I've tried, in both this review and the earlier one, to give a lot of analysis for the failure modes of the processors that have the best "passed tests" statistic. Since developers have many choices for their XML processors, it's important that those choices be well informed ones.

Back to Microsoft XML (MSXML.DLL) Parser Performance