DTD is an old muddled standard
W3C never went back to try and fix it, settling instead on some other xml extensions to do the trickier bits. Of course, that's always been the rub against DTD => its got its own format that has no relation whatsoever with xml, being more an ancient tongue. Anyhow, it's not too terribly involved, as there's only a finite number of variations of things that can be accomplished.