使用 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
或者它是否也意味着使用yes
或被no
允许。