[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] When to use conditional constructions?


Subject: Re: [xsl] When to use conditional constructions?
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Sun, 30 Mar 2014 11:58:46 -0700

John,

If the conditions can be expressed as mutually exclusive, order doesn't
matter.

If this isn't possible, simply use the 'priority' attribute on the
templates that implement what corresponds to the <xsl:when> elements,
so that template for the first <xsl:when> has the highest priority,
..., etc.

The template that corresponds to the <xsl:otherwise> element can
safely be given priority -999999999

 Cheers,
 Dimitre

On Sun, Mar 30, 2014 at 11:49 AM, John Lumley <john@xxxxxxxxxxxx> wrote:
>
> On 30 Mar 2014, at 18:28, Michael Kay <mike@xxxxxxxxxxxx> wrote:
>
>> I do have a strong preferance for multiple template rules over xsl:choose.
I think this is mainly because it makes it easier to evolve the code as it
develops over time. Though a strong downside is that it can be very hard for
the reader of the code to work out which templates are going to fire under
which circumstances.
>
> I've found that one of the benefits of using xsl:choose is that it keeps all
the 'cases' together in one coherent collection. It also has a well-defined
'priority order'. If you use multiple template rules they can end up scattered
and difficult to view as a complete set and priority can be somewhat awkward.
>
> For example one of my 'pagination' called templates contains an xsl:choose
with perhaps 15 cases (bpage-break?', 'content-fits?', 'can-be-broken?'....)
that would be much more tricky to prioritise as templates.
>
> Of course use of a unique mode with templates can help, but it would still
be nice to collect them all together into preferably a single XML node -
perhaps a package?
>
> John


Current Thread
Keywords
xml