It is a truth universally acknowledged that "DTDs don't support namespaces". Or to be a little more pedantic, that DTDs don't support namespaces in their full generality
. However, one might as well say that XML 1.0 does not support namespaces. Given that the specification of Namespaces in XML
augments XML 1.0
, it seems more reasonable to ask why don't namespaces support DTDs?
A couple of related postings with similar suggestions.
I suppose it may still make it into ISO/IEC 19757-9 one day but
isn't exactly encouraging! Meanwhile there's Relax NG.
It's interesting that both of those proposals extend the DTD syntax instead of subsetting it, leading to incompatibilities with existing parsers. Perhaps this is because they are trying to add support for datatyping as well, which is more difficult (impossible?) to support transparently.
Frankly, I think that people who need datatyping are more than willing to use newer schema languages (XSD, RELAX NG), and that namespace support for DTDs from the beginning would have been much more beneficial -- past tense unfortunately, because as with most XML permathreads that ship has long sailed.