Основы XML

       

Сделаем документ валидным


  1. В вашем текстовом редакторе откройте документ Inventory.xml, созданный вами в лекции 2.
  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.


    Содержание раздела