在使用Saxon 9.7.0.19的XQuery 3.1中尝试序列化为JSON时出错

在使用Saxon 9.7.0.19的XQuery 3.1中尝试序列化为JSON时出错,json,xquery,saxon,xquery-3.0,oxygenxml,Json,Xquery,Saxon,Xquery 3.0,Oxygenxml,我试图在Priscilla Walmsley的文章中运行示例24-12 xquery版本“3.1”; 声明命名空间输出=”http://www.w3.org/2010/xslt-xquery-serialization"; 声明选项输出:方法“json”; 声明选项输出:缩进“是”; 地图{ “数字”:557, “道具”: 31 } 我收到错误“无法将地图添加到树”。为什么这不起作用?是否存在配置问题 我在XML编辑器版本19.1中运行这个 这可能是氧气的问题,当我直接用Saxon 9.8尝

我试图在Priscilla Walmsley的文章中运行示例24-12

xquery版本“3.1”;
声明命名空间输出=”http://www.w3.org/2010/xslt-xquery-serialization"; 
声明选项输出:方法“json”;
声明选项输出:缩进“是”;
地图{
“数字”:557,
“道具”:
31
}
我收到错误“无法将地图添加到树”。为什么这不起作用?是否存在配置问题


我在XML编辑器版本19.1中运行这个

这可能是氧气的问题,当我直接用Saxon 9.8尝试您的代码时,它不会给出任何错误消息,而是输出JSON。我不确定oXygen是否能够完成创建和显示XSLT/XPath/XQuery 3分别引入的各种新格式的任务。3.1我认为,使用oXygen,如果您将XQuery转换场景的输出选项设置为“在编辑器中打开”,那么它至少会在编辑器窗格中显示结果,而不是给出结果那个错误信息。在通常的输出窗口中,他们似乎试图将其序列化为XML,而您的查询结果不适合这种方法。谢谢我确实知道,当我通过oXygen在MarkLogic中运行XQuery代码时,它会显示为JSON。是的,这是一个配置问题。我不知道这在氧气中是如何运行的,但很明显,应用程序运行查询的方式是将结果序列化为XML,这是失败的。一个答案是使用fn:serialize函数在查询本身中调用序列化。在进行了一点调查之后,回到这个问题上来,如果您编辑了您正在使用的XQuery转换场景,那么在“输出”选项卡中,您应该取消选中“作为序列呈现”checbox as oxy(使用Saxon“net.sf.Saxon.event.TreeReceiver”下面)无法将地图显示为树状序列。我们将看看我们能做些什么。这可能是氧气的问题,当我直接用Saxon 9.8尝试你的代码时,它不会给出任何错误消息,而是输出JSON。我不确定oXygen是否能够完成创建和显示XSLT/XPath/XQuery 3分别引入的各种新格式的任务。3.1我认为,使用oXygen,如果您将XQuery转换场景的输出选项设置为“在编辑器中打开”,那么它至少会在编辑器窗格中显示结果,而不是给出结果那个错误信息。在通常的输出窗口中,他们似乎试图将其序列化为XML,而您的查询结果不适合这种方法。谢谢我确实知道,当我通过oXygen在MarkLogic中运行XQuery代码时,它会显示为JSON。是的,这是一个配置问题。我不知道这在氧气中是如何运行的,但很明显,应用程序运行查询的方式是将结果序列化为XML,这是失败的。一个答案是使用fn:serialize函数在查询本身中调用序列化。在进行了一点调查之后,回到这个问题上来,如果您编辑了您正在使用的XQuery转换场景,那么在“输出”选项卡中,您应该取消选中“作为序列呈现”checbox as oxy(使用Saxon“net.sf.Saxon.event.TreeReceiver”下面)无法将地图显示为树状序列。我们看看能做些什么。
xquery version "3.1";
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization"; 
declare option output:method "json";
declare option output:indent "yes";
map {
   "number": 557,
   "props":
     <props>
       <length>31</length>
     </props>
}