Is it possible to have more than one DTD in an XML file?
You cannot have more than one DOCTYPE declaration in an XML document, but one document can "call" several DTD's using external parameter entities.
Let's say you have some document with a «svg:svg» root element and its associated DTD, and another document with a «mml:math» root element and its associated DTD.
Now you want to have a single document with, say, a «bar» root element with allowed children any of «svg:svg» or «mml:math» and their subtrees as declared in the two DTD's mentionned above.
The solution is to "import" the DTD's in the "bar DTD":
<!ELEMENT bar (svg:svg | mml:math)+> <!ENTITY % svg SYSTEM "svg.dtd"> %svg; <!ENTITY % mml SYSTEM "mml.svg"> %mml;