Re: [xsl] proposed on-no-match="shallow-copy-all"

Subject: Re: [xsl] proposed on-no-match="shallow-copy-all"
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 4 Aug 2022 20:38:11 -0000
> Yes, need you to flesh out
>
>   on-no-match="shallow-copy-all"
>
> of
>
https://balisage.net/Proceedings/vol27/html/Kay01/BalisageVol27-Kay01.html#d1
0153e637
> instead, the paper says
>
> For arrays, it does
>
> <xsl:apply-templates select="array:parcels(.)" mode="#current"/>
>
> that is, it wraps each of the array members into a parcel and processes
> each one separately.
>
> For maps, it does:
>
> <xsl:apply-templates select="map:entries()" mode="#current"/>
>
>
It actually does something akin to

<xsl:array>
  <xsl:apply-templates select="array:parcels(.)" mode="#current"/>
</xsl:array>

or

<xsl:map>
  <xsl:apply-templates select="map:entries()" mode="#current"/>
</xsl:map>

There's a lot of detail to be fleshed out in turning the sketch given in the
paper into a full specification. But thanks for the comment,

>
> Is <xsl:mode on-no-match="shallow-copy-all"/> behaviour definable with
> current or future XSLT elements?

Probably, but it would be pretty convoluted. These constructs take the
solutions to my XML Prague 2016 use cases from 100-200 lines of XSLT 3.0 code
down to 10-20 lines.

Michael Kay
Saxonica

Current Thread