Области применения XSLT

Москва, 2010



Содержание

 

Введение

XSLT как язык

Преобразования

Области применения XSLTв архитектуре клиент-серверна стороне серверана стороне клиента

Пространство имен в XSLTи другие языки



Введение

 

XSLT означает eXtensible StyleSheet Language for Transformation, что на русский язык традиционно переводится как “расширяемый язык стилей для преобразований”. Работа над XSLT была инициирована проектом XSL - eXtensible StyleSheet Language (расширяемым языком стилей).

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

 


 


XSLT как язык

 

Любое преобразование можно условно поделить на 3 составляющие:

.   Обращение к преобразуемому объекту;

.   Создание результата преобразования;

.   Логика, связывающая первые два действия и направляющая процесс преобразования.

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

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

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

XSLT - интерпретация “Hello? World!”, когда мы преобразуем документ:

 

 

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

 

Преобразования

 

В преобразовании в основном участвуют три документа:

входящий документ, который подвергается преобразованию;

документ, который описывает само преобразование;

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

 


 

Схема XSLT - преобразования

 

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

 

Древовидные структуры XSLT

 

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

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

 

Сериализация в XSLT

 


Области применения XSLT

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

Естественно, XSLT имеет также и некоторые ограничения:

XSLT не подходит для описания преобразований с очень сложной логикой;

XSLT не подходит для преобразований, которые требуют сложных вычислений.

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

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

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: