SYMPTOMS

The current version of MSXML cannot validate XHTML 1.1 documents without some adjustments. All the problems are described in the excellent article Processing XHTML 1.1 Documents with MSXML by Satoshi Ishikawa.

Typical error messages are:

  • 0x800C0006. The system cannot locate the object specified. Error processing resource 'xhtml11-model-1.mod'.
  • 0xC00CE00A. Parameter entity must be defined before it is used.
  • 0xC00CE504. A name was started with an invalid character.

STEPS TO REPRODUCE BEHAVIOR

1 - Start XMLBlueprint.

2 - Paste the following code into a new text document, and save the file as book.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

</html>

4 - Open file book.xml and validate by clicking XML > Validate. An error message will appear in the Output Window.

SOLUTION

To avoid these errors, make the following changes in file book.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" [

<!ENTITY % xhtml-prefw-redecl.mod "">

<!ENTITY % xhtml-model.mod PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod">

<!ENTITY % xhtml-postfw-redecl.mod "">

<!ENTITY % xhtml-special PUBLIC "-//W3C//ENTITIES Special for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">

]>

<html xmlns="http://www.w3.org/1999/xhtml">

</html>