I'm new to XQuery/XPath/XSLT and MarkLogic, so it's totally possible that
I'm missing something basic :)

I would like to pass in a set of name/value pairs (i.e. a map) as a single
named parameter in an XSLT transformation. There could be zero or more
name/value pairs. Something similar to the following (XQuery comments would
need to be replaced) ...

<snip>
xquery version "1.0-ml";

let $items := map:map()
let $_ := map:put($items, "Car", "$5,300")
let $_ := map:put($items, "Boat", "$23,740")

let $params := map:map()
let $_ := map:put($params, "title", "Items sold")
let $_ := map:put($params, "items", $items)

let $xsl := <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
      xmlns:map="http://marklogic.com/xdmp/map";
      version="2.0">
    <xsl:param name="title"/>
    <xsl:param name="items" as="map:map"/>
    <xsl:template match="/">
       <Report>
         <title><xsl:value-of select="$title" /></title>
         (: for each entry in $items :)
           <Item>
             <Name>(: entry key :)</Name>
             <Value>(: entry value :)</Value>
           </Item>
         (: /////////////////////// :)
       </Report>
    </xsl:template>
  </xsl:stylesheet>

return
  xdmp:xslt-eval($xsl, document { <foo></foo> }, $params)
</snip>

Looking through the mailing list archive I see that a similar question was
asked: http://markmail.org/message/d6lj35jvtunnxdmt

Someone replied in the thread saying that "You could pass a map as the
value of any variable", but doesn't give the syntax.

Any guidance would be much appreciated.
-David
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to