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

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

Жанры

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

Шрифт:

• 

href
(обязательный). URI таблицы стилей, которую вы хотите включить.

Этот элемент пустой и не обладает никаким содержимым.

Рассмотрим листинг 2.9. В этом случае я помещу часть таблицы стилей из

planets.xsl
в новый документ,
rules.xml
. Затем я смогу включить
rules.xml
в
planets.xsl
.

Листинг 2.9. Включение таблицы стилей

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:include href="#"/>

 <xsl:template match="/PLANETS">

<HTML>

<HEAD>

<TITLE>

The Planets Table

</TITLE>

</HEAD>

<BODY>

<H1>

The Planets Table

</H1>

<TABLE BORDER="2">

<TD>Name</TD>

<TD>Mass</TD>

<TD>Radius</TD>

<TD>Day</TD>

<xsl:apply-templates/>

</TABLE>

</BODY>

</HTML>

 </xsl:template>

</xsl:stylesheet>

А

вот как выглядит
rules.xsl
(листинг 2.10). Обратите внимание на то, что это полный документ XSL с объявлением XML и элементом
<xsl:stylesheet>
.

Листинг 2.10. rules.xsl

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:template match="PLANET">

<TR>

<TD><xsl:value-of select="NAME"/></TD>

<TD><xsl:value-of select="MASS"/></TD>

<TD><xsl:value-of select="RADIUS"/></TD>

<TD><xsl:value-of select="DAY"/></TD>

</TR>

 </xsl:template>

</xsl:stylesheet>

Вот как это работает. Кроме

<xsl:include>
, для вставки таблиц стилей или фрагментов таблицы стилей можно также применять
<xsl:import>
.

НОВШЕСТВА В XSLT 2.0

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

Элемент <xsl:import>

Так

же как и
<xsl:include>
,
<xsl:import>
позволяет вставить таблицу стилей или фрагмент таблицы стилей в другую таблицу стилей. И так же, как
<xsl:include>
, у
<xsl:import>
есть только один атрибут:

• 

href
(обязательный). URI включаемой таблицы стилей.

И так же, как

<xsl:include>
,
<xsl:import>
пуст и не имеет содержимого. В чем же тогда разница между ними? Разница заключается в старшинстве импорта (import precedence).

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

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

<xsl:import>
вместо
<xsl:include>
:

Листинг 2.11. Импорт таблицы стилей

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:import href="#"/>

 <xsl:template match="/PLANETS">

<HTML>

<HEAD>

<TITLE>

The Planets Table

</TITLE>

</HEAD>

<BODY>

<H1>

The Planets Table

</H1>

<TABLE BORDER="2">

<TD>Name</TD>

<TD>Mass</TD>

<TD>Radius</TD>

<TD>Day</TD>

<xsl:apply-templates/>

</TABLE>

</BODY>

</HTML>

 </xsl:template>

</xsl:stylesheet>

Элемент <xsl:apply-imports>

Если вы импортируете таблицу стилей с шаблоном, например, для элемента

<PLANET>
, и затем определите свой собственный элемент
<PLANET>
, импортируемая версия будет перекрыта. Как можно получить доступ к перекрытой версии? Этому служит элемент
<xsl:apply-imports>
.

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

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Сын счастья

Вассму Хербьёрг
2. Книга Дины
Проза:
современная проза
5.00
рейтинг книги
Сын счастья

Я – Легенда

Гарцевич Евгений Александрович
1. Я - Легенда!
Фантастика:
боевая фантастика
попаданцы
рпг
фантастика: прочее
5.00
рейтинг книги
Я – Легенда

На границе империй. Том 10. Часть 8

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 8

Поход

Валериев Игорь
4. Ермак
Фантастика:
боевая фантастика
альтернативная история
6.25
рейтинг книги
Поход

Второгодка. Книга 3. Ученье свет

Ромов Дмитрий
3. Второгодка
Фантастика:
городское фэнтези
сказочная фантастика
альтернативная история
5.00
рейтинг книги
Второгодка. Книга 3. Ученье свет

Дракон

Бубела Олег Николаевич
5. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.31
рейтинг книги
Дракон

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

На границе империй. Том 7. Часть 5

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

Барон нарушает правила

Ренгач Евгений
3. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон нарушает правила

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Древесный маг Орловского княжества 6

Павлов Игорь Васильевич
6. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 6

Лейб-хирург

Дроздов Анатолий Федорович
2. Зауряд-врач
Фантастика:
альтернативная история
7.34
рейтинг книги
Лейб-хирург

Мастер порталов

Лисина Александра
8. Гибрид
Фантастика:
боевая фантастика
попаданцы
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Мастер порталов