xsl-list
[Top] [All Lists]

Re: [xsl] Map construction

2019-04-18 04:22:01
Oh ! Thanks a lot !

I've missed this, I had only the xpath constructions in mind.

Best regards,
Christophe

Le 18/04/2019 à 10:28, Michael Kay mike(_at_)saxonica(_dot_)com a écrit :
Alernatively, use the xsl:map and xsl:map-entry instructions. Unlike map:merge 
this doesn't allow any control over handling of duplicates (though we're adding 
that as a Saxon extension in the next release).

<xsl:variable name="myMap" as="map(xs:string,xs:string+)">
         <xsl:map>
     <xsl:map:entry key="'key1'" select="'val11','val12'"/>
etc

Michael Kay

On 18 Apr 2019, at 09:12, John Lumley john(_at_)saxonica(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

On 18/04/2019 09:06, Christophe Marchand cmarchand(_at_)oxiane(_dot_)com wrote:
Hello,

is it legal to construct a map this way :

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

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(_at_)saxonica(_dot_)com <mailto:john(_at_)saxonica(_dot_)com>
on behalf of Saxonica Ltd



--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>