Сбой запроса из-за динамической ошибки: невозможно сериализовать карту с помощью этого метода вывода

Это должна быть проблема новичков, так как я только начинаю с XQuery. Мне удалось создать простой XQuery для eXist, который выполняет преобразование XSL. Но мне не удалось создать аналогичный XQuery для Saxon (9.9.1.5J), который запускает преобразование XSL.

Рабочий XQuery для eXist:

xquery version "3.0";
transform:transform(doc("sample.xml"), doc("sample.xsl"), ())

Ошибка XQuery для Saxon:

xquery version "3.1";
transform(map{'source-node': doc('sample.xml'),'stylesheet-node':doc('sample.xsl')})

Ошибка, о которой сообщает Saxon:

Сбой запроса из-за динамической ошибки: невозможно сериализовать карту с помощью этого метода вывода

Я искал эту ошибку в Google и SO, но ничего не нашел. Я пробовал это с объявлением вывода и без него, а также с объявлением вывода в XSL и без него. Я пробовал это с помощью fn: transform () и transform (). Я также добавил объявление для пространства имен fn. Преобразование работает из командной строки Saxon и из eXist. Поэтому мне, должно быть, не хватает чего-то простого в построении карты для параметров fn: transform ().


person lschult2    schedule 03.05.2020    source источник


Ответы (1)


Результатом функции fn: transform () является карта, и похоже, что вы выполняете запрос таким образом, чтобы результат запроса сериализовался с использованием метода вывода XML по умолчанию. Попытка сериализовать карту с помощью метода вывода XML не удастся.

В зависимости от того, чего именно вы хотите достичь, вы можете сделать несколько вещей. Самым простым решением может быть изменение текста запроса на

transform(map{'source-node': doc('sample.xml'),'stylesheet-node':doc('sample.xsl')}) 
   ? output

в этом случае результат будет основным документом результата преобразования, который, вероятно, вас больше всего интересует.

person Michael Kay    schedule 03.05.2020
comment
Вот и все. Я не понимал, что это возвращала карту. Я знал, что мне не хватает чего-то простого. Спасибо, Майкл. - person lschult2; 04.05.2020