Re: [xsl] Controlling process flow in a stylesheet?

Subject: Re: [xsl] Controlling process flow in a stylesheet?
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 21 Aug 2014 21:30:18 -0000
I thought of doing it that way, and I often do it that way, but the function
call (a) adds a little bit of abstraction, and (b) can handle the case where
there are several A (or B etc) children.

Michael Kay
Saxonica
mike@xxxxxxxxxxxx
+44 (0) 118 946 5893




On 21 Aug 2014, at 19:53, Michael M|ller-Hillebrand mmh@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> Am 21.08.2014 um 19:59 schrieb Michael Kay:
>
>> If the parent has a content model A, B, C, D, and any of the four might be
absent, then you could try doing
>>
>> <xsl:apply-templates select="optional(A, $A), optional(B, $B), optional(C,
$C), optional(D, $D)"/>
>>
>> where optional(X, Y) is a function that selects X if present or Y
otherwise, and $A, $B etc are global variables containing default elements of
each type (or some other marker to indicate that the element is absent).
>
> Can the function be avoided by writing
>
> <xsl:apply-templates select="(A, $A)[1], (B, $B)[1], (C, $C)[1], (D,
$D)[1]"/>
>
> This method was mentioned earlier in this list and I used it since several
times as a method to handle default values.
>
> - Michael

Current Thread