Subject: Re: [xsl] XSLT 4: xsl:template/@select From: "Alan Painter alan.painter@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Tue, 19 May 2020 07:57:52 -0000 |
I hadn't realized that it was possible to include template parameters as part of the template match rule. That would definitely simplify some things that I was doing recently where I was matching more general cases and then, upon checking against the template parameter, I would call "xsl:next-match" to choose the next-in-line template. Excellent, I'll go back and give that a shot. Thanks for the excellent tip. On Tue, May 19, 2020 at 3:21 AM BR Chrisman brchrisman@xxxxxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > ohhh xsl:mode enclosing templates.. I use that a lot in generated > stylesheets... it just makes so much sense.... looking forward to > that! > > On Mon, May 18, 2020 at 11:52 AM Graydon graydon@xxxxxxxxx > <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > > > On Mon, May 18, 2020 at 05:04:12PM -0000, Michael Kay mike@xxxxxxxxxxxx > scripsit: > > > I didn't want to create messy scoping rules for variables, e.g. > > > > > > <xsl:template match="type(xs:integer)" mode="increment" select=".+1"/> > > > > > > is fine, but > > > > > > <xsl:template match="type(xs:integer)" mode="increment" > select=".+$delta"> > > > <xsl:param name="delta" as="xs:integer"/> > > > </xsl:template> > > > > > > feels a bit weird. > > > > I can't speak to feel at all, and I have no knowledge of how difficult > > it makes the scoping rules to implement, but that second example is to > > me obviously ever so much more useful. It implies one could do things > > like perform a simple numbering pass and then have one template that > > went through and attached all the appropriate names -- part, chapter, > > section, etc. -- on a second pass by matching the numbers, with the text > > provided by parameter. > > > > > We had similar issues with xsl:iterate - the reason xsl:on-completion > comes first is to avoid creating custom rules for variable scoping. > > > > > > Using params in match patterns gets even more interesting - useful, > but hairy: > > > > > > <xsl:template match="para[@class=$class]"> > > > <xsl:param name="class"/> > > > ... > > > </xsl:template> > > > > I cannot tell you how many times I have wanted to be able to do that. > > > > There's -- I think there is -- an appropriate caution with template > > predicates so that you have templates to match every possible, rather > > than every expected, case. Being able to stuff all of that logic into > > whatever singular thing assigns the value to $class, rather than > > distributing it over a bunch of templates' individual predicates, would > > be extremely helpful. > > > > (And yes it starts to be a special case of XPath macros, but I would > > like those, too.) > > > > -- > > 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: xsl:template/@sel, BR Chrisman brchrism | Thread | Re: [xsl] XSLT 4: xsl:template/@sel, Michael Kay mike@xxx |
[xsl] XSLT 4: couldn't xsl:mode hav, Martin Honnen martin | Date | Re: [xsl] XSLT 4: couldn't xsl:mode, Michael Kay mike@xxx |
Month |