2017-02-24 67 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中提供。