XSLT введение

21 Dec

XSLT (Extensible Stylesheet Language Transformations) — часть спецификации XSL, задающая язык преобразований XML-документов. Спецификация XSLT является рекомендацией W3C, по определению Википедии

Если немного утрировать XSLT – это таблица стилей наподобие CSS, но для XML документов. И если возможности CSS в принципе не безграничны (хотя не известно, что день грядущий нам готовит), то с помощью XSL преобразований действительно можно творить с исходными документами просто чудеса. Хотя не без своих извращений.

Очень часто XSLT сравнивают с популярными шаблонизаторами (Smarty, PHPTemplates и т.п), что, на мой взгляд, не верно в корне, ведь в первую очередь XSLT – именно технология трансформации данных. Например, на основе одного или нескольких XML малой кровью можно получить новый документ удобного формата, привычный HTML или новый XML. У шаблонизаторов же задача одна – разделять программную логику и представление. Соответственно, и сравнивать производительность XSLT и обычных шаблонизаторов не совсем корректно.

Давайте попробуем понять, какие свойства и особенности помогают технологии XSLT находить новых и новых сторонников:

Стандартизированный синтаксис – именно тот базис, который служит залогом успеха XSLT. Во-первых – эту технологию просто не могла постигнуть судьба HTML, который каждый браузер, не зависимо от рекомендаций W3C, понимает по своему. Есть некоторые различия, зависящие от используемого XSLT-парсера, но они не значительны и в конечном итоге не фатальны. Во-вторых плюс четкого синтаксиса в том, что не может быть разночтений и я без труда могу понять шаблон, который на другой стороне океана писал какой-нибудь индус. Хотя, конечно, даже стиль написания XSL и используемые приемы могут немного отличаться. В-третьих, как мы знаем, консорциум W3C крайне вдумчиво внедряет новые версии своих рекомендаций, что в случае с XSLT нам скорее на руку. Сейчас существует всего две версии рекомендаций – XSLT 1.0 (ноябрь 1999) и XSLT 2.0 (январь 2007) и даже реализации 1.0 за глаза хватает для решения большинства утилитарных задач. Шаблонизаторы же, к примеру, радуют новинками с завидной регулярностью и никто не мешает им признавать свои же решения устаревшими и со временем отказываться от их поддержки, так что речи об обратной совместимости часто и быть не может.

Расширяемость XSL – эта возможность особенно актуальная для тех, кому стандартных функций двух реализаций XSLT все же не достаточно. Причем наряду с использованием готовых расширений, которые накопило сообщество разработчиков за эти годы (самый известный архив таких расширений на exlst.org) никто не мешает написать и использовать свой компонент.

XML как основа – еще один жирный плюс стандартизации. По факту это значит, что на входе у нас всегда XML файл, который может быть чем угодно: RSS лентой, погодным информером другого сайта, каким-нибудь конфигом, результатом SQL запроса или вообще – ответом сервера. И весь этот набор мы легко приводим к нужному нам формату набором стандартных XSL преобразований.

Простота совместной разработки. Так уж сложилось, что над запуском проекта в продакшен обычно бок о бок трудятся как минимум два разработчика – программист и верстальщик. И без постоянной коммуникации этих специалистов представить промышленный процесс разработки довольно сложно. Применение XSLT в этом случае позволяет максимально сократить количество времени, которое необходимо для общения. В этом случае программист занимается подготовкой и формированием XML, а верстальщик с помощью XSLT задает определенную логику и реализует вывод данных в знакомый его формат. По этому пункту советую ознакомиться с презентацией Андрея Шитова Разделение труда при верстке. На самом деле в ней речь идет не только и не столько о разделении труда, сколько именно об особенностях использования XSLT в этом процессе.

На этом пока остановлюсь. Надеюсь, смог заинтересовать. В следующей заметке уже побеседуем более предметно.

No comments yet

Leave a Reply