>Date: Thu, 1 Apr 1999 11:24:07 GMT
>Reply-To: Encoded Archival Description List <[log in to unmask]>
>Sender: Encoded Archival Description List <[log in to unmask]>
>From: Pete Johnston <[log in to unmask]>
>Organization: Glasgow University
>I quite agree with the argument about what the user sees and the
>performance angle (though I haven't seen a response to the question
>of why check the syntax of the DTD if you're not going to validate
>the document!).
The definition of well-formedness includes the requirement that any
internal DTD subset be syntactically correct. All XML processors are
required to check documents for well-formedness, and thus all XML
processors must check the syntax of at least the internal DTD subset.
If the XML processor reads the external DTD subset, it should also
perform at least this minimal syntax checking on the external DTD
subset as well. (A casuist might perhaps argue that the parser is not
required to; I'd have to review the spec to be sure. It is, however,
clearly desirable in the usual case.) Since by default IE5 does
retrieve and process external entities (good default!), they have
done the Right Thing here.
>Until this came up, I had understood that it was the presence
>of the DOCTYPE statement which effectively provided that switch.
>
>i.e.no DOCTYPE statement = process as well-formed without validation
>against DTD; DOCTYPE statement present = validate against DTD.
This would lead to a situation in which (a) one had to change the
document itself in order to tell a program how it should be processed,
which is dangerous because error prone, and wearisome because
unnecessary. and (b) publishers would be encouraged to strip out
document type declarations (what you are calling 'the DOCTYPE
statement'), which would involve an unfortunate loss of useful
information.
-C. M. Sperberg-McQueen
Co-editor, W3C XML 1.0 specification
|