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

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

Пример

>

Псевдоатрибут >encoding сообщает, в какой кодировке создан данный документ. По умолчанию выбрана Unicode-кодировка UTF-8 (подробнее см. "Использование Unicode"), но точно так же может быть использована и любая другая кодировка, лишь бы только ее поддерживало программное обеспечение, обрабатывающее документ.

Пример

Большинство документов, созданных на русском языке, используют кириллические кодировки >windows-1251 и >KOI8-R; XML-декларации для этих документов будут иметь вид:

>

и

>

соответственно.

Для документов, в которых использовались только нижние 127 символов ASCII, то есть, символы с кодами, не превышающими >#x7F, псевдоатрибут >encoding указывать необязательно. В этой области символов кодировка UTF-8 совпадает с ASCII.

Псевдоатрибут >standalone говорит о том, использует ли этот документ какие-либо внешние объявления или нет. Как мы узнаем чуть позже, XML-документы могут использовать информацию, которая находится во внешних документах. Опция >standalone, имеющая значение >"yes", означает, что документ не содержит таких объявлений, и, значит, может быть обработан без обращения к внешним источникам.

Декларации XML соответствует продукция >XMLDecl, которая, в свою очередь, использует несколько дочерних правил:

>[23] XMLDecl ::= '

>                  SDDecl? S? '?>'

Продукция >VersionInfo определяет синтаксис псевдоатрибута >version:

>[24] VersionInfo ::= S? 'version' Eq

>                     ("'" VersionNum "'"

>                     | "" VersionNum "")

Значение версии документа может состоять из латинских букв и цифр, а также символов ">_", ">.", ">:" и ">-":

>[26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+

Кодировка объявляется продукцией >EncodingDecl, которая синтаксически похожа на >VersionInfo:

>[80] EncodingDecl ::= S? 'encoding' Eq

>                      ("'" EncName "'"

>                      | '"' EncName '"')

Имя кодировки, >EncName, может состоять только из латинских букв, цифр и символов ">.", ">_" и ">-", причем первым символом названия кодировки всегда должна быть буква:

>[81] EncName [A-Za-z] ([A-Za-z0-9.-] | '-')*

Используемое в документе название кодировки должно быть известно программному обеспечению, которое этот документ обрабатывает. В противном случае могут возникнуть ошибки и несоответствия. В спецификации рекомендуется использовать названия кодировок, одобренные IANA (Internet Assigned Numbers Authority — Комитет присвоенных кодов Интернет). Кириллице, которая используется в русском языке, в списках IANA присваивается около десятка кодировок. Самыми распространенными из них являются следующие:

□ Windows-1251;

□ KOI8-R;

□ Cp866;

□ ISO-8859-5.

Техническая рекомендация XML оговаривает, что. в тех случаях, когда имя использованной кодировки не является стандартным, оно должно указываться с префиксом ">x-", например:

>

Псевдоатрибуту >standalone соответствует EBNF-правило >SDDecl:

>[32] SDDecl ::= S 'standalone' Eq

>                (("'" ('yes' | 'no') "'")

>                | ( '"' ('yes' | 'no') '"' ) )

Расшифровывается это правило очень просто: псевдоатрибут >standalone может иметь значение >yes или >no, заключенное в одинарные или двойные кавычки.

Секции СDATA

Секции CDATA выделяют части документа, внутри которых текст не должен восприниматься как разметка. CDATA означает буквально "character data" — символьные данные. Секции CDATA задаются следующим образом:

>содержимое]]>

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

Пример

Следующий текст в документе

>Покупайте наших слонов!

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

>Покупайте наших слонов!]]>

Такая конструкция уже будет воспринята как символьные данные. Другим примером может быть использование символов "><" и ">&":

>

Секции символьных данных задаются четырьмя довольно простыми правилами:

>[18] CDSect  ::= CDStart CData CDEnd

>[19] CDStart ::= '

>[20] CData   ::= Char* - (Char* ']]>' Char*))

>[21] CDEnd   ::= ']]>'

Содержимое секции символьных данных, отвечающее продукции CData, может состоять из любых символов, в том числе "><" и ">&", которые не будут восприниматься как разметка. Единственное, чего секции CDATA не могут включать — это последовательность ">]]>", которая завершает символьную секцию.

Комментарии (comments)

XML-документ может содержать комментарии, которые записываются следующим образом:

>

Текст комментария может состоять из любых символов, кроме двух минусов

подряд (">--"). Кроме этого, комментарий не должен заканчиваться символом ">-" .

Пример комментария:

>...

>

>...

Продукция комментария называется в XML >Comment и имеет следующий вид:


Рекомендуем почитать
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-интерьеров, найти необходимую информацию для воплощения идеи в жизнь. Описывается моделирование элементов и стили оформления интерьеров, работа с материалами и текстурами, способы повышения реалистичности изображений, визуализация. Рассматриваются особенности создания интерьеров в различных стилях: минимализм, ренессанс, барокко, античный, рококо, хай-тек, техно и др.