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

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Технология XSLT"
Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.
Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.
Для начинающих и профессиональных программистов
Первый способ заключается в том, что с XML-документом посредством инструкции xml-stylesheet ассоциируется преобразование и Internet Explorer отображает результат преобразования.
Пример Листинг П1.1. Входящий документ source.xml<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
<date>18.10.2001</date>
Листинг П1.2. Преобразование stylesheet.xsl<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Today is page</title>
</head>
<body>
<xsl:apply-templates select="date"/>
</body>
</html>
</xsl:template>
<xsl:template match="date">
<H1>
<xsl:text>Сегодня </xsl:text>
<xsl:value-of select="."/>
</H1>
</xsl:template>
</xsl:stylesheet>
Документ source.xml будет отображен в браузере Internet Explorer следующим образом (рис. П1.4).
Рис. П1.4. Документ source.xml, отображенный браузером Internet Explorer
Другим, вариантом является использование утилиты командной строки msxsl.exe, которая также доступна на Web-сайте MSDN. Эта утилита есть не более чем оболочка для MSXML, позволяющая вызывать основной компонент из командной строки.
Использование msxsl.exe совершенно стандартно: для применения преобразования stylesheet.xsl к документу source.xml и вывода результата в файле result.xml нужно выполнить следующую команду:
msxsl.exe source.xml stylesheet.xsl -о result.xml
Расширения
MSXML поддерживает пользовательские функции расширения, которые могут быть написаны на скриптовых языках VBScript и JScript и включены непосредственно в сами преобразования.
Пример Листинг П1.3. Входящий документ<?xml version="1.0" encoding="windows-1251"?>
<page>Сегодня <date/>.</page>
Листинг П1.4. Преобразование<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:ext="urn:extension-functions"
exclude-result-prefixes="msxsl ext">
<xsl:output encoding="windows-1251"/>
<msxsl:script
language="JavaScript"
implements-prefix="ext">
function date() {
now = new Date;
return now.getDate() + '.' +
(now.getMonth() + 1) + '.' +
now.getYear();
}
</msxsl:script>
<xsl:template match="/">
<html>
<head>
<title>Today is page</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="date">
<xsl:value-of select="ext:date()"/>
</xsl:template>
</xsl:stylesheet>
Листинг П1.5. Выходящий документ<html>
<head>
<META
http-equiv="Content-Type"
content="text/html;
charset=windows-1251">
<title>Today is page</title>
</head>
<body>Сегодня 18.10.2001.</body>
</html>
Как и во многих других процессорах, в MSXML предусмотрена функция расширения node-set, которая преобразует результирующий фрагмент дерева во множество узлов. Функция node-set принадлежит пространству имен с URI "urn:schemas-microsoft-com:xslt", и стандартным сценарием ее использования будет примерно следующий:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl ">
<!-- ... -->
<xsl:variable name="tree">
<!-- Переменная, содержащая результирующий фрагмент дерева -->
<item>A</item>
<item>B</item>
</xsl:variable>
<!-- ... -->
<xsl:template ... >
<!-- Обращение к $tree, как ко множеству узлов -->
<xsl:value-of select="msxsl:node-set($tree)/item[1]"/>
</xsl:template>
</xsl:stylesheet>
К сожалению, текущая версия MSXML не поддерживает расширение пользовательскими элементами.
Процессор Xalan
Основные характеристики.
□ Платформы: Java, С++.
□ Расширения: функции и элементы расширения.
□ Полнота реализации: один из наиболее проработанных процессоров. □ Разработчик: Apache XML Project.
□ URL: http://xml.apache.org.
Xalan — это очень известный XSLT-процессор, созданный в рамках Apache XML Project для языковых платформ Java и С++. Xalan, как и остальные продукты Apache XML Project, поставляется с открытым исходным кодом и открытым API, что делает его очень привлекательным для интеграции в другие приложения.
Использование
По сути дела, Xalan Java и Xalan C++ — это библиотеки, позволяющие использовать XSLT-преобразования в собственных проектах. Xalan Java поддерживает набор интерфейсов TrAX (от англ. transformation API for XML — программный интерфейс преобразований для XML), определяющий стандартные модели и методы преобразования XML-документов в Java-программах.
Помимо этого, и Xalan Java и Xalan С++ предусматривают возможность выполнения преобразований из командной строки. Для Xalan Java стандартный вызов будет выглядеть так:
java org.apache.xalan.xslt.Process -in source.xml -xsl stylesheet.xsl -OUT result.xml
Если при попытке выполнения этой команды выдается сообщение вида:
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/xalan/xslt/Process
это означает, что библиотека xalan.jar не прописана в переменной окружения CLASSPATH, запустить Xalan в этом случае можно, указав xalan.jar в параметрах явным образом:
java -cp xalan.jar org.apache.xalan.xslt.Process -in source.xml -xsl stylesheet.xsl -out result.xml
Библиотека Xalan С++ имеет несколько вариантов для платформ Windows 32, Linux, AIX, HP-UX и Solaris, каждый из которых включает также скомпилированную утилиту TestXSLT, позволяющую выполнять преобразования из командной строки:
TestXSLT -in source.xml -xsl stylesheet.xsl -out result.xml
Расширения
Xalan С++ позволяет вызывать в XSLT-преобразовании пользовательские функции расширения, написанные на языке С. Кроме того, в дополнение к базовым функциям XSLT, Xalan С++ реализует несколько наиболее часто используемых функций, например, функцию nodeset. В текущей версии (1.2) Xalan С++ не поддерживает элементы расширения.
Возможности расширения Xalan Java намного богаче. Xalan Java, как и Xalan С++, реализует дополнительную библиотеку функций (которая по сравнению с Xalan С++ также намного шире). Помимо этого, Xalan Java позволяет создавать функции и элементы расширения на Java и других языках программирования.
Остановимся на последнем пункте более подробно. Xalan позволяет использовать библиотеку BSF (от англ. bean scripting framework — система скриптовых языков для bean-компонент). BSF — это библиотека, которая позволяет использовать скриптовые языки в Java-приложениях и апплетах. На данный момент BSF позволяет реализовывать в Xalan Java расширения на следующих скриптовых языках:
□ Mozilla Rhino (фактически, еще один вариант JavaScript);
□ NetRexx;
□ BML;
□ JPython;
□ Jacl;
□ PerlScript;
□ VBScript;
□ JavaScript.
Процессор Saxon
Основные характеристики.
□ Платформы: Java.
□ Расширения: функции и элементы расширения на Java.
□ Полнота реализации: практически идеальная.
□ Разработчик: Майкл Кей.
□ URL: http://saxon.sourceforge.net.
XSLT-процессор Saxon был разработан и до сих пор поддерживается единственным человеком — Майклом Кеем (Michael Kay), который в настоящий момент является редактором спецификации XSLT 2.0. Процессор Saxon, так же как и Xalan, является бесплатным open-source продуктом.
На Web-сайте Saxon доступны два варианта процессора — полный Saxon и облегченная версия, скомпилированная для Windows — Instant Saxon, которая занимает всего 400 килобайт в архиве, но практически не уступает полной версии по функциональности.
Следует особым образом подчеркнуть полноту реализации Saxon. Майкл Кей является известным специалистом по XSLT, который много времени уделяет консультированию разработчиков в списке-рассылке XSL List. Столь плотная работа с конечными пользователями позволяет ему быстро реагировать на информацию о допущенных ошибках и несоответствиях. Как результат, разработанный и поддерживаемый им процессор считается образцом соответствия стандарту XSLT. В целом, Saxon можно описать как выдающийся продукт от выдающегося человека.
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Технология XSLT"
Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Алексей Валиков - Технология XSLT"
Отзывы читателей о книге "Технология XSLT", комментарии и мнения людей о произведении.