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

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

Жанры

Холзнер Стивен

Шрифт:

<MOVIE_REVIEW xmlns:xlink="http://www.w3.org/1999/xlink"

 xml:base="http://www.starpowder.com/"

 xlink:type="simple" xlink:show="new" xlink:href="#">

 Mr. Blandings Builds His Dream House

</MOVIE_REVIEW>

Используя значение, присвоенное атрибуту

xml:base
, URI атрибута
xlink:href
, "
reviews.xml
" раскрывается в полный URI "
http://www.starpowder.com/reviews.xml
".
Подобным образом можно при помощи xml:base задать базовый URI для документа или конкретного элемента.

В рабочем проекте XSLT 1.1 с каждым узлом связан его URI, называемый базовым URI, который используется для раскрытия значений атрибута, представляющих относительные URI, в абсолютные URI. Вот как следует определять базовый URI:

• базовый URI корневого узла — это URI документа;

• базовый URI узла элемента— это базовый URI, заданный в элементе атрибутом

xml:base
(если таковой существует), или базовый URI элемента- родителя элемента в документе, или внешняя сущность (если существует), или базовый URI сущности документа или внешней сущности, содержащей элемент;

• базовый URI для узла инструкции обработки — это URI, который будет применен к ссылке URI в содержимом инструкции обработки. В соответствии со спецификацией XML Base, базовым URI для ссылки URI, появляющейся в содержимом инструкции обработки, является базовый URI родительского элемента инструкции обработки (если таковой имеется) в пределах сущности документа или внешней сущности, или базовый URI сущности документа или внешней сущности, содержащей инструкцию обработки;

• базовым URI для текстового узла, узла комментария или узла атрибута является базовый URI родителя этого узла;

• базовый URI для узла пространства имен, однако, зависит от реализации.

Установка базовых URI документов и элементов может оказаться удобной, если вам приходится работать с очень большим множеством документов. При реорганизации этого множества документов вам нужно будет переустановить только один базовый URI, а не все индивидуальные URI. Однако, как я уже говорил, из известных мне процессоров XSLT ни один пока не поддерживает XML Base.

Выбор методов вывода

Еще один важный аспект создания таблиц стилей — выбор метода вывода: XML, HTML, текст (то есть любой текстовый документ, не являющийся документом XML или HTML) и т.д. Другими словами, метод вывода (output method) определяет тип создаваемого документа. По умолчанию методом вывода является XML, хотя большинство процессоров при встрече элемента <HTML> создают документы HTML. (Некоторые процессоры действуют подобным образом, если расширение создаваемого файла документа

.html
.)

Этот материал подробно изложен в главе 6, но сейчас мы также кратко его рассмотрим. Если только вы полностью не уверены, что правила вывода вашего процессора XSLT по умолчанию делают именно то, что нужно, зачастую можно посоветовать явно установить тип вывода в требуемый вам вид документа при помощи элемента

<xsl:output>
. Выходной тип может задать, например, будет ли процессор XSLT записывать инструкцию обработки XML,
<?xml:version="1.0"?>
, в начало документа, а также указать тип MIME (такой, как «text/xml»
или «text/html») документов, отправляемых процессором XSLT с web-сервера браузеру. Кроме того, если вы установите тип вывода в HTML, большинство процессоров XSLT распознают, что не всем элементам в HTML требуются закрывающие и открывающие теги, и т.д.

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

<xsl:output>
, поскольку это важно для общего понимания работы таблиц стилей. В следующем списке перечислены атрибуты
<xsl:output>
:

• 

cdata-section-elements
(необязательный). Задает названия тех элементов, чье содержимое вы хотите вывести в виде разделов CDATA. Принимает значение списка
QName
, разделенных символами-разделителями;

• 

doctype-public
(необязательный). Определяет открытый идентификатор, который будет использоваться в объявлении
<!DOCTYPE>
вывода. Устанавливается в строковое значение;

• 

doctype-system
(необязательный). Определяет системный идентификатор, который будет использоваться в объявлении
<!DOCTYPE>
вывода;

• 

encoding
(необязательный). Определяет кодировку символов. Устанавливается в строковое значение;

• 

indent
(необязательный). Определяет, будет ли вывод выровнен с отображением структуры вложенности. Устанавливается в «yes» или «no»;

• 

media-type
(необязательный). Определяет тип MIME вывода. Устанавливается в строковое значение;

• 

method
(необязательный). Определяет формат вывода. Устанавливается в «xml», «html», «text» или допустимое имя типа
QName
;

• 

omit-xml-declaration
(необязательный). Определяет, будет ли включено в вывод объявление XML. Устанавливается в «yes» или «по»;

• 

standalone
(необязательный). Определяет, будет ли включено в вывод отдельное объявление, и если да — устанавливает его значение. Устанавливается в «yes» или «по»;

• 

version
(необязательный). Задает версию вывода. Устанавливается в допустимую лексему типа
NMToken
.

Чаще всего используется атрибут

method
элемента, потому что с его помощью устанавливается требуемый тип дерева вывода. Самые распространенные значения — «html», «xml» и «text».

Метод вывода: HTML

В нашей таблице стилей

planets.xsl
элемент
<xsl:output>
не используется; это значит, что для этой таблицы я полагался на правила вывода по умолчанию. Типом вывода по умолчанию является XML, если только процессор XSLT не встретит тег
<HTML>
или
<html>
. (Заметьте, что это не формальное требование, а только соглашение, которому не обязаны следовать все процессоры XSLT.) В
planets.xsl
я использовал тег <HTML> следующим образом:

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

Кодекс Крови. Книга ХII

Борзых М.
12. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Крови. Книга ХII

Газлайтер. Том 14

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

Наследник павшего дома. Том IV

Вайс Александр
4. Расколотый мир
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том IV

Вернуть Боярство 11

Мамаев Максим
11. Пепел
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Вернуть Боярство 11

Кодекс Крови. Книга ХIII

Борзых М.
13. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIII

Кодекс Крови. Книга ХVII

Борзых М.
17. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVII

Трактир «Разбитые надежды»

Свержин Владимир Игоревич
1. Трактир "Разбитые надежды"
Фантастика:
боевая фантастика
7.69
рейтинг книги
Трактир «Разбитые надежды»

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

На границе империй. Том 7

INDIGO
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75
рейтинг книги
На границе империй. Том 7

Бывшая жена драконьего военачальника

Найт Алекс
2. Мир Разлома
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Бывшая жена драконьего военачальника

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

Идеальный мир для Демонолога 3

Сапфир Олег
3. Демонолог
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Демонолога 3

Отмороженный 13.0

Гарцевич Евгений Александрович
13. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 13.0

Город Богов 3

Парсиев Дмитрий
3. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 3