Re: [xsl] Filtering, xslt 2.0

Subject: Re: [xsl] Filtering, xslt 2.0
From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 2 Nov 2022 16:00:50 -0000
On Wed, 2 Nov 2022 at 13:01, Dave Pawson dave.pawson@xxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> On Wed, 2 Nov 2022 at 12:34, David Carlisle d.p.carlisle@xxxxxxxxx
> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> >
> >
> >
> > On Wed, 2 Nov 2022 at 12:13, Dave Pawson dave.pawson@xxxxxxxxx <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> > You should use xs:string not xs:string* as if you passed in a sequence
> your later tokenize would fail.
> >
> > I'd do
> >
> > <xsl:param name="types" as="xs:string*"/>
> > <xsl:variable name="typesseq" as="xs:string*" select=" tokenize($types,
> ', *') />
>

spurious * sorry

  <xsl:param name="types" as="xs:string"/>
  <xsl:variable name="typesseq" as="xs:string*" select=" tokenize($types,
', *') />

which was my main point: your $types is a single string not a sequence of
strings, so as="xs:string" with no*

>
> > Then use the sequence explicitly rather than relying on the optimiser to
> avoid tokenizing on every use.
> >
> >
> >   <xsl:when test="type = $typesseq ">
> >
> > David
>
> Which seems to tokenize once rather than n times? Agreed more
> efficient (not a concern with my use)
> I don't understand
> select=" tokenize($types, ', *')
>
> The 'token' seems to be ,*
> where I tokenize on , only?
>
> Is that significant please?
>

as Martin says, that is a regex for comma followed by 0 or more spaces, to
allow types="a, b, c"  rather than just types="a,b,c"


> > Being v.suspicious of David



That is not how you spell "trusting"

David

Current Thread