Re: [xsl] Map construction

Subject: Re: [xsl] Map construction
From: "John Lumley john@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 18 Apr 2019 08:11:52 -0000
On 18/04/2019 09:06, Christophe Marchand cmarchand@xxxxxxxxxx wrote:

is it legal to construct a map this way :

<xsl:variable name="myMap" as="map(xs:string,xs:string+)">
B  <xsl:sequence select="map:entry('key1', ('val11','val12'))"/>
B  <xsl:sequence select="map:entry('key2', ('val21','val22'))"/>

Or should I construct a sequence of map:entry, and then apply map:merge on that sequence ?

You should use map:merge(map(*)*) on a sequence of maps - map:entry() produces a single entry map. $myMap as written has type map(*)+ - a sequence of single-entry maps. Use the $options second argument of map:merge() to control behaviour when duplicate keys are detected...

Thanks in advance, Christophe

*John Lumley* MA PhD CEng FIEE
john@xxxxxxxxxxxx <mailto:john@xxxxxxxxxxxx>
on behalf of Saxonica Ltd

Current Thread