Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabKompl1_XML.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
13.8 Mб
Скачать

Часть№2

DTD

Лабораторная работа №1 Синтаксис dtd

Цель работы:

Изучить основы DTD

Ход работы:

DTD

Если синтаксис XML-документов успешно выдержал проверку, они называются

действительными; в частности, XML-документ считается действительным, если

в его состав включено определение DTD (document type definition, определение типа

документа) или XML-схема, а сам документ не противоречит схеме (определению

DTD). Отметим, что определения DTD задают структуру и синтаксис XML-документов (а не их содержание). Это все, что необходимо для создания действительного документа

Добавление DTD

Объявление типа документа представляет собой блок XML-разметки, который вы должны добавить в пролог валидного XML-документа. Он может располагаться в любом месте пролога – вне другой разметки – после XML-объявления, как показано на рисунке 2.0. (Напомним, что если вы включаете XML-объявление, оно должно располагаться в начале документа.)

Рисунок 2.0

Объявление типа документа определяет структуру документа. Если вы открываете документ, не содержащий объявления типа, в браузере, процессор браузера всего лишь осуществляет проверку документа на корректность формы составления. Если же вы открываете документ, содержащий объявление типа документа, процессор браузер будет проверять документ на валидность вместе с проверкой на корректность формы составления, так что ваш документ должен отвечать всем имеющимся декларациям в объявлении типа документа. Так, вы не сможете включить в документ какие-либо элементы или атрибуты, если вы не объявили их в объявлении типа документа. Каждый элемент и атрибут, который вы включаете, должен соответствовать спецификации (например, допустимости применения данного содержимого элемента или типа атрибута), выраженной в соответствующем объявлении.

Форма записи DTD

Объявление типа документа имеет следующую обобщенную форму записи:

<!DOCTYPE Имя DTD>

Здесь Имя указывает на имя элемента Документ. Имя действительного элемента Документ должно в точности соответствовать имени, записанному в объявлении.

Например, если вы создаете объявление типа документа для документа, рассмотренного в предыдущем разделе, вам следует использовать имя INVENTORY:

<!DOCTYPE INVENTORY DTD>

DTD состоит из символа левой квадратной скобки ([), после которой следует ряд объявлений разметки, заканчивающихся правой квадратной скобкой (]). Объявления разметки описывают логическую структуру документа; т.е. задают элементы документа, атрибуты и другие компоненты. На рисунке 2.1 приведен законченный валидный XML-документ, содержащий DTD с единственным объявлением разметки, которое определяет один тип элемента в документе, SIMPLE.

Рисунок 2.1

Типы объявляемых элементов

Существует пять различных видов моделей содержимого:

  1. Пустые элементы

Простейшая модель, которую можно объявить, это пустой элемент, и состоит она из ключевого слова EMPTY. Например:

<!ELEMENT graphic EMPTY>

  1. Элементы без ограничений на содержимое

Эта модель содержимого объявляет элемент, который может содержать любые другие элементы. Она использует ключевое слово ALL:

<!ELEMENT contain_anything ALL>

  1. Элементы, содержащие только символьные данные

  1. Элементы, содержащие только элементы

Содержимое, состоящее только из элементов, описывается с помощью формулы в особых обозначениях, приведенных в табл. 2.0.

Такая модель содержимого может выглядеть, например, следующим образом:

<!ELEMENT article (para+)>

<!ELEMENT article (title, (para | sect1)+)>

<!ELEMENT article (title, subtitle?, ((para+, sect1*) | sect1+))>

  1. Элементы со смешанным содержимым

Смешанное содержимое (mixed content) представляет собой смесь элементов и символьных данных. Элемент с содержимым этого т па должен объявляться с помощью модели содержимого, следующей такому шаблону:

<!ELEMENT para (#PCDATA | emphasis | xref)*>

Первым идет ключевое слово ELEMENT. За ним следуют имя элемента, список допустимых элементов и #PCDATA, разделяемых вертикальной чертой (|) и заключенных в круглые скобки, и, наконец,

звездочка. Звездочка, вопросительный знак и другие символы, применяемые в моделях содержимого элементов, описаны в табл. 2.0

Таблица 2.0

Символ

Значение

?

+

*

Ни одного или один из предшествующих элементов

Один или более из предшествующих элементов

Ни одного или более из предшествующих элементов

В качестве примера рассмотрим законченный XML-документ с двумя типами элементов. Объявление типа элемента COLLECTION указывает, что он может содержать один или несколько элементов CD, а объявление типа элемента CD указывает, что он может содержать только символьные данные. Заметим, что документ соответствует этим объявлениям, и, следовательно, является валидным:

<?xml version="1.0" encoding="windows-1251" ?>

<!DOCTYPE COLLECTION

[

<!ELEMENT COLLECTION (CD)+>

<!ELEMENT CD (#PCDATA)>

<!-- Вы также можете включать комментарии в DTD. -->

]

>

<COLLECTION>

<CD>Mozart Violin Concertos 1, 2, and 3</CD>

<CD>Telemann Trumpet Concertos</CD>

<CD>Handel Concerti Grossi Op. 3</CD>

</COLLECTION>

Создайте валидный XML-документ, для это сделайте следующее:

  1. Откройте новый файл в вашем текстовом редакторе и введите текст XML-документа, листинг которого представлен ниже

Листинг 2.0

<?xml version="1.0" encoding="windows-1251"?>

<!DOCTYPE library

[

<!ELEMENT library (Book)+>

<!ELEMENT Book (#PCDATA)>

<!ELEMENT AUTHOR (#PCDATA)>

<!ELEMENT BINDING (#PCDATA)>

<!ELEMENT PAGES (#PCDATA)>

<!ELEMENT PRICE (#PCDATA)>

]

>

<library>

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

<AUTHOR>Mark Twain</AUTHOR>

<BINDING>mass market paperback</BINDING>

<PAGES>298</PAGES>

<PRICE>$5.49</PRICE>

</library>

  1. Воспользуйтесь командой Save (Сохранить) текстового редактора, для сохранения документа на вашем жестком диске, присвоив ему имя DTD.xml.

  1. Откройте файл в вашем браузере и вас ложно получится то что представлено на

рисунке 2.2

Рисунок 2.2

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