Допустимо ли строковое значение "да / нет" в качестве значения параметра indent функции serialize?

Используя 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/ определяет

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

поэтому я не совсем уверен, допускает ли это только логическое значение и предназначено для объяснения его значения по отношению к значениям сериализации yes/no или это также означает использование yes или же no позволено.

1 ответ

Решение

В BaseX аргумент карты был добавлен до его интеграции в спецификацию XQFO 3.1. Тогда самым очевидным выбором было использование синтаксиса для объявлений вывода в прологе запроса (в котором для значений параметров сериализации могут использоваться только строки). - Новый официальный синтаксис будет доступен в будущей версии BaseX.

Другие вопросы по тегам