Inheritance using DTDs

Paul Prescod paul at prescod.net
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:

<!ELEMENT BOOLEAN (TRUE|FALSE)>

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.

[Liskov] http://www.kinetica.com/ootips/lsp.html

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
 http://itrc.uwaterloo.ca/~papresco

Don't you know that the smart bombs are so clever, they only kill 
bad people."
	- http://www.boingo.com/lyrics/WarAgain.html

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




More information about the Xml-dev mailing list