Вам необходимо использовать валидатор XML,
Онлайн-версия http://www.xmlvalidation.com/,, есть множество инструментов, которые делают это также
В соответствии с валидатором, ваш DTD недействителен
Я пытался исправить ваш DTD, вот исправленная версия
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT A (B* | (C+,D))>
<!ATTLIST A
AA CDATA #REQUIRED
AB CDATA #REQUIRED
AC (0|1|2) #REQUIRED
>
<!ELEMENT B EMPTY>
<!ELEMENT C EMPTY>
<!ATTLIST C
CA CDATA #REQUIRED
>
<!ELEMENT D (#PCDATA)>
Проблемы с DTD, которые вы разместили, были:
Насколько я мог видеть, вам нужны скобки вокруг C +, D также неправильный <ATTLIST
выше, так как вы указываете список атрибутов с помощью <!ATTLIST
обратите внимание на! пропал без вести.
Также ваш DTD имел
<!ELEMENT B EMPTY>
<!ATTLIST C
CA CDATA #REQUIRED
>
Что не прошло проверку, так как вы определяли список атрибутов из элемента C <!ATTLIST C
, но не определили Элемент C в DTD, поэтому я изменил его на
<!ELEMENT C EMPTY>
<!ATTLIST C
CA CDATA #REQUIRED
>
Это делает ваш DTD действительным
Кроме того, ваш XML неверен во многих отношениях
например, ваш DTD указывает
<!ATTLIST A
AA CDATA #REQUIRED
AB CDATA #REQUIRED
AC (0|1|2) #REQUIRED
>
Это означает, что Элемент A должен иметь атрибуты AA BB AC, поскольку они необходимы, а также атрибут AC должен быть 0 или 1 или 2
Вы поставили
<A>
AA = "BAR"
AB = "FOO"
AC = "1"
Что не указывает атрибуты XML в Элементе A, для указания атрибутов это должно быть
<A AA="BAR" AB="FOO" AC="1">
Это должно помочь вам сделать домашнее задание
вот ссылка http://www.quackit.com/xml/tutorial/dtd_introduction.cfm на учебник DTD, это должно помочь вам создать документ XML, который проверяет его