Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
k5.doc
Скачиваний:
3
Добавлен:
13.11.2019
Размер:
287.23 Кб
Скачать

Преобразование корректно сформированного документа в валидный

В этом разделе вы попытаетесь на практике применить полученные при изучении этой лекции знания, преобразовав корректно сформированный документ в валидный. Вы модифицируете документ Inventory.xml, созданный вами в лекции 2, чтобы сделать его валидным. Вы также добавите новый элемент и два атрибута, чтобы освоить описанные в этой лекции приемы.

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

  1. В вашем текстовом редакторе откройте документ Inventory.xml, созданный вами в лекции 2.

  2. Непосредственно перед элементом Документ – с именем INVENTORY – введите следующее объявление типа документа:

  3. <![INCLUDE[

  4. <!-- необязательный блок объявлений разметки,

  5. который временно восстановлен -->

  6. <!ATTLIST BOOK Category CDATA "fiction">

  7. <!ELEMENT TITLE (#PCDATA)>

  8. <!ELEMENT AUTHOR (#PCDATA)

  9. ]]>

Совет. При выполнении модификации в ходе данного упражнения вы можете ориентироваться на полностью модифицированный документ, который приведен в Листинге 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>

    1. Добавьте обязательный атрибут InStock каждому элементу BOOK, присвоив ему значения "yes" или "no", как показано ниже:

    2. <BOOK InStock="yes">

    3. <TITLE>The Adventures of Huckleberry Finn</TITLE>

    4. <AUTHOR>Mark Twain</AUTHOR>

    5. <BINDING>mass market paperback</BINDING>

    6. <PAGES>298</PAGES>

    7. <PRICE>$5.49</PRICE>

    8. </BOOK>

    1. Добавьте не обязательный элемент Born к одному или нескольким элементам. Хотя вы можете присвоить этому атрибуту любую синтаксически правильную строку в кавычках, в данном случае он должен хранить дату рождения автора. Пример:

    <AUTHOR Born="1835">Mark Twain</AUTHOR>

    1. Чтобы отразить новое имя файла, которое вы собираетесь присвоить, измените комментарий в начале документа с:

    <!-- Имя файла: Inventory.xml -->

    на

    <!-- Имя файла: Inventory Valid.xml -->

    1. Воспользуйтесь командой Save As (Сохранить как) вашего текстового редактора, чтобы сохранить копию модифицированного документа под именем Inventory Valid.xml.

    Законченный документ представлен в Листинге 5.1.

    <?xml version="1.0"?>

    <!-- File Name: Inventory Valid.xml -->

    <!DOCTYPE INVENTORY

    [

    <!ELEMENT INVENTORY (BOOK)*>

    <!ELEMENT BOOK (TITLE, AUTHOR, BINDING, PAGES, PRICE)>

    <!ATTLIST BOOK InStock (yes|no) #REQUIRED>

    <!ELEMENT TITLE (#PCDATA | SUBTITLE)*>

    <!ELEMENT SUBTITLE (#PCDATA)>

    <!ELEMENT AUTHOR (#PCDATA)>

    <!ATTLIST AUTHOR Born CDATA #IMPLIED>

    <!ELEMENT BINDING (#PCDATA)>

    <!ELEMENT PAGES (#PCDATA)>

    <!ELEMENT PRICE (#PCDATA)>

    ]

    >

    <INVENTORY>

    <BOOK InStock="yes">

    <TITLE>The Adventures of Huckleberry Finn</TITLE>

    <AUTHOR Born="1835">Mark Twain</AUTHOR>

    <BINDING>mass market paperback</BINDING>

    <PAGES>298</PAGES>

    <PRICE>$5.49</PRICE>

    </BOOK>

    <BOOK InStock="no">

    <TITLE>Leaves of Grass</TITLE>

    <AUTHOR Born="1819">Walt Whitman</AUTHOR>

    <BINDING>hardcover</BINDING>

    <PAGES>462</PAGES>

    <PRICE>$7.75</PRICE>

    </BOOK>

    <BOOK InStock="yes">

    <TITLE>The Legend of Sleepy Hollow</TITLE>

    <AUTHOR>Washington Irving</AUTHOR>

    <BINDING>mass market paperback</BINDING>

    <PAGES>98</PAGES>

    <PRICE>$2.95</PRICE>

    </BOOK>

    <BOOK InStock="yes">

    <TITLE>The Marble Faun</TITLE>

    <AUTHOR Born="1804">Nathaniel Hawthorne</AUTHOR>

    <BINDING>trade paperback</BINDING>

    <PAGES>473</PAGES>

    <PRICE>$10.95</PRICE>

    </BOOK>

    <BOOK InStock="no">

    <TITLE>Moby-Dick

    <SUBTITLE>Or, the Whale</SUBTITLE>

    </TITLE>

    <AUTHOR Born="1819">Herman Melville</AUTHOR>

    <BINDING>hardcover</BINDING>

    <PAGES>724</PAGES>

    <PRICE>$9.95</PRICE>

    </BOOK>

    <BOOK InStock="yes">

    <TITLE>The Portrait of a Lady</TITLE>

    <AUTHOR>Henry James</AUTHOR>

    <BINDING>mass market paperback</BINDING>

    <PAGES>256</PAGES>

    <PRICE>$4.95</PRICE>

    </BOOK>

    <BOOK InStock="yes">

    <TITLE>The Scarlet Letter</TITLE>

    <AUTHOR>Nathaniel Hawthorne</AUTHOR>

    <BINDING>trade paperback</BINDING>

    <PAGES>253</PAGES>

    <PRICE>$4.25</PRICE>

    </BOOK>

    <BOOK InStock="no">

    <TITLE>The Turn of the Screw</TITLE>

    <AUTHOR>Henry James</AUTHOR>

    <BINDING>trade paperback</BINDING>

    <PAGES>384</PAGES>

    <PRICE>$3.35</PRICE>

    </BOOK>

    </INVENTORY>

    Листинг 5.1. Parts.xml

    1. Если вы хотите проверить валидность вашего документа, воспользуйтесь сценарием проверки XML-документа на валидность, приведенным в разделе "Проверка валидности XML-документа" в лекции 9.

    © 2003-2007 INTUIT.ru. Все права защищены.

  • Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]