Область действия глобальных (верхнего уровня) переменных, а также других именованных объявлений, таких как именованные шаблоны, представляет собой целую таблицу стилей, то есть все модули.Когда модуль A импортирует модуль B, оба модуля могут объявить переменную V, и объявление V в A используется везде, в том числе и в B (на языке спецификации A имеет более высокий приоритет импорта).
Если вы пытаетесь написать что-то амбициозное в XSLT, то я бы рекомендовал настойчивый с пониманием спецификации.Или вы можете предпочесть мою книгу Справочник программиста XSLT от Wrox / Wiley - но она охватывает XSLT 2.0, а не 1.0, если вы не можете найти более старую версию.
У меня проблемы с пониманием того, чтоВы имеете в виду «Конечно, теперь я знаю, что $ xrcs-url почти бесполезен, поскольку импорт оценивается перед переменными».Импорт не «оценивается», это объявления, используемые для построения таблицы стилей во время компиляции.Я не знаю, для чего вы хотите использовать $ xrcs-url (ваш код, по-видимому, не пытается его использовать), в принципе он кажется вполне пригодным для использования, хотя, возможно, не тем, для чего вы его предназначали (но я не знаю,для чего, конечно, вы это и предполагали).
Кстати, здесь есть одна таблица стилей с двумя модулями: она помогает правильно понять терминологию.
Затем вы говорите: «Однако Firefox жалуется накакая-то неуказанная ошибка при попытке использовать эту таблицу стилей. "Ну, это, вероятно, жалуется, что объявления xsl: import находятся не в том месте.Но, что более важно, запуск кода XSLT в браузере не является хорошим подходом для разработки и тестирования.Диагностика паршивая.Гораздо более продуктивно (вы говорите, что вы амбициозны) использовать специализированную IDE, такую как oXygen.