Если вы открываете документ в Firefox, чтобы попытаться выяснить, правильно ли вы указали dtd, не делайте этого. Firefox не пропускает xml и dtd через правильный анализатор xml. Откройте свой XML-документ в IE, что приведет к его передаче через синтаксический анализатор MSXML.
При открытии XML-документа в IE будет выдано сообщение об ошибке с использованием недопустимых символов. Вы должны использовать код символа для каждого, а не сам символ. Вот код, который я получил на работу ...
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE NAME SYSTEM "names.dtd">
<names>
<name>
<text>Pepé</text>
<creator>&lost;</creator>
<history>&lost;</history>
</name>
<name>
<text>Charles</text>
<creator>James</creator>
<history>&lost;</history>
</name>
</names>
и
<!ELEMENT name (text, creator+, history)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT creator (#PCDATA)>
<!ELEMENT history (#PCDATA)>
<!ENTITY lost "Lost in the depths of time.">
<!ENTITY eacute "é">