[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XSLT 4: map serialization
In Saxon 10 there is an extension function saxon:new-element(). https://www.saxonica.com/documentation/index.html#!functions/saxon/new-elemen t On Wed, Nov 25, 2020 at 3:04 AM Graydon graydon@xxxxxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > So if I have a sequence of maps, such as one gets from using collection() > with the metadata flag set in Saxon, and I want to serialize the result > just to see what is in there, I'd like to be able to use: > > <xsl:sequence select="$fileArchive ! > map:for-each(.,function($k,$v){element{$k}{$v}})" /> > > This isn't allowed, because map:for-each() takes an XPath function, rather > than an XQuery function, so it hasn't got access to element constructors. > > <xsl:for-each select="$fileArchive"> > <xsl:variable as="map(*)" name="currentEntry" select="." /> > <entry> > <xsl:for-each select="map:keys($currentEntry)[not(. eq 'fetch')]"> > <xsl:element name="{.}"> > <xsl:sequence select="$currentEntry(.)" /> > </xsl:element> > </xsl:for-each> > </entry> > </xsl:for-each> > > works fine, but I can't help but feel that it lacks elegance of > expression compared to the map:for-each() construction. > > Allowing XQuery anonymous functions would be a large change, but at least > in the map serialization case[1] I have trouble thinking of a better > option. XQuery functions are at least already well-defined. > > [1] I cannot tell you how much I want to be able to pass parameters to a > functioned returned from a map of function items and have that function > return elements for applying-a-style purposes, e.g. > > <xsl:sequence > select="$stylesMap($styleTypeName)($stylePropertiesMap($styleName))" /> > > -- > Graydon Saunders | graydonish@xxxxxxxxx > CC&s oferC)ode, C0isses swC! mC&g. > -- Deor ("That passed, so may this.")
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|