I am struggling to use the "serialize" XPath 3.1 function as specified by the W3C with BaseX 9.1.2:
1) Is there any way to provide the "use-character-maps" parameter supplied the XPath 3.1 way with a second argument to "serialize" as a map: serialize("a,b", map { 'method' : 'text', 'use-character-maps' : map { "'" : "'" }})
I get an error saying [SEPM0017] Invalid 'use-character-maps' value 'map { "'": "'" }'; must be a string.
2) When I try the XPath 3.0 way of providing the serialization parameters as an XML element I also get an error:
When I run
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method "text";
serialize( ( <text>'</text>, "'", map { "Ä":"'C4", "Ö":"'D6", "Ü":"'DC", "ß":"'DF", "ä":"'E4", "ö":"'F6", "ü":"'FC" } ), output:serialization-parameters xmlns:output="http://www.w3.org/2010/xslt-xquery-serialization" <output:method value="adaptive"/> output:use-character-maps <output:character-map character="'" map-string="&apos;"/> </output:use-character-maps> </output:serialization-parameters> )
in BaseX it tells me [SEPM0017] Character map 'character-map=,' is not defined.
Saxon 9.9 and Altova 2018 run that example without giving an error (although not with the same serialization result, but that is a different issue).