MSXML.DLL: Default mode

November 17, 1999

David Brownell

MSXML.DLL (default mode)

Processor Name: MSXML.DLL (default mode)
Version: 5.00.2314.1000
Type: Validating
DOM Bundled: Yes
Size: 490 KB
Download From:

This is the validating mode of the parser which is bundled with the Internet Explorer 5 web browser. See the coverage of the non-validating mode for basic information.

Full Test Results: msxml-val.html
Raw Results: Passed 895 (of 1067)
Adjusted Results: Passed 895

Unlike the situation with some other "dual mode" parsers, the MSXML.DLL processor does not do a complete personality switch, so this description builds heavily on the coverage of the non-validating mode, focusing only on what changes when validation is enabled.

Problems Encountered Processing Legal Documents

This worked basically like the non-validating mode, with the only new problem being that the parser complained when given certain entity expansions: it didn't use the elements found in those entities when checking whether the content model for the parent element was satisfied.

The parser called into question one additional pair of test cases. Specifically, it rejected a CDATA usage which has recently been deemed illegal. Presumably, after this erratum to the XML specification is published, these tests cases will be recategorized.

Parser output was like that for the invalid documents; notably, it doesn't report whitespace or normalize attributes correctly.

Problems Encountered Processing Malformed Documents

One basic issue to note here is that because of its API, this parser is structurally prevented from continuing after reporting a validity error. The API only allows reporting fatal errors. This may not affect conformance (the "at user option" requirement in the XML specification does not seem to require that the option should affect only one error at a time), but it does constrain the use of this API for detecting and correcting multiple validity errors.

The following validity errors were not detected:

  • Many documents without a <!DOCTYPE ... > declaration were accepted as valid. Because only such a doctype declaration can provide the declarations against which a document is validated, this is a substantial flaw although one that applications can work around. (See below.)
  • This parser does not attempt to report validity errors relating to the standalone='yes' declaration. This is not the most popular feature in the XML specification, even though it is not hard to report these errors.

To make XML validation work correctly, your code to load an XML document should always look something like this (intended to work correctly even if you're not validating):

    document.load (uri);

    if (document.validateOnParse

     && doc.parseError.errorCode == 0

     && doc.doctype == null) {

 // it's a set of unreported validity errors

    } else if (doc.parseError.errorCode != 0) {

 // error reported in parseError object


I would expect validation to work exactly as defined in the XML 1.0 specification. Validation using any of the various schema systems now available (or being developed) is a separate issue, and merits separate APIs.

Back to Microsoft XML (MSXML.DLL) Parser Conformance