Вы можете узнать, какая версия Saxon находится в определенном JAR-файле, выполнив
java -cp saxon.jar net.sf.saxon.Version
и это было бы намного полезнее, чем просто сообщить нам, откуда вы его установили.
Сообщение об ошибке подсказывает мне, что используемая «таблица стилей» на самом деле вовсе не таблица стилей, а обычный документ XML. (Саксон видит, что корневой элемент не является xsl:stylesheet
, поэтому он решает, что это должна быть упрощенная таблица стилей; затем он ищет атрибут xsl:version
, находит, что его нет, и жалуется).
Я не знаю точно, что здесь не так, но приложение использует вызов Saxon, который работает с одним выпуском и не работает с другим. За 20 лет жизни Саксона не было много несовместимых изменений в интерфейсе командной строки, но их было несколько, и я подозреваю, что одна из этих саксонских версий действительно очень старая.
второстепенный
Есть еще одна подсказка, которую я пропустил при первом чтении: сообщение об ошибке относится к файлу с именем 2.xsl
. Из предоставленной информации мы не видим, что такое 2.xsl
. Это должен быть файл, который выглядит как таблица стилей, но не ... Но почему у него другое имя? Несомненно, тот факт, что у вашего файла есть конец начального тега в строке 19, как и у этого загадочного файла, выглядит значительным. Возможно, есть какой-то сценарий, который выполняется до того, как Saxon действительно будет вызван, и который создает 2.xsl
?