slide 10
DTDs don’t know about namespaces
XML DTDs predate XML namespaces
For purposes of DTD validation
Names are simply names:
<mml:math>
and
math
are always different
(So namespace prefixes must be hard coded)
Namespace declarations are simply attributes
Plus, DTDs can provide attribute values by default
This includes attributes that provide namespace declarations
<!ATTLIST article xmlns:mml CDATA #FIXED "http://www.w3.org/1998/Math/MathML" >
This is either a feature, or a bug (or both)
Names are even more opaque when namespace declarations are invisible
Makes processing dependent on the DTD being present and correct
Mulberry Technologies, Inc. • Taming the Namespace Beast • JATS-Con 2011