
- •Содержание
- •Правила создания xml- документа
- •Иерархическая структура xml-документа
- •ОтображениеXml-документов вWeb
- •ОтображениеXml-документа с использованием таблицы каскадных стилей
- •Cоздание валидныхxml-документов
- •ДобавлениеDtd
- •Форма записи объявления типа элемента (dtd)
- •Задание содержимого элемента
- •Последовательная модель содержимого элемента
- •Выборочная модель содержимого элемента
- •Задание смешанного содержимого
- •Задание к лабораторной работе
- •Содержание отчета по лабораторной работе
- •Контрольные вопросы
- •Рекомендуемая литература
- •Приложение а
- •Издательство «нефтегазовый университет»
- •625000, Г. Тюмень, ул. Володарского, 38
- •625039, Г. Тюмень, ул. Киевская, 52
Правила создания xml- документа
Иерархическая структура xml-документа
Пусть дан структурированный набор информации (Рисунок 1) в виде описи (INVENTORY) книг, где для каждой книги заданы: название (TITLE), автор (AUTHOR), переплет (BINDING), число страниц (PAGES) и цена (PRICE).
Рисунок 1 – Структура описи книг
Информационной структуре, представленной на Рисунке 1, может быть поставлен в соответствие XML-документ, листинг которого приведен на рисунке 2.
Обратите внимание на то, что этот документ очень похож на обычную HTML-страницу. Также, как и в HTML, инструкции, заключенные в угловые скобки называются тэгами и служат для разметки основного текста документа.
Состоит XML- документ из двух частей: пролога и тела.
Пролог – это первые три строки документа, включая пустую строку. В первой строке пролога помещается объявление XML - инструкция <?xml?>, внутри которой также можно задавать номер версии языка, номер кодовой страницы и другие параметры, необходимые программе-анализатору в процессе разбора документа. В данном примере задан номер версии языка – 1.0. Последней строкой пролога является комментарий, указывающий название файла, в котором сохранен XML- документ. Обратите внимание на то, что файл имеет расширение .xml.
<?xml version="1.0"?>
<!--File name: Inventory01.xml -->
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Moby-Dick</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>605</PAGES>
<PRICE>$4.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Scarlet Letter</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>253</PAGES>
<PRICE>$4.25</PRICE>
</BOOK>
</INVENTORY>
Рисунок 2 – Составные части XML-документа
Тело документа XML состоит из элементов разметки (тэгов) и непосредственно содержимого документа - данных.
В общем случае тело XML- документа должен удовлетворять следующим требованиям:
1. Элемент, обрамляющий тело XML- документа и называемый корневым, должен быть только один. В приведенном примере этим элементом является <INVENTORY>.
2. Каждый открывающий тэг обязательно должен иметь парный закрывающий, т.е., в отличие от HTML, нельзя опускать закрывающие тэги;
3. В XML учитывается регистр символов;
4. Все значения атрибутов, используемых в определении тэгов, должны быть заключены в кавычки;
5. Вложенность тэгов в XML строго контролируется, поэтому необходимо следить за порядком следования открывающих и закрывающих тэгов;
6. Вся информация, располагающаяся между начальным и конечными тэгами, рассматривается в XML как данные, и поэтому учитываются все символы форматирования (т.е. пробелы, переводы строк, табуляции не игнорируются, как в HTML).
Набором всех элементов, содержащихся в документе, задается его структура, и определяются все иерархическое соотношения. Плоская модель данных превращается с использованием элементов в сложную иерархическую систему со множеством связей между элементами.
Производя в последствии поиск в этом документе, программа клиента будет опираться на информацию, заложенную в его структуру - используя элементы документа. Т.е. если, например, требуется найти нужную книгу конкретного автора, используя приведенный фрагмент документа, то необходимо будет просмотреть содержимое элементов <TITLE> и <AUTHOR>, находящегося внутри одного элемента <BOOK>. Поиск при этом, естественно, будет гораздо более эффективен, чем случайное нахождение нужной последовательности по всему документу.