Что такое XML? - 8.2.2. Декларации типов элементов

E-mail Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 
Индекс материала
Что такое XML?
Невозможно найти взаимосвязанные ресурсы.
Применения XML
Структура XML-документа
8.1.3.2. Пролог и директивы
8.1.3.3. Комментарии
8.1.3.4. Имена и данные
Page 8
8.1.3.6. Секции CDATA
Разделы и их декларации
Декларация типа документа
8.1.6. Пример XML-документа
8.2.1. Общие сведения
8.2.2. Декларации типов элементов
8.2.3. Декларации списков атрибутов
8.2.4. Декларации нотаций
8.2.5. Пример DTD
8.2.6. Параметрические разделы
8.2.7. Условные секции
XML-схемы - стандарты, написанные на компьютерном языке
8.3.3. Область действия пространства имен
8.3.4. Базовые URI фрагментов XML-документа
Основные понятия: документ
2.1 Схема заказа на покупку
2.2 Определение комплексных типов, объявление элементов и атрибутов
2.2.1 Ограничение вхождений
2.2.2 Глобальные элементы и атрибуты
2.2.3 Конфликты имен
2.3 . Простые типы
2.3.1 Тип List
2.3.2 Тип Union
2.4 Определение анонимных типов
2.5 Содержимое элемента
2.5.2 Смешанное содержимое
2.5.3 Пустое содержимое
2.6 Аннотации
Page 37
2.8 Группы атрибутов
2.9 Значения Nil
3 Дополнительные понятия I: именные пространства, схемы & квалификация
3.1 Целевые именные пространства и не квалифицируемые локальные объекты
3.2 Квалифицируемые локальные объекты
3.3 Глобальные объявления в сравнении с локальными объявлениями
3.4 Необъявленные целевые именные пространства
4 . Дополнительные понятия II: международный заказ на покупку
4.1 Схема в нескольких файлах
4.2 Получение производных типов расширением
4.3 Использование производных типов в документах
4.4 Производные сложные типы, полученные путем ограничений
4.5 Переопределение типов и групп
4.6 Группы замены
4.7 Абстрактные элементы и типы
4.8 Управление созданием и использованием производных типов
5 Дополнительные понятия III: квартальный отчет
5.1 Определение уникальности
5.2 Определение ключей и ссылок на них
5.3 Ограничения XML-схемы в сравнении с атрибутом ID XML 1.0
5.4 Импортирование типов
5.4.1 Библиотеки типов
5.5 Любой элемент, любой атрибут
5.6 schemaLocation
5.7 Соответствие
A Благодарности
B Простые типы и их фасеты
C Использование сущностей
D Регулярные выражения
Все страницы

8.2.2. Декларации типов элементов

Синтаксис: <!ELEMENT имя спецификация>

Декларация типа элемента определяет, какое содержимое может иметь элемент с данным именем. Возможное содержимое элемента задается спецификацией, которая может быть:

  • ключевым словом EMPTY, означающим, что элемент пуст, т. е. не может иметь содержимого;
  • ключевым словом ANY, означающим, что элемент может иметь любое содержимое;
  • списком элементом-детей;
  • смешанным описателем.

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

  • плюс (+) означает, что данный элемент может встречаться один или более раз;
  • звездочка (*) означает, что данный элемент может встречаться нуль или более раз;
  • вопросительный знак (?) означает, что данный элемент может встречаться нуль или один раз;
  • отсутствие специального символа означает, что данный элемент должен присутствовать ровно один раз.

Например, для элементов book и bookstore из предыдущей главы мы можем написать такие декларации типов:

<!ELEMENT book (title, author+, price, present?)>
<!ELEMENT bookstore (book*)>

Здесь указано, что элемент book состоит из одного элемента title, одного или нескольких элементов author, элемента price и необязательного элемента present, а элемент bookstore состоит из любого количества элементов book.

Элемент author имеет более сложное строение: он может состоять либо из двух элементов first-name и last-name, либо из единственного элемента name. Подобные варианты включаются в списки элементов с помощью разделителя вертикальная черта (|), например, в данном случае:

<!ELEMENT author ((first-name, last-name) | name)>

Смешанный описатель используется в тех случаях, когда элемент помимо других элементов может иметь текстовое содержимое. Если он имеет только символьное содержимое, как title в нашем примере, то его декларация имеет вид:

<!ELEMENT title (#PCDATA)>

Ключевое слово #PCDATA происходит от словосочетания "parsed character data", т. е. произвольные символьные данные, понимаемые XML-процессором. В некоторых случаях элемент может иметь символьное содержимое вперемешку с элементами. Например, описывая упрощенный диалект языка HTML, мы могли бы определить элемент P (абзац), как текст, фрагменты которого могут быть выделены курсивным или полужирным шрифтом (элементы I и B соответственно). Тогда его декларация имела бы следующий вид:

<!ELEMENT P (#PCDATA|B|I)*>

Подобный список должен начинаться с #PCDATA и иметь после себя звездочку: это означает, что элементы списка могут повторяться внутри определяемого элемента многократно.

Примеры использования ссылок на параметрические разделы в списках элементов приведены ниже.



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий: