Я проделал значительную разработку с использованием XSLT, и он был чрезвычайно успешным и полным провалом на двух разных сайтах.
Несколько мыслей перед выводом:
Не думаю, что кто-то будет утверждать, что XSLT гораздо более мощный, чем механизм синтаксического анализа шаблонов, это функциональный язык.
Хотя он не так широко используется, как большинство процедурных языков, он все еще является реальным языком, который используется для реальных проектов, люди могут быть наняты уже со знанием XSLT, и это передаваемый навык для вашего нынешнего персонала.
XSLT также существует уже некоторое время, реализации являются зрелыми, я уверен, что это относится к долго работающим шаблонным двигателям (таким как Velocity), но более новые двигатели могут быть менее надежными.
Какой бы язык шаблонов вы ни выбрали, он вряд ли будет так же хорошо документирован, как XSLT. Посмотрите любой справочник Майкла Кея по программированию для примера того, как сделать отличный справочник.
Поддержка инструментов, как правило, очень хорошая ... если у вас есть бюджет. XMLSpy и Stylus Studio оба были очень полезны для меня в прошлом.
XSLT не только сложен, но, что более важно, отличается. Большинство людей не являются выпускниками информатики, формально обученными функциональному программированию. Большинство программистов напишут XSLT в процедурном стиле, который не использует всю мощь языка и не доставит вам головной боли при обслуживании.
XSLT-преобразования могут быть медленными и занимать много памяти. У вас могут возникнуть проблемы, если у вас есть таблица стилей с большим вводом XML.
Мне нравится XSLT, но нужно ли вам его использовать или нет, зависит от нескольких моментов:
Вы привержены XSLT? У вас есть серьезный внутренний опыт в XSLT? Вы готовы получить немного?
Ваши данные в XML? Имеет ли это смысл в XML? У вас есть кто-то, кто любит ваши данные достаточно, чтобы убедиться, что они хорошо структурированы и всегда есть подходящая схема?
Если ответ на эти вопросы не положительный, и у вас есть сложные данные, требующие сложного процесса рендеринга, я бы не стал использовать XSLT ... особенно если в команде нет опыта. Плохой XSLT намного, намного, намного хуже, чем плохой шаблон.
Однако он может отображать сложные данные в удобном для сопровождения виде, что было бы невозможно при использовании многих современных шаблонизаторов.