Subject: [xsl] Please help me understand maps From: "Costello, Roger L." <costello@xxxxxxxxx> Date: Wed, 14 Aug 2013 17:30:08 +0000 |
Hi Folks, My understanding of a map is that it is an object containing a bunch of key/value pairs. That seems pretty simple. In the XSLT 3.0 specification it has this example: <xsl:variable name="isbn-index" as="map(xs:string, element(book))" Okay, $isbn-index is that name of a map. The keys for that map must be strings and the value associated to each key must be a <book> element. Got it. Then the example assigns $isbn-index a value: select="map:new(for $b in //book return map{$b/isbn := $b})"/> Yikes! What is that? Let me try to parse it: Step 1. Create a new map. That's what "map:new(...)" does. Step 2. Loop through each <book> element. That's what "for $b in //book return ..." does. Step 3. For each <book> element create a map. That's what "map{$b/isbn := $b}" does. Huh? Step 1 creates a new map, so it should be assigned a bunch of key/value pairs, right? Step 3 is blasting it with a bunch of maps. Huh? Where are the new map's key/value pairs? I don't get it. Please help. Oh! Perhaps since each "inner map" object contains just one key/value pair, each inner map object gets "unwrapped" to yield its key/value pair to the "outer map" object. Ha! How do you like that theory? /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Format currency value, Michael Kay | Thread | Re: [xsl] Please help me understand, Michael Kay |
[xsl] Format currency value, Sujatha | Date | Re: [xsl] Format currency value, Michael Kay |
Month |