在通过 REST 调用的 BaseX 导出中包括 XML 声明

including XML declaration in BaseX export called over REST

几个月来我一直在使用 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 声明。我尝试将 omit-xml-declaration 选项设置为 "no",但我想我没有正确设置。当我尝试从指定该选项的 BaseX GUI 导出时它工作正常,但我想通过 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 声明。

输出序列化选项

一般来说,声明输出序列化参数有两种选择(我简化了查询):

导出序列化选项

问题是它们都设置了输出序列化选项。您需要改为更改 export 选项,如 described in the documentation。查询

db:export("foo", "/tmp", map { 'omit-xml-declaration': 'no' })

使用 REST 调用

http://localhost:8984/rest?query=db:export(%22foo%22,%20%22/tmp%22,%20map%20{%20%27omit-xml-declaration%27:%20%27no%27%20})