Database 在称为overrest的BaseX导出中包含XML声明

Database 在称为overrest的BaseX导出中包含XML声明,database,rest,xquery,basex,xml-declaration,Database,Rest,Xquery,Basex,Xml Declaration,几个月来,我一直在使用BaseX和REST来处理一些XML文件。到目前为止,我一直在使用以下查询导出我的文件: db:export(',char(39),dbName,char(39),',',char(34),'path',char(34),') 如果这令人困惑,那只是因为我展示了它是如何构造的,实际调用看起来像: http://localhost:8984/rest?query=db%3Aexport%28%27dbName%27%2C%22C%3A%5CUsers%5Cdak52%5CD

几个月来,我一直在使用BaseX和REST来处理一些XML文件。到目前为止,我一直在使用以下查询导出我的文件:

db:export(',char(39),dbName,char(39),',',char(34),'path',char(34),')
如果这令人困惑,那只是因为我展示了它是如何构造的,实际调用看起来像:

http://localhost:8984/rest?query=db%3Aexport%28%27dbName%27%2C%22C%3A%5CUsers%5Cdak52%5CDocuments%5Cfolder%22%29
无论如何,这很好,但我想在输出中包含XML声明。我曾尝试将
省略xml声明
选项设置为“否”,但我想我做得不对。当我尝试从指定该选项的BaseXGUI导出时,它工作得很好,但我想通过REST来完成这一切,这就是我遇到的问题所在。下面是我的查询,包括选项

http://localhost:8984/rest?query=db%3Aexport%28%27dbName%27%2C%22C%3A%5CUsers%5Cdak52%5CDocuments%5Cfolder%22%29&omit-xml-declaration=no
这将运行并生成输出,但此输出不包括我的xml声明。

输出序列化选项 通常,有两个选项用于声明输出序列化参数(我简化了查询):

  • 在查询序言中(
    声明选项输出:省略xml声明“否”
    ):

  • 作为您已经尝试过的REST GET(或POST)参数:

导出序列化选项 问题是这两个选项都设置了输出序列化选项。您需要更改导出选项,如下所示。询问

db:export("foo", "/tmp", map { 'omit-xml-declaration': 'no' })
用剩下的电话


非常感谢您的帮助和对我原始问题的编辑。快速跟进:您知道是否可以在声明之后插入换行符,以便下一个元素出现在xml声明下面的行上吗?如果没有,不用担心。再次感谢@Jens EratI今天与BaseX项目负责人进行了交谈,这是一次非常愉快的谈话。如果您对更新感兴趣,请关注此问题。