Во-первых, две переменные никогда не имеют одинаковую область видимости. Даже если они оба являются глобальными, область видимости переменной исключает собственное выражение выбора, поэтому область видимости двух переменных различна.
Во-вторых, в вашем примере область действия двух переменных даже не перекрывается. Каждая переменная ограничена своим собственным, содержащим td
элемент.
Для двух глобальных переменных правило состоит в том, что вы можете иметь две переменные с одинаковым именем при условии, что они имеют различный приоритет импорта, и в этом случае все ссылки обрабатываются как ссылки на одну с более высоким приоритетом.
Если одна переменная является локальной, а другая - глобальной, локальная переменная выигрывает, если она находится в области видимости.
Если у вас есть две локальные переменные с перекрывающейся областью действия, это ошибка в XSLT 1.0, но разрешенная в XSLT 2.0; в области перекрытия выигрывает переменная с меньшей областью действия.