Что такое xslt преобразование

Как использовать преобразования XSLT в файлах обмена данными Project XML

Стандарт Extensible Stylesheet Language Transformation (XSLT) указывает определение языка для преобразований данных XML. XSLT используется для преобразования XML-документов в XHTML-документы или в другие XML-документы. В этой статье показано, как использовать XSLT с Microsoft Office Project XML-файлами обмена данными 2007 г. для фильтрации и отображения сведений о проекте. (Содержимое этой статьи было предоставлено Джессикой Бриттон, корпорация Майкрософт.)

Сведения о сохранении проектов в виде Project XML-файлов обмена данными см. в материалах Saving and Opening Projects in XML Format.

Таблица стилей XSLT — это XML-документ, состоящий из сочетания разметки XHTML, правил шаблона XSLT и отчетов XPath, которые работают вместе.

Разметка XHTML определяет среду отображения, в которой представлены XML-данные.

Правила шаблона XSLT предоставляют инструкции по преобразованию элемента XML источника определенным образом.

В заявлениях XPath определяются определенные элементы в документе XML.

Если элемент XML соответствует шаблону XPath, вызывается связанное правило шаблона XSLT. Преобразованные данные затем отображаются в рамках отображения, заданной разметка XHTML.

Дополнительные сведения о правилах шаблона XSLT и утверждениях XPath см. в ссылке в конце этой статьи.

Отображение Project с помощью преобразований XSLT

Процедура 1. Чтобы создать таблицу стилей XSLT:

Создайте XSLT-файл для таблицы стилей. Если вы работаете в Microsoft Visual Studio 2005 г., вы можете использовать шаблон XSLT File (в Visual Studio нажмите кнопку Файл, указать на Новый , а затем нажмите файл . Этот шаблон предварительно заселяется кодом XML, показанным в следующем примере. Если вы работаете в другом тексте или редакторе XML, скопируйте XML-шаблон и вклейте его в XSLT-файл.

Удалите следующий комментарий по коду XML. Здесь вы пишете XSLT-код.

Создайте код XSLT. Код XSLT, показанный в этом примере, делает следующее:

Отображает текстовое значение имени ребенка элемента Project в загонах.

Проверяет ребенка сводки каждого элемента Задачи, чтобы узнать, является ли значение 0 (false).

Тестирует критическое дитя каждого элемента Задачи, чтобы узнать, является ли значение 1 (true).

Отображает данные для критически важных задач, которые не являются сводными задачами в жирный шрифт.

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

Сортировка сведений о ресурсах в алфавитном порядке по текстовому значению имени каждого элемента Ресурса.

Тестирует переоправдаемого ребенка каждого элемента Ресурса, чтобы узнать, является ли значение 1 (true).

Отображает отсортченные данные ресурсов только для перенаваляемых ресурсов.

Сохраните файл в качестве ProjectTransform.xslt.

После создания таблицы стилей XSLT необходимо связать Project XML-файл с ней, добавив инструкции по обработке. В процедуре 2 показано, как связать файл ProjectTransform.xslt, созданный в процедуре 1, с любым Project XML-файлом.

Процедура 2. Чтобы изменить Project XML-файл, используйте таблицу стилей XSLT:

Откройте файл Project XML в Visual Studio или в другом тексте или редакторе XML.

Вставьте следующую строку кода после объявления XML, которая является первой строкой в Project XML-файле.

Удалите объявление пространства имен XML из Project, который является корневым элементом Project XML-файла. Если вы не удалите объявление пространства имен, встроенное в элемент Project, XPath не будет соответствовать элементам в XML Project XML-файле.

После выполнения этапов 2 и 3 первые три строки XML Project XML-файла должны выглядеть следующим примером кода.

Сохраните Project XML-файл.

Рекомендуется сохранить файл с помощью имени файла, которое отличается от исходного имени XML Project XML, так как изменения, внесенные в шаге 3, отсоедят XML-файл Project от схемы Project XML-обмена данными.

Просмотр преобразованного Project XML-файла. Преобразование XSLT можно выполнить в Visual Studio, задав свойство Stylesheet XML Project xML-файла ProjectTransform.xslt, а затем выбрав show XSLT Output из меню XML.

Вы также можете открыть Project XML-файл в Internet Explorer 7, Microsoft Office Word 2007 или любом другом приложении, которое поддерживает XSLT.

На рисунке 1 показан преобразованный выход Project XML-файла в Word 2007. Когда вы открываете Project XML-файл, по умолчанию отображается только представление данных. Чтобы просмотреть преобразованный выход, необходимо выбрать представление данных ProjectTransform.xslt в области документов XML.

Рисунок 1. XML-файл преобразованного проекта

Источник

XSLT первый шаг

1. Введение

Важные ссылки по теме, первоисточники:

Переводы на русский язык:

Для лучшего понимания всего происходящего я рекомендую читать спецификации в следующем порядке:

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

2. Валидный XHTML

Что такое валидный XHTML? В первую очередь, это XML-документ, который должен соответствовать спецификации XML. Во-вторую, почти обычная HTML-страница, к которой все привыкли.

Почему нужен именно XHTML? Исключительно из соображений совместимости и кросс-браузерности. Страница в XHTML будет с большей вероятностью отображаться корректно в популярных браузерах, чем обычный HTML.

Для рядового клепателя страниц словосочетание XML-документ должно означать следующее:

Также сам XHTML обязывает выполнять следующие условия:

Пример простого документа XHTML1.0:

И так обо всём по порядку.

Объявление XML-документа, в котором указывается его версия и кодировка.

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

Объявление типа документа и его схемы.

Объявление пространства имён и используемого языка.

Очень важно указывать ссылку именно в таком регистре и никак иначе. Это связано с тем, что в XML имена элементов и содержимое их атрибутов регистрозависимы.

Три версии XHTML1.0 предназначены для лучшей обратной совместимости:

Помимо XHTML1.0 на данный момент доступен XHTML1.1:

XHTML1.1 по сути является тем же XHTML1.0 Strict и призван вытеснить другие версии XHTML1.0. Однако, по сравнению с XHTML1.0 Strict, у него есть ряд отличий:

Итак, если вам нужна наибольшая кросс-браузерность и совместимость с рекомендациями W3C, то XHTML1.1 самое оно!

Из этих соображений результатом моих преобразований будет именно XHTML1.1.

3. XSLT-преобразования

Что такое XSLT? Это язык преобразований XML-документа, который был разработан как часть расширенного языка стилей (XSL).

Зачем нужен XSLT? Он позволяет реализовать схему, при которой данные хранятся отдельно, а их представление отдельно. То есть, один XML-документ преобразуется с помощью другого XML-документа (XSL, в котором находятся XSLT-шаблоны) в конечный документ. Результатом может быть XML, HTML или текстовый документ любого формата.

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

Валидным XSL-документом является XML-документ, у которого задано пространство имён xsl и присутствует корневой элемент stylesheet. В самом простом случае стиль может выглядеть, например, так:

Этот стиль не содержит каких-либо явных определений шаблонов или других элементов XSL. Однако, его уже можно использовать. Чтобы посмотреть результат, достаточно сформировать произвольный XML-документ и подключить к нему этот стиль:

За подключение стиля отвечает строка:

Если файлы text.xml и test.xsl созданы и находятся в одной папке, то с помощью любого XSLT-парсера можно преобразовать исходный test.xml в результирующий документ. В качестве парсера могут выступать все популярные браузеры (IE5+, FF2+, Opera9+ и другие), а также модули в языках программирования, например, в PHP. Если вы используете браузер, то достаточно открыть test.xml, и он сразу отобразит примерно такой результат:

При этом кодировка результата будет UTF-8, несмотря на то, что исходный документ был сформирован в windows-1251. К сожалению, браузеры обычно не позволяют просмотреть код результирующего документа, но модуль XSLT в PHP5 даёт возможность передать результирующий код в переменную, которую можно сохранить в файл. Поэтому, используя PHP, я приведу исходный код результирующего документа:

Этот код не является валидным XML-документом и тем более XHTML1.1. Для того, чтобы сформировать нужный код, я усложню исходный XSL-стиль и добавлю туда необходимые шаблоны и преобразования. При этом исходный XML-документ останется без изменений.

В качестве примера я приведу XSL-стиль, который при помощи XSLT будет выводить список атрибутов исходного XML-документа с их значениями, при этом будет формироваться валидный XHTML1.1. Итак, стиль:

Чтобы понять, как он работает, я распишу каждое действие отдельно:

Документ сформирован в кодировке windows-1251, о чём сообщается в атрибуте encoding. Версию XML-документа желательно всегда указывать, это рекомендация W3C.

Затем идёт объявление корневого элемента, стиля:

Следующим шагом в корневом элементе stylesheet объявляется, каким образом нужно формировать результирующий документ:

Объявление основного шаблона:

Именно этот XSLT-шаблон соответствует корню исходного дерева и будет вызван первым для преобразования. Атрибут match принимает значения, которые должны соответствовать языку поиска элементов XPath.

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

Атрибут xmlns= «http://www.w3.org/1999/xhtml» указывает на пространство имён xhtml, которое будет применено по умолчанию к этому элементу и всем дочерним элементам, у которых оно не задано явно.

Атрибут xml:lang= «ru» указывает на язык, в котором сформирована страница (будущая).

Эта часть стиля была нужна для формирования атрибутики валидного XHTML1.1 кода.

Теперь что касается XSLT-преобразований:

Вставка простого текста:

Текст «Мой список:» будет подставлен в тег

Организация цикла по выборке:

Атрибут select принимает выражение XPath, на основе которого делает выборку. Если выборка вернула список узлов, то начинает работать цикл по каждому элементу.

В данном случае выборка вернёт список атрибутов для этого (корневого) и всех дочерних элементов.

В данном случае проверяется на чётность позиция элемента в списке выборки. Если тест возвращает true (порядковый номер элемента чётный), то срабатывает содержимое этого элемента.

Управление атрибутами вышестоящего элемента:

Вывод значений элемента:

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

Вывод ссылки на разработчика парсера XSLT:

Этот небольшой код XSLT формирует ссылку на разработчика парсера XSLT. Во многих случаях она будет разная и содержать разные значения.

Результатом обработки этого стиля ( test.xsl ) станет такой код:

Этот код соответствует стандарту XHTML1.1 и был сформирован на основе исходного XML-документа. Для проверки можно воспользоваться валидатором от W3C, который расположен по адресу http://validator.w3.org/.

В браузере этот код выглядит примерно так:

IE 6FireFox 3Opera 9.02
Что такое xslt преобразование. Смотреть фото Что такое xslt преобразование. Смотреть картинку Что такое xslt преобразование. Картинка про Что такое xslt преобразование. Фото Что такое xslt преобразованиеЧто такое xslt преобразование. Смотреть фото Что такое xslt преобразование. Смотреть картинку Что такое xslt преобразование. Картинка про Что такое xslt преобразование. Фото Что такое xslt преобразованиеЧто такое xslt преобразование. Смотреть фото Что такое xslt преобразование. Смотреть картинку Что такое xslt преобразование. Картинка про Что такое xslt преобразование. Фото Что такое xslt преобразование

4. Приложение

Ссылки на исходный код

Постоянный адрес статьи //anton-pribora.ru/articles/xml/xslt-first-step/. /Автор: Прибора Антон Николаевич, 2009 год/

Использование PHP5 для обработки XSLT

Для получения результирующего документа при помощи PHP5 я использовал такой код:

Дополнительную информацию по использованию XSLT в PHP5 можно найти по адресу http://ru2.php.net/manual/ru/book.xslt.php.

Мысли вслух

«Товарищи, мы стоим на краю огромной пропасти! И я предлагаю сделать большой, решительный шаг вперёд!»

© 2021 Антон Прибора. При копировании материалов с сайта, пожалуйста, указывайте ссылку на источник.

Источник

Языки XSL(T)

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

CSS используется для добавления стилей элементам HTML.

В XML используются теги не определенные заранее, что делает значение каждого тега не ясным изначально.

Например, элемент

в HTML означает таблицу и ничего другого. В XML этот элемент может означать все что угодно — таблицу, стол и т. д. — и браузеры не знают наверняка, как его отображать.

И здесь на помощь приходит XSL, который позволяет описать, как элементы XML должны отображаться в браузере.

XSL — больше, чем просто язык таблицы стилей

XSL состоит из четырех частей:

Примечание: Представив в 2013 году модуль CSS3 Paged Media Module, консорциум W3C определил новый стандарт форматирования документов. Таким образом, с 2013 года CSS3 позиционируется, как замена языка XSL-FO.

Что такое XSLT?

XSLT — наиболее важная часть языка XSL

XSLT используется для преобразования XML документа в другой XML документ или в другой тип документа, распознаваемый браузером, например, HTML и XHTML. Обычно, XSLT делает это преобразовывая каждый XML элемент в (X)HTML элемент.

При помощи XSLT можно добавлять/удалять элементы и атрибуты в конечный файл. Также, можно реорганизовывать и сортировать элементы, выполнять тесты, определять, какие элементы скрыть или отобразить, и многое другое.

В общих словах процесс преобразования можно описать следующим образом — XSLT преобразовывает исходное дерево XML в XML дерево-результат.

XSLT использует XPath

Для поиска информации в XML документе XSLT использует язык XPath. Язык XPath (подробнее см. Учебник XPath) позволяет перемещаться по элементам и атрибутам XML документа.

Как это работает?

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

Поддержка XSLT

Все основные браузеры поддерживают XSLT и XPath.

Источник

Практическое руководство. Выполнение преобразования XSLT в редакторе XML

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

Свойство Вывод определяет имя выходного файла. Если свойство Вывод пустое, файл с указанным именем создается во временном каталоге. Расширение файла определяется на основе элемента xsl:output в таблице стилей. Это может быть XML, TXT или HTM.

Если свойство Вывод определяет имя файла с расширением HTM или HTML, вывод XSLT открывается для предварительного просмотра с помощью браузера. Файлы с другими расширениями открываются редактором по умолчанию, которые выбирает среда Visual Studio. Например, если файл имеет расширение XML, то в Visual Studio используется редактор XML.

Выполнение преобразования XSLT из XML-файла

Откройте XML-документ в редакторе XML.

Свяжите таблицу стилей XSLT с XML-документом.

Добавьте таблицу стилей XSLT с помощью окна Свойства. Открыв файл XML в редакторе, щелкните правой кнопкой мыши в любом месте редактора и выберите Свойства. В окне Свойства щелкните поле Таблица стилей и нажмите кнопку обзора (. ). Выберите таблицу стилей XSLT, а затем нажмите Открыть.

В строке меню щелкните XML > Запустить XSLT без отладки. Либо нажмите клавиши CTRL+ALT+F5.

Результат XSLT-преобразования отображается в новом окне документа.

Если с XML-документом не связана ни одна таблица стилей, появится диалоговое окно с предложением указать таблицу стилей, которую нужно использовать.

Выполнение преобразования XSLT из таблицы стилей XSLT

Откройте таблицу стилей XSLT в редакторе XML.

Укажите XML-документ в поле Ввод в окне Свойства документа.

XML-документ является входным документом для преобразования. Если документ не указан при запуске преобразования XSLT, появится диалоговое окно Открытие файла, и можно будет указать документ.

В строке меню щелкните XML > Запустить XSLT без отладки. Либо нажмите клавиши CTRL+ALT+F5.

Результат XSLT-преобразования отображается в новом окне документа.

Задание имени выходного файла

У имени выходного файла может быть расширение XML или XS. Откройте окно Свойства и укажите имя файла в поле Вывод.

Источник

Применение языка преобразований XSLT

Язык преобразований XSLT

А это как раз то, что нужно для генерации кода. Применение XSLT может существенно помочь в генерации кода. Кроме того, он предоставляет удобную альтернативу технологии шаблонов Т4.

XSLT был разработан консорциумом W3C (World Wide Web Consortium). Первая версия языка XSLT 1.0 стала рекомендацией 16 ноября 1999 года, а версия XSLT 2.0 стала рекомендацией 23 января 2007 года. Обе версии используются достаточно активно, и в этой лекции мы рассмотрим ту базовую функциональность, которая является для них общей. А это значит, что рассматривать будем в основном первую версию. Также упомянем некоторые команды из второй версии.

Как работает XSLT

Модель XSLT включает в себя такие части как:

Документы XML являются входными данными, которые нужно преобразовать в другие документы. Документ стиля XSLT является корректным (well formed) документом XML и содержит набор правил для выполнения преобразования. Иными словами, документ стиля является шаблоном.

XPath

Применение XSLT

Для преобразования документа XML необходимо добавить в начало документа инструкцию, подобную следующей:

Файл стилей будет применяться следующий:

Инструкция xsl :value-of служит для вычисления выражения, записанного в атрибуте select с последующим выводом результата в том месте, где расположен сам элемент.

Фильтрация

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

Посмотрим на результат:

Языки высокого уровня:

Как видим, значение «Assembler» не отображается в списке языков, то есть процессор XSLT отфильтровал данные согласно заданным условиям.

Сортировка

Получается такой результат.

Языки высокого уровня:

Названия языков отсортированы в алфавитном порядке и значение «Assembler» не отображается в списке.

Вложенные шаблоны

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

При открытии сгенерированного результата в браузере будет показано следующее:

Что такое xslt преобразование. Смотреть фото Что такое xslt преобразование. Смотреть картинку Что такое xslt преобразование. Картинка про Что такое xslt преобразование. Фото Что такое xslt преобразование

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *