» » » Алексей Валиков - Технология XSLT


Авторские права

Алексей Валиков - Технология XSLT

Здесь можно скачать бесплатно "Алексей Валиков - Технология XSLT" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство БХВ-Петербург, год 2002. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Алексей Валиков - Технология XSLT
Рейтинг:
Название:
Технология XSLT
Издательство:
БХВ-Петербург
Год:
2002
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

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

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Технология XSLT"

Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.



Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.

Для начинающих и профессиональных программистов






<mark-up type="b">This text should be marked bold.</mark-up>

в котором атрибут type элемента mark-up указывает на тип элемента разметки, который должен быть использован для данного текстового фрагмента. Для того чтобы получить элемент вида

<b>This text should be marked bold.</b>

можно использовать следующий шаблон:

<xsl:template match="mark-up">

 <xsl:element name="{@type}">

  <xsl:value-of select="."/>

 </xsl:element>

</xsl:template>

Таким образом, в качестве имени нового элемента, содержащего текст элемента mark-up, будет использовано значение атрибута type.

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

Пример

Предположим, что мы хотим вывести ссылки на графические изображения в виде иконок. Мы задаем список файлов в виде XML-документа:

<images dir="/images">

 <image filename="rose.jpg"/>

 <image filename="orchide.gif"/>

 <image filename="primul.gif"/>

</images>

Файлы хранятся в каталоге, указанном в атрибуте dir элемента images, а иконки имеют те же имена файлов, что и большие изображения, но с префиксом "th_". Для получения ссылок на изображения мы можем воспользоваться следующим преобразованием:

<xsl:template match="images/image">

 <а href="{../@dir}/{@filename}">

  <img src="{../@dir}/th_{@filename}"/>

 </a>

</xsl:template>

Результат будет получен в виде:

<а href="/images/rose.jpg"><img src="/images/th_rose.jpg"/></a>

<a href="/images/orchide.gif"><img src="/images/th_orchide.gif"/></a>

<a href="/images/primul. gif"><img src="/images/th_primul.gif"/></a>

Для того чтобы использовать в значении атрибута левые и правые фигурные скобки в качестве простых символов, нужно удваивать их количество, то есть указывать "{{" вместо каждой левой и "}}" вместо каждой правой фигурной скобки соответственно.

Пример

Элемент, определенный как

<input name="login" type="text"

 value="{{{{{{Enter your login here}}}}}}"/>

будет преобразован в выходящем документе к виду

<input name="login" type="text" value="{{{Enter your login here}}}"/>

Фигурные скобки нельзя использовать рекурсивно для вычисления внутри выражений. К примеру, в качестве значения атрибута name, определенного как

<story name="{/h{1 + 2}/p}"/>

не будет использовано вычисленное значение выражения /h3/p. Вместо этого процессор выдаст ошибку.

Фигурные скобки могут быть спокойно использованы внутри выражения в литералах — в этом случае они не будут задавать значений атрибутов.

Пример

Элемент, определенный как

<page numbers="{concat ('{', ' 1,2,3', '}') }"/>

будет преобразован к виду

<page numbers="{1,2,3}"/>

Шаблоны значений могут быть использованы далеко не везде. К примеру, не могут содержать шаблонов следующие типы атрибутов.

□ Атрибуты, значениями которых являются выражения.

□ Атрибуты, значениями которых являются паттерны.

□ Атрибуты элементов верхнего уровня.

□ Атрибуты пространств имен (xmlns).

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

<img src="{../@dir}/th_{@filename}"/>

атрибут src содержит ни что иное, как два шаблона значений.

Что же касается атрибутов элементов XSLT, то как очевидно из табл. 4.4, лишь малая их часть может содержать шаблоны значений.


Таблица 4.4. Атрибуты элементов XSLT, которые могут содержать шаблоны значений

Элемент Атрибуты Описание xsl:element name Имя создаваемого элемента namespace Пространство имен создаваемого элемента xsl:attribute name Имя создаваемого атрибута namespace Пространство имен создаваемого атрибута xsl:processing-instruction name Имя целевого приложения инструкции по обработке xsl:number format Формат номера lang Языковой контекст номера letter-value Традиционная или алфавитная буквенная нумерация grouping-separator Символ-разделитель групп цифр номера grouping-size Размер группы цифр номера xsl:sort lang Языковой контекст сортировки data-type Тип данных сортировки order Порядок сортировки case-order Старшинство прописных и строчных символов при сортировке

Таким образом, перечень параметров, которые могут изменяться динамически (иными словами — вычисляться непосредственно во время выполнения шаблона) не так велик. В частности, стандартными способами в XSLT невозможно выполнить следующее.

□ Вызвать именованный шаблон динамически: атрибут name элемента xsl:call-template должен быть задан заранее и не может содержать шаблон значения.

□ Динамически изменить режим применения шаблонов (атрибут mode элемента xsl:apply-templates).

□ Вычислить элементами xsl:copy-of и xsl:value-of выражение заранее неизвестного вида.

□ Давать переменным и параметрам имена, вычисляемые во время выполнения преобразования.

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

Глава 5

Шаблонные правила

Преобразование как набор правил

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

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

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

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

Определение шаблонного правила

Элемент xsl:template

Синтаксис этого элемента приведен ниже:

<xsl:template

 match="пaттерн"

 name="имя"

 priority="число"

 mode="имя">

 <!-- Содержимое: несколько элементов xsl:param, тело шаблона -->

</xsl:template>

Элемент верхнего уровня xsl:template определяет в преобразовании шаблонное правило, или просто шаблон. Элемент xsl:template имеет всего четыре атрибута, смысл которых мы кратко опишем ниже.

Атрибут match задает паттерн — образец узлов дерева, для преобразования которых следует применять этот шаблон.

Пример

<xsl:template match="bold">

 <b><xsl:value-of select="."/></b>

</xsl:template>

В этом правиле атрибут match говорит о том, что оно должно использоваться для обработки элементов bold — в данном случае они будут заменяться на элементы b. Шаблоны, в которых определен атрибут match, вызываются при помощи инструкции xsl:apply-templates.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Технология XSLT"

Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Алексей Валиков

Алексей Валиков - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Алексей Валиков - Технология XSLT"

Отзывы читателей о книге "Технология XSLT", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.