>">
>имя PUBLIC "публичный ид-р">
Если информация о вспомогательном приложении несущественна, можно воспользоваться определением следующего вида:
>имя SYSTEM "">
Существует два основных способа применения нотаций. Первый — объявление неразбираемых сущностей и использование их имен в атрибутах типа >ENTITY
или >ENTITIES
, второй — указание имени нотации в атрибуте типа >NOTATION
для того, чтобы задать формат данных, который содержит данный элемент.
Первый способ можно продемонстрировать простым документом, который задает меню (листинг 1.5).
Листинг 1.5. Использование неразбираемых сущностей в атрибутах элементов
>
>
>
>
> image ENTITY #REQUIRED
> title CDATA #REQUIRED
> href CDATA #REQUIRED>
>
>
>
>
>
>]>
>
>
>
>
>
Проанализируем декларацию типа этого документа.
□ Декларация типа >
говорит о том, что корневым элементом этого документа является элемент >menu
.
□ В соответствии с определением >
этот элемент состоит из нескольких субэлементов >menuitem
.
□ В соответствии с определением >
элемент >menuitem
должен быть пустым.
□ Запись >
определяет в элементе >menuitem
следующие атрибуты:
• обязательный атрибут >image
, в котором должно указываться имя сущности;
• обязательный атрибут >title
, содержащий символьные данные;
• обязательный атрибут >href
, содержащий символьные данные.
□ Запись >
определяет нотацию с именем >gif
и закрепляет за ней приложение >gif-viewer.exe
.
□ Запись >
определяет нотацию с именем >jpg
и закрепляет за ней приложение >jpg-viewer.exe
.
□ Запись >
определяет внешнюю неразбираемую сущность с именем >news
, которая имеет формат (нотацию) >gif
.
□ Запись >
определяет внешнюю неразбираемую сущность с именем >products
, которая имеет нотацию >jpg
.
□ Запись >
определяет внешнюю неразбираемую сущность с именем >support
, которая имеет нотацию >gif
.
Посмотрим теперь, какую информацию нам дают такие громоздкие определения. Обратимся к записи одного из элементов >menuitem
:
>
С атрибутами >title
и >href
все ясно: они содержат простые символьные данные. Атрибут >image
несколько сложнее, он предоставляет гораздо больше информации. Типом этого атрибута является >ENTITY
, значит текст, который он содержит, является не просто символьными данными: он задает имя сущности, связанной с данным атрибутом. Иначе говоря, с атрибутом >image
связывается сущность.
Анализируя определение сущности >products
, обрабатывающая программа может понять, что это — неразбираемая внешняя сущность формата >jpg
, которая хранится в файле >prod.jpg
и для обработки которой можно использовать приложение >jpg-viewer.exe
.
Вторым способом использования нотаций является присвоение определенного формата содержимому элемента. Один (но не более чем один) из атрибутов элемента может иметь тип >NOTATION
. Значением этого атрибута должно быть имя нотации, которое и будет задавать формат содержимого элемента.
Пример
Листинг 1.6. Использование нотаций для определения формата содержимого элемента
>
>
>
> type NOTATION (rtf|htm|txt) #REQUIRED>
> <[NOTATION rtf SYSTEM "winword.exe">
>
>
>]>
>
>
>
>
> ...
>
>
> ...
>
> ]]>