Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

Синтаксис использования сущности-параметра (вернее, ссылки на нее) соответствует продукции

PEReference
, которая практически совпадает с продукцией
EntityRef
:

[69] PEReference ::= '%' Name ';'

Определение сущности-параметра также очень схоже с определением обычной сущности:

[72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'

[74] PEDef ::= EntityValue | ExternalID

Продукция

EntityDecl
,
соответствующая определению сущности, как обычной, так и сущности-параметра, имеет следующий вид:

[70] EntityDecl ::= GEDecl | PEDecl

Напомним, что

GEDecl
соответствует объявлению обычной, a
PEDecl
— параметризованной сущности.

Определение нотации

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

Нотация — это ни что иное, как определение формата неразбираемой сущности. Нотация дает формату имя и предоставляет некоторую информацию о приложении, которое следует использовать для обработки этого формата.

Пример

Предположим, что мы используем графические изображения в формате

GIF
, для просмотра которых используется приложение
gif-viewer.exe
. Определение нотации будет иметь следующий вид:

<!NOTATION GIF SYSTEM "gif-viewer.ехе">

Эта запись определяет нотацию с именем

GIF
и указывает имя приложения, которое может быть использовано для обработки внешних сущностей этого формата.

Информация о вспомогательном приложении-обработчике (англ. helper application) указывается при определении нотации системным или публичным идентификатором. В отличие от определения внешней сущности, публичный идентификатор в нотации может указываться без системного идентификатора. Фактически, нотация имеет три варианта определения:

<!NOTATION имя SYSTEM "системный ид-р">

<!NOTATION имя PUBLIC "публичный ид-р" "системный ид-р">

<!NOTATION имя PUBLIC "публичный ид-р">

Если информация о вспомогательном приложении несущественна, можно воспользоваться определением следующего вида:

<!NOTATION имя SYSTEM "">

Существует два основных способа применения

нотаций. Первый — объявление неразбираемых сущностей и использование их имен в атрибутах типа
ENTITY
или
ENTITIES
, второй — указание имени нотации в атрибуте типа
NOTATION
для того, чтобы задать формат данных, который содержит данный элемент.

Первый способ можно продемонстрировать простым документом, который задает меню (листинг 1.5).

Листинг 1.5. Использование неразбираемых сущностей в атрибутах элементов

<!DOCTYPE menu [

 <!ELEMENT menu (menuitem*)>

 <!ELEMENT menuitem EMPTY>

 <!ATTLIST menuitem

image ENTITY #REQUIRED

title CDATA #REQUIRED

href CDATA #REQUIRED>

 <!NOTATION gif SYSTEM "gif-viewer.exe">

 <!NOTATION jpg SYSTEM "jpg-viewer.exe">

 <!ENTITY news SYSTEM "news.gif" NDATA gif>

 <!ENTITY products SYSTEM "prod.jpg" NDATA jpg>

 <!ENTITY support SYSTEM "support.gif" NDATA gif>

]>

<menu>

 <menuitem image="news" title="News" href="#"/>

 <menuitem image="products" title="Products" href="#"/>

 <menuitem image="support" title="Support" href="#"/>

</menu>

Проанализируем декларацию типа этого документа.

□ Декларация типа

<!DOCTYPE menu [..] >
говорит о том, что корневым элементом этого документа является элемент
menu
.

□ В соответствии с определением

<!ELEMENT menu (menuitem* )>
этот элемент состоит из нескольких субэлементов
menuitem
.

□ В соответствии с определением

<!ELEMENT menuitem EMPTY>
элемент
menuitem
должен быть пустым.

□ Запись

<!ATTLIST menuitem ... >
определяет в элементе
menuitem
следующие атрибуты:

 • обязательный атрибут

image
, в котором должно указываться имя сущности;

 • обязательный атрибут

title
, содержащий символьные данные;

 • обязательный атрибут

href
, содержащий символьные данные.

□ Запись

<!NOTATION gif SYSTEM "gif-viewer.exe">
определяет нотацию с именем
gif
и закрепляет за ней приложение
gif-viewer.exe
.

Поделиться:
Популярные книги

Шайтан Иван 2

Тен Эдуард
2. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван 2

Наследник старого рода

Шелег Дмитрий Витальевич
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Наследник старого рода

Аргумент барона Бронина 2

Ковальчук Олег Валентинович
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 2

Третье правило дворянина

Герда Александр
3. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Третье правило дворянина

Убивать чтобы жить 3

Бор Жорж
3. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 3

СД. Том 15

Клеванский Кирилл Сергеевич
15. Сердце дракона
Фантастика:
героическая фантастика
боевая фантастика
6.14
рейтинг книги
СД. Том 15

Жена неверного маршала, или Пиццерия попаданки

Удалова Юлия
Любовные романы:
любовно-фантастические романы
4.25
рейтинг книги
Жена неверного маршала, или Пиццерия попаданки

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Элита элит

Злотников Роман Валерьевич
1. Элита элит
Фантастика:
боевая фантастика
8.93
рейтинг книги
Элита элит

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит

Шаман. Похищенные

Калбазов Константин Георгиевич
1. Шаман
Фантастика:
боевая фантастика
попаданцы
6.44
рейтинг книги
Шаман. Похищенные

Курсант: Назад в СССР 4

Дамиров Рафаэль
4. Курсант
Фантастика:
попаданцы
альтернативная история
7.76
рейтинг книги
Курсант: Назад в СССР 4