Здравствуйте, Marty, Вы писали:
M>Вроде бы если я объявлю переменные внутри xsl:if, то они не будут видны вне этого блока. С учетом того, что переменные это вовсе не переменные, а именованные константы, то я не представляю, как их использовать в моем случае ;(
Ага, только это не константы, а неизменяемые (immutable) переменные. Так что вы попробуйте наоборот, xsl:if внутри xsl:variable.
M>Вообще кошмар. Пробовал тут пользоваться DocBook XML'ем, мало что понял, но сложилось впечатление, что шаблоны там какие-то фанатики писали, нормальный человек такое не осилит 
После привычки к императивным языкам любой функциональный язык будет сложным вне зависимости от синтаксиса.