这一定是个菜鸟问题,因为我刚开始使用 XQuery。我成功地为运行 XSL 转换的 eXist 构建了一个简单的 XQuery。但是我在为 Saxon (9.9.1.5J) 构建一个运行 XSL 转换的类似 XQuery 方面没有成功。
为 eXist 工作的 XQuery:
xquery version "3.0";
transform:transform(doc("sample.xml"), doc("sample.xsl"), ())
Saxon 的 XQuery 失败:
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() 的选项构建地图的简单内容。