2017-02-24 70 views
1

使用BaseX 8.6以下使用与地图作为第二个参数的serialize功能的正常工作:是否允许字符串值“yes/no”作为serialize函数indent参数的值?

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

,并输出缩进代码

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

然而,当我尝试运行相同代码与萨克森9.7或AltovaXML间谍他们不编译查询和抱怨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允许它的意义。

回答

2

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