Since the whole XML document is communicated from an untrusted client,
it's not usually possible to selectively validate or escape tainted
data within the system identifier in the DTD.

Therefore, the XML
processor should be configured to use a local static DTD and disallow
any declared DTD included in the XML document.