Технология XSLT - [18]

Шрифт
Интервал

> SYSTEM "системный ид-р">

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

>имя 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">

>]>

>

>  

>    ...

>  

>  

>    ...

>  

>  ]]>

>

В этом документе определяется три нотации, три формата данных: >rtf, >htm и >txt. Атрибут >type элемента >root указывает формат данных, которые содержатся в этом элементе — в данном случае это >"htm" (что, очевидно, соответствует HTML-документу).

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

Символьные данные в XML-документах

Каковы бы ни были структура и синтаксис текстового документа, основой его всегда являются символы. Для хранения и обработки текста на компьютерах, которые по своей природе являются цифровыми устройствами, каждому символу нужно поставить в соответствие числовой код.

Проблема многих языков заключается в том, что для них существует несколько альтернативных кодировок символов. Например, для кириллицы существуют такие кодировки, как CP-866, KOI8-R, CP-1251, ISO-8859-5, кодовая страница Macintosh и другие, но вместе с тем не существует единого стандарта, принятого де-факто. В итоге, для того, чтобы быть уверенным, что документ будет прочтен, его нужно представлять в трех или четырех кодировках, что очень неудобно.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.


Тотальное превосходство

Художник? любовник? убийца? адепт тайного знания?.. Герой романа знает о себе только одно, он должен добиться тотального превосходства во всем…Интеллектуальный триллер, колеблющийся между «Американской мечтой» Нормана Мейлера и «Шатунами» Юрия Мамлеева.Новый блестящий талант в «Мастер серии».


Наркокурьер Лариосик

Кинематографическая природа остросюжетной прозы Григория Ряжского очевидна — как несомненны и ее чисто литературные достоинства. Мир страшен и кровав — и страшнее всего, пожалуй, в заглавной повести «Наркокурьер Лариосик», — но и не восхититься его красотой нельзя.В литературу — с парадного подъезда престижной серии — входит зрелый мастер.


Месторождение ветра

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


Приемы создания интерьеров различных стилей

Книга по созданию трехмерных проектов интерьеров при помощи популярного редактора трехмерной графики 3ds Max позволит каждому, кто хочет заняться моделированием 3D-интерьеров, найти необходимую информацию для воплощения идеи в жизнь. Описывается моделирование элементов и стили оформления интерьеров, работа с материалами и текстурами, способы повышения реалистичности изображений, визуализация. Рассматриваются особенности создания интерьеров в различных стилях: минимализм, ренессанс, барокко, античный, рококо, хай-тек, техно и др.