Я новичок в XML, я должен преобразовать следующие XML в DTD
<student id="12C042">
<fName>John</fName>
<lName>Nelson</lName>
<plan>
<courses year="3">
<course>
<name> Extensible Markup Language</name>
<shortName>XML</shortName>
<record>
<grade>30</grade>
<date>12-Jan-2017</date>
</record>
</course>
<course>
<name>Object Oriented Concepts and Unified Modeling Language</name>
<shortName><![CDATA[OOP & UML]]></shortName>
</course>
</courses>
</plan>
Это DTD, я получил после преобразования:
<?xml encoding="UTF-8"?>
<!ELEMENT student (fName,lName,plan)>
<!ATTLIST student
xmlns CDATA #FIXED ''
id NMTOKEN #REQUIRED>
<!ELEMENT fName (#PCDATA)>
<!ATTLIST fName
xmlns CDATA #FIXED ''>
<!ELEMENT lName (#PCDATA)>
<!ATTLIST lName
xmlns CDATA #FIXED ''>
<!ELEMENT plan (courses)>
<!ATTLIST plan
xmlns CDATA #FIXED ''>
<!ELEMENT courses (course)+>
<!ATTLIST courses
xmlns CDATA #FIXED ''
year CDATA #REQUIRED>
<!ELEMENT course (name,shortName,record?)>
<!ATTLIST course
xmlns CDATA #FIXED ''>
<!ELEMENT name (#PCDATA)>
<!ATTLIST name
xmlns CDATA #FIXED ''>
<!ELEMENT shortName (#PCDATA)>
<!ATTLIST shortName
xmlns CDATA #FIXED ''>
<!ELEMENT record (grade,date)>
<!ATTLIST record
xmlns CDATA #FIXED ''>
<!ELEMENT grade (#PCDATA)>
<!ATTLIST grade
xmlns CDATA #FIXED ''>
<!ELEMENT date (#PCDATA)>
<!ATTLIST date
xmlns CDATA #FIXED ''>
Компилятор выдает следующую ошибку:
Неустранимая ошибка:
Publi c ID: null
Идентификатор системы: файл: /home/p12947/studentdtd.dtd
Строка номер: 9
номер столбца: 2
сообщение: объявления разметки, содержащиеся или на которые указывает объявление типа документа, должны быть правильно сформированы.
фатальный