I want to know how to Extend a DTD. If someone has already published a DTD and there are few place holders in the DTD where in certain elements allow its child to be of TYPE ANY. In this case i can add new elements there. But ANY in DTD means any element that is already defined in the DTD. While ANY in schema means a new element, which need not be already declared in the scheam.

So if there is a DTD which has an element say CHEMICAL and has child by name CHEMICAL-EXTENSION which is of type ANY, now in this child element CHEMICAL-EXTENSION - I want to add new elements which is not defined by the current DTD.

How can i do this. What is the recomended way to do it.

Thanks, Vijay Venkat

Lasse Koskela

author
Sheriff

Posts: 11962

5

posted 13 years ago

I haven't done this myself, ever, but I think you should look into the following approach:

1) Leave the existing DTD as it is. 2) Create a new DTD document where you define your new elements. 3) Add an ENTITY reference to the original DTD file... <!ENTITY old SYSTEM "http://www.mydomain.com/old.dtd"> ...and import it into the new DTD file: &old;