Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
k5.doc
Скачиваний:
3
Добавлен:
13.11.2019
Размер:
287.23 Кб
Скачать

Объявление типов элементов

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

Форма записи объявления типа элемента

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

<!ELEMENT Имя опись_содержимого>

Здесь Имя есть имя объявляемого типа элемента. (Свод правил по правильному заданию имен элементов приведен в разделе "Анатомия элемента" в лекции 3.) Опись_содержимого – это описание содержимого, которое определяет, что может содержать элемент. В следующем разделе приведены различные типы описаний содержимого, которые вы можете использовать.

Ниже приведено объявление типа элемента с именем TITLE, для содержимого которого могут использоваться только символьные данные (дочерние элементы не допускаются):

<!ELEMENT TITLE (#PCDATA)>

А вот объявление для типа элемента с именем GENERAL, содержимое которого может быть любым:

<!ELEMENT GENERAL ANY>

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

<?xml version="1.0"?>

<!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>

Примечание. Вы можете объявить определенный тип элемента в данном документе только один раз.

Описание содержимого элемента

Вы можете описать содержимое элемента – т.е. заполнить часть опись_содержимого в объявлении типа элемента – четырьмя различными способами.

  • Пустое содержимое (EMPTY). Ключевое слово EMPTY указывает, что элемент должен быть пустым – т.е. не может иметь содержимого. Например:

<!ELEMENT IMAGE EMPTY>

Ниже приведены валидные элементы IMAGE, которые вы можете поместить в документ:

<IMAGE></IMAGE>

<IMAGE />

  • Любое содержимое (ANY). Ключевое слово ANY указывает, что элемент может иметь любое допустимое для этого типа содержимое. То есть элемент этого типа может содержать или не содержать дочерние элементы в любом порядке и с любым количеством вхождений, иметь или не иметь чередующиеся символьные данные. Это наиболее неопределенный тип описания содержимого и дает возможность создавать типы элементов без ограничений на их содержимое. Вот пример соответствующего объявления:

<!ELEMENT MISC ANY>

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

  • Смешанное содержимое. При этом описании типа содержимого элемент может содержать любое количество смешанных данных, в том числе и чередующихся с дочерними элементами определенных типов. Эта возможность будет описана далее в данной лекции.

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