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