Вы слишком много думаете о лексическом выводе, а не о дереве узлов XDM, которое генерирует ваша таблица стилей. Вам нужно подумать о расширенном имени элементов в результирующем дереве (расширенное имя - это URI пространства имен плюс локальное имя) и оставить сериализацию, чтобы позаботиться о себе.
Вы получаете объявления пространства имен и префиксы имена в выходных данных, потому что вы создаете элементы в ненулевом пространстве имен. Чтобы исправить это, вам нужно сгенерировать элементы без пространства имен. Первый шаг к достижению этого - избавиться от префикса «tns:» во всех буквальных элементах результата в таблице стилей. Возможно, это все, что вам нужно сделать: сложно сказать.
Я думаю, есть причина, по которой у вас есть 20 (в основном) неиспользуемых пространств имен, объявленных в вашей таблице стилей, но это не очень хорошая практика. Вы не можете предположить, что их просто игнорируют.