Он не протекает, он делает то, о чем вы его просили.
Каждый нефиксированный тег в файле XSL находится в пространстве имен http://www.w3.org/TR/xhtml1/strict
(именно это означает привязка xmlns="..."
).Не забывайте, что XSL-файл по своей сути является XML-файлом и анализируется, как и любой другой XML-файл.
Но поскольку ваш XSL-шаблон объявляет, что эти теги должны быть помещены в вывод, ваш выводтеги тоже будут в том же пространстве имен.Опять же, это не должно удивлять, так как полное имя тега составлено из пространства имен и локального имени.
Таким образом, процессор XSLT должен связать это пространство имен с префиксом, чтобы получить правильныйвывод, и вот что вы видите здесь.(Он был привязан к пустому префиксу или пространству имен по умолчанию, но теоретически это мог быть любой другой префикс, вывод будет означать точно такой же.)
Решение состоит в том, чтобы просто удалить эту привязку пространства имен из вашегоXSL или измените его на любое пространство имен, в котором вы хотите, чтобы ваш вывод находился.