Obsolete

Rick Jelliffe ricko at allette.com.au
Mon Jun 22 18:50:23 BST 1998


When people say "progressive development", everyone who has dealt with
legacy data which was allowed uncontrolled development will shudder.

Just like everything else with a markup language, the answer will in many
cases be simple: the document instance should have a label to clearly
indicate which version of the DTD is being used.

The simplest way to do this is to put a comment at the top
	<!-- This uses DTD version 3 -->
But that is not available to the program, so is not much use.

The next simplest way is to use a DOCTYPE declaration
	<!DOCTYPE p SYSTEM "www.calfp.co.uk/~nickle/DTD/dtd3" []>

Another way is to put an attribute on the root element:
	<p public-DTD="www.calfp.co.uk/~nickle/DTD/dtd3">...<p>

or a fixed attribute
	<!DOCTYPE p SYSTEM "www.calfp.co.uk/~nickle/DTD/dtd3" [
	<!ATTLIST p
		DTD-version CDATA #FIXED "3.0">
	]>

You should not use a namespace for this, probably.

There is also, and this is probably best, an ISO standard way to declare it
using a processing instruction. I dont have my ISO material at hand, so I
shouldnt attempt it.

Finally, you can make up your own PI, if you have any doubt.

<?calfp-dtd version="3"?>

The big trouble is that the DTD in the DOCTYPE declaration can be overridden
in the "internal subset" (i.e. the [ ]> bit which follows the DOCTYPE).  So
the system or the public identifier on the DOCTYPE declaration names an
external piece of text, not the document type of that document. So XML is
very flexible in this, and does not enforce any discipline--you will have to
make sure that every alteration to the total DTD will be reflected in some
attribute or markup. If the document is adequately labelled, processing
applications can adjust their behaviour accordingly.

Rick Jelliffe

> -----Original Message-----
> From: owner-xml-dev at ic.ac.uk [mailto:owner-xml-dev at ic.ac.uk]On Behalf Of
> Nick Leaton
> Sent: Tuesday, 23 June 1998 1:56
> To: nickle at calfp.co.uk; XML Dev
> Subject: Obsolete
>
>
> What mechanism's are available to make features of DTDs obsolete?
>
> Or how can one manage the progressive development of a DTD without
> invalidating existing data?
>
> --
>
> Nick
>
> 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)
>


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