Inheritance using DTDs

Paul Prescod paul at
Fri Jan 22 02:57:09 GMT 1999

Avneet Sawhney wrote:
> Hi,
> The more I look into it, I don't see DTD's as an efficient way to
> support inheritance. 

DTDs were not intended to support inheritance.

> The use of internal subsets seems just a
> Is namespaces the answer, or is the "extends" feature from DCD's what I
> need?

The "extends" feature of DCDs is not appropriate because it does not
adhere to basic rules of object orientation. Consider the following
content model:


Now I write software based on this definition. It presumes that the
BOOLEAN element contains TRUE or FALSE. Now I use "extends" to add
"MAYBE". What happens to my software? It ceases to function. This is a
violation of Liskov's substitutability principle.


Extends is not as dangerous if the element you are extending is basically
sequential. Even so it is poorly thought out. Once you open up your model
with "extends" you have no mechanism for maintaining sanity. Subclassers
can completely violate your model by including any random thing as an
extension. That will wreak havoc on computer programs and stylesheets.

 Paul Prescod  - ISOGEN Consulting Engineer speaking for only himself

Don't you know that the smart bombs are so clever, they only kill 
bad people."

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