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

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

в XML следует писать >
.

Замечание

Для того чтобы привести синтаксис HTML в соответствие со стандартом XML, был создан язык XHTML. Этот язык полностью соответствует синтаксису XML, что делает возможным обработку XHTML-документов XML-средствами, но при этом набор тегов XHTML идентичен набору тегов языка HTML. К сожалению, далеко не все браузеры поддерживают XHTML. Чаще всего проблемы возникают именно с пустыми элементами (или одиночными тегами в терминах HTML): например, браузеры могут некорректно воспринимать запись вида >
. В большинстве случаев проблема решается использованием перед косой чертой пробела: запись вида >
, скорее всего, будет обработана корректно.

Атрибут

В элементах можно использовать атрибуты с присвоенными им значениями. Атрибут задается в следующем виде:

>атрибут="значение"

Например, в записи гипертекстовой ссылки

><а href="http://www.xsltdev.ru">Заходите к нам!

элемент имеет атрибут >href, которому присвоено значение >"http://www.xsltdev.ru".

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

>

> выбранный элемент

>

будет задан с точки зрения XML некорректно, поскольку ему не присвоено значение. Заметим, что в HTML такое определение является вполне нормальным. Такую ошибку легко исправить следующим образом:

>

> выбранный элемент

>

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

>

> выбранный элемент

>

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

>

Атрибуту >login присвоено значение >"scott" (включая двойные кавычки), атрибуту >password — значение >'tiger' (включая одинарные кавычки).

В XML один элемент не может иметь атрибуты с одинаковыми именами.

Определение атрибута состоит из имени, за которым следует знак равенства, а затем, значение атрибута:

>[41] Attribute ::= Name Eq Attribute

>[25] Eq ::= S? '=' S?

>[10] AttValue ::= '"' ([^<&"] | Reference)* '"'

>                  | "'" ([^<&'] | Reference)* "'"

Значение атрибута записывается в одинарных или двойных кавычках, причем оно не может содержать символов '><' и '>&', которые используются в XML как управляющие символы (>< открывает тег элемента, а >& — сущность). Вместе с тем, значение атрибута может содержать сущность (нетерминал >Reference) — специальную конструкцию, о которой мы поговорим чуть позже.

Инструкция по обработке

В XML-документы могут быть включены не относящиеся к содержимому документа инструкции, несущие информацию для приложения, которое будет этот документ обрабатывать. Инструкции по обработке имеют вид:

>

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

Примером инструкции по обработке может послужить следующая запись:

>

В данном случае целевое приложение имеет имя '>serv', а сама инструкция может быть интерпретирована как указание серверу на то, что документ нужно сохранить в кэше. Естественно, инструкции по обработке имеют смысл только для тех приложений, которым они адресуются.

Продукции инструкций по обработке имеют следующий вид:

>[16] PI ::= '

>            (S (Char* - (Char* '?>' Char*)))? '?>'

В этом правиле выражение >(S (Char* - (Char* '?>' Char*)))? означает, что приложение и содержимое инструкции по обработке разделены пробельными символами, причем содержимое состоит из любых символов, кроме последовательности >'?>', которая обозначает конец инструкции.

Целевое приложение может иметь любое имя (кроме ">xml" в любом регистре символов). Имя целевого приложения определяется EBNF-правилом >PITarget:

>[17] PITarget ::= Name - (('X' | 'х') ('М' | 'm') ('L' | 'l'))

В XML определена особая конструкция, называемая ХМL-декларацией (XML declaration). Она имеет вид:

>версия" encoding="кодировка" standalone="yes | no"/>

Несмотря на то, что XML-декларация очень похожа на инструкцию по обработке, с точки зрения стандарта она таковой не является. Если же подходить менее строго, то смысл XML-декларации полностью соответствует смыслу инструкции по обработке: она сообщает обрабатывающему данный документ программному обеспечению информацию о некоторых свойствах этого документа. XML-декларация может содержать псевдоатрибуты>version, >encoding и >standalone, которые мы рассмотрим ниже.

Замечание

В отличие от элементов, XML-декларация, как и инструкции по обработке не могут иметь атрибутов. Однако их содержимое очень часто образуется в форме >имя="значение" — такие объявления и называются псевдоатрибутами.

Псевдоатрибут >version содержит информацию о версии XML, в соответствии с которой был создан этот документ. Текущей версией языка XML является 1.0, поэтому в большинстве случаев указывается >version="1.0".

Пример

Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


MFC и OpenGL

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


Как функции, не являющиеся методами, улучшают инкапсуляцию

Когда приходится инкапсулировать, то иногда лучше меньше, чем большеЯ начну со следующего утверждения: Если вы пишете функцию, которая может быть выполнена или как метод класса, или быть внешней по отношению к классу, Вы должны предпочесть ее реализацию без использования метода. Такое решение увеличивает инкапсуляцию класса. Когда Вы думаете об использовании инкапсуляции, Вы должны думать том, чтобы не использовать методы.Удивлены? Читайте дальше.


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

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


Программное обеспечение встроенных систем. Общие требования к разработке и документированию

Embedded system software. General requirements for development and documentationСтандарт подготовлен в развитие ГОСТ Р ИСО/МЭК 12207-99 «Информационная технология. Процессы жизненного цикла программных средств» с целью учета специфики разработки и документирования программного обеспечения встроенных систем реального времени.


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.


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

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


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

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


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

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


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

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