Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:

□ 

xsl:strip-space
и
xsl:preserve-space
— в этих элементах порядок импорта также используется для разрешения конфликтов: выигрывают определения со старшим порядком импорта.

□ 

xsl:template
— порядок импорта используется для разрешения конфликтов, которые возникают в случаях, когда один узел может быть обработан несколькими шаблонами. Шаблон, содержащийся в преобразовании с младшим порядком импорта, будет просто исключен из рассмотрения.

□ 

xsl:variable
и
xsl:param
— порядок импорта используется при обращении к глобальным переменным в случае, если в разных преобразованиях существуют разные определения переменной с одним именем. В подобной ситуации будет использована переменная со старшим порядком импорта.

Использование сущностей для разбивки на модули

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

Пример
Листинг 4.15. Входящий документ:

<root>

 <a/>

 <b/>

</root>

Листинг 4.16. Основное преобразование

<!DOCTYPE xsl:stylesheet [

 <!ENTITY ab SYSTEM "ab.xsl">

]>

<xsl:stylesheet

 version="1.0"

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

 <xsl:template match="root">

<ROOT>

<xsl:apply-templates/>

</ROOT>

 </xsl:template>

 &ab;

</xsl:stylesheet>

Листинг 4.17. Файл ab.xsl

<xsl:template match="a">

 <A/>

</xsl:template>

<xsl:template match="b">

 <B/>

</xsl:template>

Листинг 4.18. Результат преобразования

<ROOT>

 <A/>

 <B/>

</ROOT>

В этом примере в DTD-блоке мы определяем сущность с именем

ab
, которая содержит два шаблонных правила для обработки элементов
a
и
b
. Файл
ab.xsl
, в котором содержится текст внешней сущности, заменяет в документе ссылку
&ab;
. После раскрытия процессором сущности (замены ссылки на ее содержимое) наше преобразование будет выглядеть следующим образом.

Листинг 4.19. Основное преобразование после раскрытия сущности &ab;

<xsl:stylesheet

 version="1.0"

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

 <xsl:template match="root">

<ROOT>

<xsl:apply-templates/>

</ROOT>

 </xsl:template>

 <xsl:template match="a">

<A/>

 </xsl:template>

 <xsl:template match="b">

<B/>

 </xsl:template>

</xsl:stylesheet>

Совместное использование преобразований и XML-документов

Ассоциация преобразования с XML-документом

Тем, кому приходилось работать со стилями в HTML-документах, пожалуй будет знакома конструкция вида

<LINK REL="stylesheet">
, которая закрепляет за документом определенный стиль. Включив такую конструкцию, автор явным образом указывает, как следует отображать данный документ.

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

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

xml-stylesheet
, которая имеет следующий вид:

<?xml-stylesheet

 href="URI"

  • Читать дальше
  • 1
  • ...
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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