Re: [xsl] XSLT 4 xsl:with

Subject: Re: [xsl] XSLT 4 xsl:with
From: "Wendell Piez wapiez@xxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 19 May 2020 18:10:50 -0000
Hi,

Does anyone else find themselves doing

<xsl:for-each-group select="some-node" group-by="true()">
   .... inside I have current-group() ...
</xsl:for-each-group>

-- which has sometimes made me wonder if group-by="true()" might be a
default on for-each-group?

Or ... would <xsl:with>...</xsl:with> or <xsl:for>...</xsl:for> or
<xsl:at>...</xsl:at> be a serviceable and better way to do this as
well?

I'm not hating the @context-item idea either, although I am wondering
about the plural case (or rather, the case of the plural number).

Cheers, Wendell

On Tue, May 19, 2020 at 1:55 PM Imsieke, Gerrit, le-tex
gerrit.imsieke@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
wrote:
>
> Of course such an xsl:with instruction won't be penalized by HOAXCoQS
> [1], unlike xsl:for-each, which reeks of XSLT 1 habits most of the time.
> xsl:with won't get brownie points though; I'd consider it "neutral".
>
> But read my previous messages in this thread. Instead of xsl:with I
> propose to use a @context-item attribute (an @xsl:context-item attribute
> on non-xsl elements). If you really need the kind of wrapper that
> xsl:with provides, you can still write
>
> <xsl:sequence context-item="$context">
>    <xsl:variable .../><!-- @select evaluated in the context of $context -->
>    <foo>...</foo><!-- any expression within is also evaluated in the
> context of $context -->
>    <bar>...</bar>
> </xsl:sequence>
>
> but most of the time the XSLT code will become more compact because the
> context can be set by an attribute on almost any element, not with an
> instruction.
>
> -- Gerrit
>
> [1] https://github.com/sydb/HOAXCoQS
>
> On 19.05.2020 19:14, Pieter Lamers pieter.lamers@xxxxxxxxxxxx wrote:
> > I think <xsl:with select="..."> is an elegant rewrite of for-each. It
> > does make me wonder whether it would earn brownie points or penalties in
> > Gerrit's highly opiniated book.
> >
> >
> > On 19/05/2020 18:52, Liam R. E. Quin liam@xxxxxxxxxxxxxxxx wrote:
> >> On Tue, 2020-05-19 at 08:54 +0000, Pieter Masereeuw pieter@xxxxxxxxxxxx
> >>> Because such a for-each does not repeat, I always add a comment like
> >>> <!-- Merely sets the context, does not repeat -->.
> >> I tend to comment these too, although not with the repeat part - be
> >> careful, too, as in English a less-informed reader might get an
> >> incorrect impression reinforced that for-each is a loop, rather than a
> >> mapping operator.
> >>
> >> Yes, an xsl:with-context-item select=.... would be clearer. Wkether
> >> it's worth increasing the size of the language for it is a judgment
> >> call that's a little harder, i think.
> >>
> >> Best,
> >>
> >> Liam
> >>
> 



-- 
...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez... ...gitlab.coko.foundation/wendell...

Current Thread