When I try
serialize("This is a test with a slash / Test.", map { 'method' : 'json', 'use-character-maps' : map { '/' : '/'}})
with BaseX 8.6.4 is indicates an error [SEPM0017] Invalid 'use-character-maps' value 'map { "/": "/" }'; must be a string.
However, the W3C spec https://www.w3.org/TR/xpath-functions-31/#func-serialize suggests the syntax is use-character-maps map(xs:string, xs:string)? with "For the use-character-maps option, the value is a map, whose keys are the characters to be mapped (as xs:string instances), and whose corresponding values are the strings to be substituted for these characters.".
So it seems BaseX is not implementing the finalized spec here.
Hi Martin,
So it seems BaseX is not implementing the finalized spec here.
Exactly. We had implemented the current solution before the map argument was added as in the official specification. Back then, I motivated that a map argument would be a reasonable extension to the XQFO spec. I was proposing the same syntax as for the output declaration in the prolog (the one that is currently available in BaseX), and Michael Kay decided to go for a more comprehensive solution that still needs to be implemented in BaseX.
Hope this helps, Christian
On Sun, Jun 18, 2017 at 3:31 PM, Martin Honnen martin.honnen@gmx.de wrote:
When I try
serialize("This is a test with a slash / Test.", map { 'method' : 'json', 'use-character-maps' : map { '/' : '/'}})
with BaseX 8.6.4 is indicates an error [SEPM0017] Invalid 'use-character-maps' value 'map { "/": "/" }'; must be a string.
However, the W3C spec https://www.w3.org/TR/xpath-functions-31/#func-serialize suggests the syntax is use-character-maps map(xs:string, xs:string)? with "For the use-character-maps option, the value is a map, whose keys are the characters to be mapped (as xs:string instances), and whose corresponding values are the strings to be substituted for these characters.".
basex-talk@mailman.uni-konstanz.de