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).