是否允许字符串值 "yes/no" 作为序列化函数的缩进参数的值?
Is a string value "yes/no" allowed as value for the indent parameter of the serialize function?
使用 BaseX 8.6,以下使用带有地图作为第二个参数的 serialize
函数效果很好:
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
是允许的。
在 BaseX 中,map 参数是在集成到 XQFO 3.1 规范之前添加的。当时,最明显的选择是在查询序言中使用输出声明语法(其中只能使用字符串作为序列化参数的值)。 – 新的官方语法将在未来版本的 BaseX 中提供。
使用 BaseX 8.6,以下使用带有地图作为第二个参数的 serialize
函数效果很好:
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
是允许的。
在 BaseX 中,map 参数是在集成到 XQFO 3.1 规范之前添加的。当时,最明显的选择是在查询序言中使用输出声明语法(其中只能使用字符串作为序列化参数的值)。 – 新的官方语法将在未来版本的 BaseX 中提供。