Мой предпочтительный подход к этому состоит в предварительной обработке документов (обычно с помощью другого преобразования XSLT), чтобы они использовали согласованное пространство имен.Таблица стилей предварительной обработки чрезвычайно проста, и, делая это таким образом, вы избегаете загромождения основной таблицы стилей большим количеством сложного условного кода.Кроме того, код предварительной обработки становится полностью повторно используемым;Вы можете использовать его в любом конвейере.
Если вам нужно немного больше производительности, вы можете выполнить предварительную обработку в фильтре SAX, вставленном между анализатором XML и преобразователем, где это будет стоить почти ничего.
(я также советую людям не упаковывать информацию о версии в URI пространства имен, но Microsoft не сообщает ...)