Сделаем документ валидным
- В вашем текстовом редакторе откройте документ Inventory.xml, созданный вами в лекции 2.
- Непосредственно перед элементом Документ – с именем INVENTORY – введите следующее объявление типа документа:
<![INCLUDE[ <!-- необязательный блок объявлений разметки, который временно восстановлен --> <!ATTLIST BOOK Category CDATA "fiction"> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (#PCDATA) ]]>
Совет. При выполнении модификации в ходе данного упражнения вы можете ориентироваться на полностью модифицированный документ, который приведен в Листинге 5.1 в конце этой лекции.
Обратите внимание, что имя следующего за DOCTYPE ключевого слова совпадает с именем элемента Документ, INVENTORY. DTD состоит только из внутреннего подмножества, которое определяет элементы и атрибуты документа следующим образом:
- элемент Документ, INVENTORY, имеет содержимое. Он может включать ни одного или несколько дочерних элементов BOOK;
- элемент BOOK также имеет содержимое. Оно должно включать строго по одному из следующих элементов, в порядке, перечисленном в объявлении документа: TITLE, AUTHOR, BINDING, PAGES и PRICE;
- элемент TITLE имеет смешанное содержимое. Он может включать символьные данные вместе с ни одним или с несколькими элементами SUBTITLE;
- элементы AUTHOR, BINDING, PAGES и PRICE также имеют смешанное содержимое. Эти элементы, однако, могут включать только символьные данные без дочерних элементов;
- элемент BOOK имеет атрибут нумерованного типа с именем InStock, который является обязательным атрибутом и может принимать значения либо "yes", либо "no";
- элемент AUTHOR имеет атрибут строкового типа с именем Born, который является не обязательным и не имеет значения по умолчанию.
- Добавьте следующий дочерний элемент SUBTITLE в элемент TITLE для книги Моби-Дик:
<BOOK> <TITLE>Moby-Dick <SUBTITLE>Or, the Whale</SUBTITLE> </TITLE>
- Добавьте обязательный атрибут InStock каждому элементу BOOK, присвоив ему значения "yes" или "no", как показано ниже:
<BOOK InStock="yes"> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR>Mark Twain</AUTHOR> <BINDING>mass market paperback</BINDING> <PAGES>298</PAGES> <PRICE>$5.49</PRICE> </BOOK>
- Добавьте не обязательный элемент Born к одному или нескольким элементам. Хотя вы можете присвоить этому атрибуту любую синтаксически правильную строку в кавычках, в данном случае он должен хранить дату рождения автора. Пример: <AUTHOR Born="1835">Mark Twain</AUTHOR>
- Чтобы отразить новое имя файла, которое вы собираетесь присвоить, измените комментарий в начале документа с: <!-- Имя файла: Inventory.xml -->
на
<!-- Имя файла: Inventory Valid.xml -->
- Воспользуйтесь командой Save As (Сохранить как) вашего текстового редактора, чтобы сохранить копию модифицированного документа под именем Inventory Valid.xml.
Законченный документ представлен в Листинге 5.1.
Листинг 5.1. Parts.xml (html, txt)
- Если вы хотите проверить валидность вашего документа, воспользуйтесь сценарием проверки XML-документа на валидность, приведенным в разделе "Проверка валидности XML-документа" в лекции 9.