Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППТС-2 / Слайды / Lect4-02.pptx
Скачиваний:
9
Добавлен:
12.05.2015
Размер:
233.72 Кб
Скачать

Лекция 4­02

Язык XML (формирование DTD)

1

Состав DTD.

Определение типа документа DTD (Document Type Definition) – набор правил, определяющий инструкции, которые могут быть переданы анализатору (parser) для обработки им этого документа. Анализатор, в свою очередь, отправляет результаты в приложение, обеспечивающее обработку данных (например, просмотр документа).

Состав DTD: одно или нескольких правил- ограничений структуры документа. Правила DTD задаются для:

определения элемента (правило ELEMENT); – определение элемента;

определения списка атрибутов элемента

(правило ATTLIST);

2

определения сущности (правило ENTITY);

 

Виды DTD

Объявление типа документа помещается в начало XML-документа (сразу после объявления документа XML) и имеет следующий синтаксис:

<!DOCTYPE

>

Объявление типа документа может быть:внутренним;внешним;смешанным.

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

действительными (valid) документами XML.

3

Внутреннее DTD

Во внутреннем DTD правила для элементов задаются

следующим образом (параметр имя определяет имя корневого элемента документа XML) :

<!DOCTYPE имя [

правила структуры документа

]>

<!DOCTYPE book-description [

<!ELEMENT book-description (book)+>

<!ELEMENT book (title, author, publisher)> <!ELEMENT title (#PCDATA)>

<!ELEMENT author (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ATTLIST publisher

CDATA #REQUIRED (классика|детектив|фэнтези|кулинария|политика) "классика"

>

]>

4

SYSTEM "javadata.dtd">
SYSTEM "http://www.site.com/dtds/book.dtd">

Внешнее системное DTD

При использовании внешнего DTD предложение DOCTYPE

имеет один из следующих форматов (параметр имя определяет имя корневого элемента документа XML) :

<!DOCTYPE имя SYSTEM "URI">

<!DOCTYPE имя PUBLIC "владелец" "URI">

Внешнее DTD – это текстовый файл с расширением .dtd,

который содержит правила структуры документа XML.

Значение SYSTEM в DTD означает, что пользователь использует собственное (системное) внешнее DTD, которое загружается с помощью URI (Universal Resource Identifier – универсальный идентификатор ресурса).

Примеры:

<!DOCTYPE JDATA <!DOCTYPE book

5

Внешнее общедоступное DTD

Параметр PUBLIC означает, что в документе используется общедоступное DTD (например, DTD для языка HTML). В этом случае, помимо URI, указывается и объявление владельца DTD в формате, принятом в языке SGML. Если DTD является стандартом ISO (International Standard Organization – Международная организация стандартизации), то объявление начинается символами

"ISO". Если DTD не является стандартом ISO, но официально принято группой стандартизации, то объявление начинается с символа "+", если же DTD не принято группой

стандартизации – то с символа "-". Далее обычно

указывается владелец данного DTD, наименование DTD и

язык DTD, разделенные символами "//".

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

6

Смешанное DTD

Можно также дополнять внешние определения внутренними (смешанное DTD):

<!DOCTYPE имя SYSTEM "URI" [

правила структуры документа

]>

или

<!DOCTYPE имя PUBLIC "владелец" "URI" [

правила структуры документа

]>

7

DTD. Определение элемента

Определение элемента задает имя и тип содержимого элемента в следующем виде:

<!ELEMENT имя тип-содержимого>

Параметр имя задает имя элемента.

В качестве типа-содержимого элемента может быть указано:

EMPTY, в случае, когда элемент обязан быть пустым (без содержимого);

ANY, в случае, когда элемент может содержать что угодно;

список, определяющий элементы-потомки и порядок их следования;

смешанное содержимое.

8

DTD. Определение элемента.

Типы EMPTY и ANY (1)

Пример:

Использование значений ANY и EMPTY в содержимом элемента:

<?xml version="1.0" encoding="Windows-1251"?> <!DOCTYPE message [

<!ELEMENT message ANY>

<!ELEMENT text ANY>

<!ELEMENT empty-line EMPTY>

]> <message>

<empty-line/>

<text>

Поздравляю с днем рождения!

</text>

</message>

9

DTD. Определение элемента.

СписокСписокзначенийзначенийодно(количествоили несколькоповторений)имен элементов. Список должен быть заключен в круглые скобки.

Количество, с которым имя элемента может появляться в этой последовательности, формально записывается с использованием символов- модификаторов "*", "?" и "+", которые имеют следующие значения:

a? означает, что элемент a может быть пропущен в последовательности;

a означает, что элемент a должен присутствовать в последовательности на этом месте ровно один раз;

a* задает последовательность из нуля или более элементов a;

a+ задает последовательность из одного или

10

более элементов a.

 

Соседние файлы в папке Слайды