Электронный магазин на Java и XML



Спецификация содержимого - часть 2


* — элемент может встретиться любое количество раз или не встретиться вовсе.

Ниже снова приведено объявление элемента mymemoirs, переписанное с использованием операторов повторяемости:

<!ELEMENT mymemoires (title, author, philosophizing+,

sad_story*, funny_story*,

lesson*, conclusion)>

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

<!ELEMENT mymemoires (title, author, philosophizing+,

sad_story*, funny_story*,

lesson+| conclusion)>

В этом объявлении элемент mymemoirs может содержать один или более элементов lesson или conclusion, но не оба одновременно. Еще более сложные правила можно создавать с использованием вложенных скобок. В листинге 1.4 показано, как может выглядеть определение mymeroirs.dtd [Paragraph - абзац, letter — письмо. — Примеч. перев. ].

Листинг 1.4. Полная версия определения mymeroirs.dtd

<!ELEMENT mymemoirs (title, author, philosophizing*,

sad_story*, funny_story*,

(lesson+ | conclusion)*)>

<!ELEHENT title (#PCDATA)>

<!ELEMENT author (#PCDATA)>

<!ELEMENT philosophizing (paragraph)*>

<!ELEMENT sad_story (paragraph*, letter*, (lesson | conclusion)*)>

<!ELEMENT funny_story (paragraph*, letter*.

(lesson | conclusion)*)>

<!ELEMENT letter (paragraph)*>

<!ELEMENT lesson (paragraph)*>

<!ELEMENT conclusion (paragraph)*>

<!ELEMENT paragraph (#PCDATA)>

Наименее строгим является правило, которое можно выразить словами: «подходит что угодно». Если вы хотите указать, что в данном элементе могут появиться любые проверенные символьные данные или элементы, вы должны использовать ключевое слово ANY (любой), как показано в следующем примере:

<!ELEMENT mymemoirs ANY>

ПРИМЕЧАНИЕ

Такое широкое правило, как элемент типа ANY, не вполне вписывается в строгую структуру XML. Вообще говоря, если вы создаете определение DTD, в котором используется ключевое слово ANY, вы, вероятно, делаете ошибку и вам следует поискать лучший способ определения.




Содержание  Назад  Вперед