Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Модульная организация преобразования



Цель работы:

Изучить модульную организацию преобразований

 

Ходы работы:

Существуют два основных способа использования в преобразованиях внешних модулей — включение и импорт. Кроме того, поскольку преобразования в XSLT также являются XML-документами, для разбиения их на модули можно применять сущности.

 

Включение преобразований

 

 

Элемент xsl:include

<xsl: include

href = "URI"/>

Обязательный атрибут href элемента xsi:include содержит URI внешнего модуля, который должен быть включен в текущее преобразование. Внешний модуль обязан быть корректным XSLT-преобразованием. Включение внешнего преобразования является включением в прямом смысле этого слова: преобразование, включающее внешний модуль, ведет себя так, как если бы на месте элемента xsi:include было содержимое этого внешнего модуля.

 

Создайте документ с модульной организацией преобразования, для этого сделайте следующее:

 

1. Создайте документ для таблицы стилей под названием a.xsl

 

<xsl:stylesheet version="l.0"

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

<xsl:variable name="date" select»"'16.07.2001'"/>

</xsl:stylesheet>

Документ a.xsl определяет значение переменной date.

 

Элемент <xsl:variable name>-определяет локальные переменные и параметры.

 

2. Создайте документ для таблицы стилей под названием b.xsl

 

<xsl:stylesheet version="1.0"

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

<xsl:include href="a.xsl"/>

<xsl:template match="/">

<content>

<xsl:text>Today is </xsl:text>

<xsl:value-of select="$date"/>

<xsl:text>.</xsl:text>

</content>

</xsl:template>

</xsl:stylesheet>

Включение в преобразование b.xsl преобразования a . x s l эквивалентно замене в b.xsl соответствующего элемента x s l : i n c l u d e на содержимое преобразования a.xsl. В нашем случае будет включено только определение переменной date. Это будет выглядеть так, как показано в документе b1.xsl:

<xsl:stylesheet version="1.0"

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

<xsl:variable name="date" select=" '16.07.2001' "/>

<xsl:template match="/">



<content>

<xsl:text>Today is </xsl:text>

<xsl:value-of select="$date"/>

<xsl:text>.</xsl:text>

</content>

</xsl:template>

</xsl:stylesheet>

3. Создайте документ c.xml:

 

<?xml version="1.0" encoding="windows-1251"?>

<?xml-stylesheet type="text/xsl" href="b.xsl"?>

<date>

</date>

4. Отобразите c.xml в браузере, у вас должно получится то что представлено на рисунке 4.6

 

Рисунок 4.6

 

Упражнения для самостоятельной работы

1. Используя документы a.xsl и b1.xsl,создайте преобразование по элементу Year,так что бы в результате получилось Happy New Year 2011

2. Отобразите в бразуре

 

Импорт преобразований

Другим способом использования внешних модулей в XSLT является импорт преобразований, который обеспечивается элементом xsi:import. Импорт преобразований более сложен, чем их простое включение — последовательность импорта модулей может влиять на то, как будет выполняться преобразование. Равно как и в случае с xsi:include, условное импортирование преобразований не разрешено

 

Элемент xsl:import

<xsl:import

href="URI"/>

 

 

Порядок импорта:

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

 

· Порядок импорта основного преобразования всегда старше порядка им-

порта внешнего преобразования.

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



 

· Порядок импорта преобразования, включенного в основное при помощи

элемента xsi: include,равен порядку импорта основного преобразования.

 

Cсоздайте документ с импортом преобразований, для этого сделайте следующее:

 

1. Создайте документ для таблицы стилей под названием a.xsl:

 

<xsl:stylesheet

version="1.0"

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

<xsl:import href="b.xsl"/>

<xsl:import href="c.xsl"/>

<xsl:import href="d.xsl"/>

</xsl:stylesheet>

- a.xsl,импортирует преобразования b.xslи c. xslи включает преобразование d.xsl.

 

В соответствии с первым правилом a.xsl является, страшим преобразованием. Согласно второму правилу порядок импорта преобразованияb. xsl младше c. xsl. Преобразование d.xsl будет иметь порядок импорта такой же, как и у основного преобразования a.xsl. Таким образом, порядок импорта в этом примере будет иметь следующий вид:

 

 

b.xsl

c.xsl

a.xsl d.xsl

 

Преобразование b.xsl будет самым младшим, а преобразования a. xsl и d. xsl — самыми старшими

 

 

2. Создайте документ для таблицы стилей под названием b.xsl:

 

<xsl:stylesheet version="1.0"

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

<xsl:variable name="First_Name" select="'Artur'"/>

<xsl:variable name="Last_Name" select="'Turkin'"/>

</xsl:stylesheet>

3. Создайте документ для таблицы стилей под названием c.xsl:

<xsl:stylesheet version="1.0"

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

<xsl:include href="b.xsl"/>

<xsl:template match="/">

<content>

<xsl:text>This is </xsl:text>

<xsl:value-of select="$First_Name"/>

<xsl:text> </xsl:text>

<xsl:value-of select="$Last_Name"/>

<xsl:text>.</xsl:text>

</content>

</xsl:template>

</xsl:stylesheet>

4. Создайте документ для таблицы стилей под названием d.xsl:

 

<xsl:stylesheet version="1.0"

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

<xsl:variable name="First_Name" select="'Artur'"/>

<xsl:variable name="Last_Name" select="'Turkin'"/>

<xsl:template match="/">

<content>

<xsl:text>This is </xsl:text>

<xsl:value-of select="$First_Name"/>

<xsl:text> </xsl:text>

<xsl:value-of select="$Last_Name"/>

<xsl:text>.</xsl:text>

</content>

</xsl:template>

</xsl:stylesheet>

5. Создайте документ e.xml:

 

<?xml version="1.0" encoding="windows-1251"?>

<?xml-stylesheet type="text/xsl" href="a.xsl"?>

<import>

</import>

6. Отобразите e.xml в браузере, у вас должно получится то, что представлено на рисунке 4.7

 

 

Рисунок 4.7


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!