The namespace draft clearly forbids mapping one namespace to two
different prefixes. So in the instance, you'd probably have to
change the ns:x to ns_2:x or something. Which meant that if you
wanted to validate it against b.dtd, you'd have to change it
in b.dtd as well.
BUT (and this is the hard part) you couldn't validate the merged
document against b.dtd anyhow because it won't know about the elements
from a.dtd. So you're going to have to figure out how to make
a merged dtd. Which is hard. But once you've figured that out,
fix up the namespace collisions while you're doing the merge. -Tim