Subject: Re: [xsl] XSLT 4: map serialization From: "Willem Van Lishout willemvanlishout@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 25 Nov 2020 07:00:22 -0000 |
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.")
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT 4: map serialization, Michael Kay mike@xxx | Thread | Re: [xsl] XSLT 4: map serialization, Graydon graydon@xxxx |
Re: [xsl] XSLT 4: map serialization, Dimitre Novatchev dn | Date | Re: [xsl] Future of XSL 1.0 support, Michael Kay mike@xxx |
Month |