如何通过命令行正确调用Saxon执行XQuery Update?
正确调用Saxon执行XQuery Update的方式
你遇到的错误是因为用错了命令行入口类:你调用的是net.sf.saxon.Transform(这是Saxon的XSLT转换主类),但-update是XQuery命令行的专属选项,XSLT入口不识别这个参数。
要执行XQuery Update,需要使用Saxon的XQuery主类net.sf.saxon.Query,同时确保你使用的是Saxon-EE(企业版)(因为Update功能仅在EE版本中提供)。
正确的命令格式示例:
java -classpath %CLASSPATH% net.sf.saxon.Query -update:on -tree:linked -q:your-update-query.xq -s:example.xml -o:out.xml
参数说明:
-update:on:启用XQuery Update功能(仅Saxon-EE支持)-tree:linked:指定使用Linked Tree模型,确保更新操作能正常执行-q:your-update-query.xq:指定你的XQuery Update脚本文件路径-s:example.xml:指定要更新的输入XML文档-o:out.xml:指定更新后的输出文件路径
另外需要注意:
- 必须确保你的CLASSPATH中包含Saxon-EE的jar包(而非HE或PE版本)
- XQuery Update脚本需要符合XQuery Update Facility规范,包含
insert、delete、replace等更新操作语句
内容的提问来源于stack exchange,提问作者Roger Costello
相关产品推荐
相关产品推荐

