Proposal Announcement - XML DTDs to XML docs

Paul Prescod papresco at
Wed May 20 22:08:50 BST 1998

Simon St.Laurent wrote:
> I'd like to announce the posting of an unofficial and incomplete proposal for
> the representation of XML DTDs as XML documents at:

We discussed this in the XML working group. The idea does have the
benefits you list in your proposal. But there are more disadvantages than
you have listed, and some hard problems to be solved.

Nobody has ever done the work to flesh it out to the point where an
XML-document notation is as expressive as the current DTD notation. I
believe that people who have not been using the DTD notation for a long
time underestimate the extent to which common use depends on weird stuff
like parameter entities specifying partial content models, element types
in element type declarations and so forth.

It might be possible to build an XML-document notation that was as
expressive as XML DTDs (or at least expressive enough) and didn't use any
text substitution wizardry, but nobody has done that yet. This is not a
problem if you are content having your XML-syntax used only by those who
build simple DTDs.

There are other, more subtle problems. Having a single notation appeals
mathematically to those who like consistent, recursive structures, but it
is not clear that end-users fall into that category. A user interface
(markup languages *are* user interfaces) can be too consistent, if it
obscures the differences between things. In the case of documents and
DTDs, I expect many users would get confused about the distinction between
documents and DTDs if DTDs *were* documents.

There is also the issue of compatibility. If the DTD for DTDs is
extensible and open, as most proponents argue it should be, then
Microsoft, Netscape and Sun can all take shots at "extending" it in the
way that they "extended" HTML. If the DTD DTD was specifically designed to
be extensible, then we could not complain about that. Depending on the
level of extensibility, XML documents could actually parse differently
depending on which browser you were using. If it was designed NOT to be
extensible, then we have to cross one of the benefits of this alternate
notation off of the list. 

Another problem is "specification encapsulation." XML 1.0 is specifically
designed NOT to depend on XLink or XPointer. Your proposal depends on
them. It seems to me that there is some sort of circularity problem there.

Several of my complaints about your proposal stem from the fact that DTDs
both change the parse and validate the document. In other words, they are
both schemata and "parse information providers". If your XML-instance DTDs
only validated, then many of the complaints would go away. But if they
only validated, I don't think it would be accurate to call them DTDs
anymore. Then they would be just "schemas" since they would accomplish
only one of the DTD's two functions.

I suspect that these functions will, in fact, become more and more
distinct as time goes by. So proposals that keep them together should
probably not succeed. Our current DTD syntax is quite reasonable and
efficient for the task of declaring entities, setting default attributes
and so forth. If we want extensible, XML-instance notation schemata, then
we should probably forget about replacing DTDs and just define extensible,
XML-instance schemata (i.e. XML-Data) and leave DTDs to do the other

Paul Prescod  -

"A writer is also a citizen, a political animal, whether he likes it or 
not. But I do not accept that a writer has a greater obligation 
to society than a musician or a mason or a teacher. Everyone has
a citizen's commitment."  - Wole Soyinka, Africa's first Nobel Laureate

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list