On 05/04/2016 10:41 PM, Eliot Kimber wrote:
> I think you're missing my point: it's not that DTDs aren't useful for
> authoring and other things, of course they are, and if you use a DTD to
> guide your authoring then everything is good (as long as you're using the
> correct set of declarations).
>
> What I'm talking about is the processing context where you get documents
> from somewhere and need to determine:
>
> 1. What is the (abstract) document type this document claims to conform to?
> 2. Is the document valid against that document type?
I must confess to never having been worried by [1], only [2].
> It is this use case that DTDs, by themselves, are not sufficient for, for
> the simple reason that the reference in the DOCTYPE declaration to some
> external DTD subset is not a reliable indicator, for all the reasons I've
> given.
I take your point, but in the last 30 years I have been fortunate not to
have been given any documents that were that perversely incorrect, as
you exampled. Lots that were broken, some fatally, but that was from
non-conformance with the DTD, not because they were pretending to be
something they were not.
> It is absolutely a fact today that many groups will use a public ID for
> some standard DTD, e.g., DocBook, and then map that public ID to some set
> of declarations that they have modified in all kinds of ways. This happens
> *all the time* and it is *wrong*. It is a lie.
True. I stopped pointing this out to people a long time ago. Probably
when the GCA dropped the ball on ISO 9070 shortly after I registered
Silmaril as a FPO :-)
> My point is that the reference to the external DTD subset is not itself
> sufficiently reliable, in the general, to tell you what the document type
> is.
I must be lucky, then.
> DITA addresses the breakage by saying "I don't care what actual DTD file
> you use (or don't use), I care about what you claim about the vocabulary
> used by the document."
It might be more accurate to say that DITA breaks the conventional XML
processing model by using additional layers of indirection in order to
overcome the inexactitude of vocabulary-definition references.
> As we've all said--at the time (1986) it was the best we had and it's
> understandable that the conceptual mistake was made. But the problem was
> (or should have been) glaringly obvious by the time we did XML--after all
> we recognized in XML that documents can be perfectly useful with no
> explicit grammar association whatsoever.
Well-formed documents are a convenience for interoperation on the basis
of trust, no more.
///Peter