I recently ran into this topic when trying to solve an CTF and had to learn about XXE.
It seems that XSD is much better ( and safer ? ) for usage and DTD lacks things that XSD solves. I mainly focues on reading this thread which explains the difference between the two.
Despite the research, I'm still wondering - why use DTD in the first place ?