在通过 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 声明。
输出序列化选项
一般来说,声明输出序列化参数有两种选择(我简化了查询):
在查询序言中 (declare option output:omit-xml-declaration "no";
):
作为您已经尝试过的 REST GET(或 POST)参数:
http://localhost:8984/rest?query=%3Cfoo/%3E&omit-xml-declaration=yes
导出序列化选项
问题是它们都设置了输出序列化选项。您需要改为更改 export 选项,如 described in the documentation。查询
db:export("foo", "/tmp", map { 'omit-xml-declaration': 'no' })
使用 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 声明。
输出序列化选项
一般来说,声明输出序列化参数有两种选择(我简化了查询):
在查询序言中 (
declare option output:omit-xml-declaration "no";
):作为您已经尝试过的 REST GET(或 POST)参数:
http://localhost:8984/rest?query=%3Cfoo/%3E&omit-xml-declaration=yes
导出序列化选项
问题是它们都设置了输出序列化选项。您需要改为更改 export 选项,如 described in the documentation。查询
db:export("foo", "/tmp", map { 'omit-xml-declaration': 'no' })
使用 REST 调用