撒克逊-EE 地图的命名空间
Namespace for map in Saxon-EE
我正在尝试 运行 撒克逊语中的以下代码
map:merge(for $mov in doc("movies.xml")/movies/movie return map:entry($mov/@id, avg($mov/ratings/child::node())))
但是,我收到如下错误:
XPST0081: Namespace prefix 'map' has not been declared
我认为我需要在查询开始时设置命名空间。
所以我搜索了一下,找到了答案here并修改了我的代码如下:
import module namespace map="http://www.w3.org/2005/xpath-functions/map";
map:merge(for $mov in doc("movies.xml")/movies/movie return map:entry($mov/@id, avg($mov/ratings/child::node())))
我收到另一个错误:XQST0059: Cannot locate module for namespace http://www.w3.org/2005/xpath-functions/map
我必须使用什么命名空间?
更新
我尝试了新密码
declare namespace map = "http://www.w3.org/2005/xpath-functions/map";
map:merge(for $mov in doc("movies.xml")/movies/movie return map:entry($mov/@id, avg($mov/ratings/child::node())))
并使用了以下命令
java -cp saxon9ee.jar net.sf.saxon.Query -qversion:3.1 -o:out mapq.xq
我得到一个新的错误如下
Error on line 2 at column 28 of file:mapq.xq
Cannot serialize a map using the xml method
Query failed with dynamic error: Cannot serialize a map using the xml method
使用declare namespace map = "http://www.w3.org/2005/xpath-functions/map";
。另外注意,直接输出一张图需要输出方式adaptive
(!method=apaptive
)或者json
我觉得。
作为替代方案,根据 Christian Grün 的评论,使用序言
declare namespace map = "http://www.w3.org/2005/xpath-functions/map";
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method "adaptive";
我正在尝试 运行 撒克逊语中的以下代码
map:merge(for $mov in doc("movies.xml")/movies/movie return map:entry($mov/@id, avg($mov/ratings/child::node())))
但是,我收到如下错误:
XPST0081: Namespace prefix 'map' has not been declared
我认为我需要在查询开始时设置命名空间。
所以我搜索了一下,找到了答案here并修改了我的代码如下:
import module namespace map="http://www.w3.org/2005/xpath-functions/map";
map:merge(for $mov in doc("movies.xml")/movies/movie return map:entry($mov/@id, avg($mov/ratings/child::node())))
我收到另一个错误:XQST0059: Cannot locate module for namespace http://www.w3.org/2005/xpath-functions/map
我必须使用什么命名空间?
更新
我尝试了新密码
declare namespace map = "http://www.w3.org/2005/xpath-functions/map";
map:merge(for $mov in doc("movies.xml")/movies/movie return map:entry($mov/@id, avg($mov/ratings/child::node())))
并使用了以下命令
java -cp saxon9ee.jar net.sf.saxon.Query -qversion:3.1 -o:out mapq.xq
我得到一个新的错误如下
Error on line 2 at column 28 of file:mapq.xq
Cannot serialize a map using the xml method
Query failed with dynamic error: Cannot serialize a map using the xml method
使用declare namespace map = "http://www.w3.org/2005/xpath-functions/map";
。另外注意,直接输出一张图需要输出方式adaptive
(!method=apaptive
)或者json
我觉得。
作为替代方案,根据 Christian Grün 的评论,使用序言
declare namespace map = "http://www.w3.org/2005/xpath-functions/map";
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method "adaptive";