是否"yes/no"允许字符串值作为序列化函数的缩进参数的值?



使用BaseX 8.6 以下使用serialize函数和 map 作为第二个参数可以正常工作:

serialize(<root><foo><bar>test</bar></foo></root>, map { 'indent' : 'yes'})

并输出缩进代码

<root>
<foo>
<bar>test</bar>
</foo>
</root>

但是,当我尝试使用 Saxon 9.7 或 AltovaXML Spy 运行相同的代码时,他们不会编译查询并抱怨map { 'indent' : 'yes'}不是布尔值而是字符串。 https://www.w3.org/TR/xpath-functions-31/#func-serialize 定义

indent  xs:boolean?     true() means "yes", false() means "no"

所以我不太确定这是否只允许布尔值,并且旨在解释其与yes/no的序列化值相关的含义,或者是否也意味着允许使用yesno

在 BaseX 中,map 参数是在集成到 XQFO 3.1 规范之前添加的。当时,最明显的选择是在查询 prolog 中使用输出声明的语法(其中只有字符串可用于序列化参数的值)。新的官方语法将在BaseX的未来版本中提供。

最新更新