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="&amp;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).

Reply via email to