Я бы скорее описал как функциональный (но очень плохо функционирующий) ЯП предназначенный для обработки SGML и производных форматов данных.
По мнениям некоторых очевидцев Тюринг-полный, по мнениям случайных прохожих - не очень полный (например бесконечный цикл можно реализовать только как рекурсию, а цикл, как таковой, хоть и присутствует, бесконечным быть не может). Так же изобилует свойственными для такого рода языков непонятками с Булевыми операциями, отсутствием ленивых аргументов и т.п.
Две самые важные составляющие: XPath - регулярная грамматика для описания или нахождения элементов в DOM-структуре, и собственно XSL - язык построенный на основе XML включающий набор зарезервированных тегов, типа if или for-each. Программист на XSL может создать template и key, что примерно соответствует процедуре и константе в более привычных для широкой публики терминах.
Типичное использование - генерить HTML по шаблону из XML (т.как непосредственно генерить HTML почему-то не получается). В теории сайтостроительства занимает отдельное почетное место - если вы умеете это делать, то можете быть уверены, что ваш проект никто кроме вас поддерживать точно не будет, т.как кроме вас это делать не умеет никто. Есть еще интересная теория о том, что, например, HTMLи сгенерированные используя XSL можно легко закешировать при большой загрузке сервера, а еще лучше прямо в мэмкеш (ака мэмбейс) запихать для повышения производительности и авторитета в глазах окружающих.
Так же, но значительно реже XSL используется для генерации не-HTML документов. Например, с его помощью можно генерировать исходники неинтересных классов, опять же потому что это круто, и так больше никто не умеет. Существуют малоизвестные и малоиспользуемые ответвления, которые позволяют генерить другие форматы, и не обязательно текстовые. Для чего обычно нужна программа-переводчик из того, что нагенерил XSL в формат, в который нужно было изначально генерить.
Технология очень популярна в энтерпрайз секторе и отчасти в корпоративном секторе. Но больше все-таки в интерпрайз. Большие компании нанимают много инженеров, и им просто необходимо производить мегатонны мукулатуры ещечасно (для примеров см. Google Spreadsheets). XSL, как ни одна другая технология, позволяет с ни в чем не виноватым лицом, и даже иногда с очень умным выражением лица, налепить неимоверную кучу мусора.
|