The following examples each show code snippets of external DTD subsets that define a general entity B whose replacement text
is "foo".
The examples were tested with the help of a minimal XML document that includes the appropriate DTD files and
displays the entity B, using various well-known software tools.
Below the results of these tests are shown.
| Software used | Critical passages in external DTD file | |||||
|---|---|---|---|---|---|---|
<!ENTITY % A "B 'foo"> |
<!ENTITY % A "B 'fo"> |
<!ENTITY % test "foo"> |
<!ENTITY % test "foo"> |
<!ENTITY % test "foo"> |
<!ENTITY % test "foo"> |
|
| MSXML 3–6 (e.g. in MS Internet Explorer) | OK | OK | OK | ';' was expected | '>' was expected | “internal error” |
| .NET XML parser | PE replacement text must nest properly within markup declarations | PE replacement text must nest properly within markup declarations | unexpected end of file parsing NAME | ';' was expected | OK | OK |
| RXP parser (e.g. at this online validator) | Quoted string goes past entity end | Quoted string goes past entity end | Expected name, but got <EOE> for PE | Expected ';'. but got '%' | OK | OK |
| Stylus Studio (proprietory software) built-in validator | partial markup in entity value | partial markup in entity value | parameter entity name expected | PE reference "%te;" must end with ';' | OK | OK |
| Java XML API | error | OK | OK | unterminated entity reference 'te' | OK | OK |
| Validome online validator | unexpected premature end of file | OK | OK | PE reference "%te;" must end with ';' | OK | OK |
| “xmlvalidation” online validator | file ended | OK | OK | PE reference "%te;" must end with ';' | OK | OK |
Which of these software implementations are probable to be conforming to the XML standard according to these examples, or, how would a correctly implemented validating XML parser have to react to each of the examples?