Спонсор: Microsoft
Воронежский государственный университет
Опубликован: 04.02.2009 | Доступ: свободный | Студентов: 7548 / 459 | Оценка: 4.14 / 3.78 | Длительность: 19:54:00
Самостоятельная работа 11:

Структура XML документа. XML схемы

< Лекция 10 || Самостоятельная работа 11: 12345 || Лекция 11 >

DTD схема

DTD (Document Type Definition) определяет допустимые строительные блоки XML документа, путем указания списка допустимых элементотв и атрибутов.

DTD может описываться как внутри XML документа, так и с помощью внешней ссылки.

Пример внутреннего описания:

<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT mail (to,from,subject,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT subject (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>user1@domain.ru</to>
  <from>user2@domain.ru</from>
  <heading>Встреча</heading>
  <body> Позвони мне завтра утром </body>
</note>

В данном примере:

!DOCTYPE mail определяет корневой элемент документа mail.

!ELEMENT note определяет элемент note,который содержит четыре элемента:

" to, from, subject, body ".

!ELEMENT to определяет элемент to типа "#PCDATA".

!ELEMENT from определяет элемент from типа "#PCDATA".

!ELEMENT subject определяет элемент subject типа "#PCDATA".

!ELEMENT body определяет элемент body типа "#PCDATA".

Пример внешнего описания:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "mail.dtd">
<note>
  <to>user1@domain.ru</to>
  <from>user2@domain.ru</from>
  <heading>Встреча</heading>
  <body> Позвони мне завтра утром </body>
</note>

Для чего необходимо использование DTD?

  • С помощью DTD XML файлы могут содержать описание собственного формата.
  • Независимые группы людей могут обмениваться данными.
  • DTD-схема может быть использована для проверки действительности, как документов получаемых извне, так и собственных документов.

С точки зрения DTD все XML документы (HTML документы) строятся из следующих строительных блоков:

  • Элементы (Elements). Элементы могут содержать текст, другие элементы или быть пустыми.
  • Атрибуты Attributes). Атрибуты всегда размещаются внутри открывающего тэга элемента. Атрибуты всегда записываются в виде пары имя/значение.
  • Entities.
  • PCDATA. Означает структурированные символьные данные. Подлежит анализу с помощью парсера на наличие специальных символов (entities) и элементов разметки.
  • CDATA. Означает текст, содержимое которого не рассматривается анализатором.

При описании структуры элементов, содержащих вложенные элементы можно использовать специальные операторы, задающие множественность их вхождения:

  • ' + ': один и более раз, например, <!ELEMENT note (message+)>
  • ' * ': ноль и более раз, например, <!ELEMENT note (message*)>
  • ' ?': ноль и один раз, например, <!ELEMENT note (message?)>

Объявление вида <!ELEMENT note (message|body)> указывает на возможность вхождения в элемент note другого элемента: message ИЛИ body.

Атрибуты элементов описываются в форме:

<!ATTLIST element-name attribute-name attribute-type default-value>

например:

<!ATTLIST payment type CDATA "check">

Соответствует XML коду:

<payment type="check" />.

Тип атрибута может принимать одно из значений:

Тип Описание
CDATA Символьные данные
( en1 | en2 |..) Значение из списка
ID Уникальный id
IDREF id другого элемента
IDREFS Список других id
NMTOKEN Допустимое XML имя
NMTOKENS Список допустимых XML имен
ENTITY Специальные символы
ENTITIES Список специальных символов
NOTATION Имя нотации
xml: Предопределенное XML имя

Значение по умолчанию может быть одним из следующих:

Значение Интерпретация
#REQUIRED Обязательно
#IMPLIED Не обязательно
#FIXED value Значение фиксировано
< Лекция 10 || Самостоятельная работа 11: 12345 || Лекция 11 >
Михаил Олифиренко
Михаил Олифиренко
Александр Табачук
Александр Табачук

Это только у меня не работает кнопочка "Получить код DreamSpark"? Пишет "временно не доступно..." А когда заработает?

Максим Серов
Максим Серов
Россия, г. Верхний Уфалей
Станислав Мешавкин
Станислав Мешавкин
Россия, г. Заречный