On 6/1/06, Mukul Gandhi <gandhi(_dot_)mukul(_at_)gmail(_dot_)com> wrote:
On 6/1/06, Phillip B Oldham <phillip(_dot_)oldham(_at_)kilo75(_dot_)com> wrote:
> Though, thinking about it, I suppose I could do something like the
> following (thanks *Andrew*):
>
> <xsl:template match="/subscriptions/item[renewaldate]">
> <p>Your renewal date for <xsl:value-of select="subscriptionname" /> is:
> <xsl:value-of select="renewaldate" />.</p>
> </xsl:template>
>
> <xsl:template match="/subscriptions/item[not(renewaldate)]">
> <p>Sorry, there has been an error...</p>
> </xsl:template>
>
> Feels weird though, because actions for the same element aren't being
> kept "together" (within the same template), but it does look more useful
> than a return.
I think, you can write
<xsl:template match="/subscriptions/item">
<xsl:choose>
<xsl:when test="renewaldate">
<p>Your renewal date for <xsl:value-of select="subscriptionname" /> is:
<xsl:value-of select="renewaldate" />.</p>
</xsl:when>
<xsl:otherwise>
<p>Sorry, there has been an error...</p>
</xsl:otherwise>
</xsl:template>
You could, but one of the great benefits of keeping everything in
individual templates is that you could then override a template with
an importing stylesheet.
For example, if you had the requirement to alter the error message for
a particular customer, all you would need to do is create a new
stylesheet that imports the existing stylesheet:
<xsl:stylesheet ...>
<xsl:import href="main.xslt"/>
<xsl:template match="/subscriptions/item[not(renewaldate)]">
<p> Customer specific error message </p>
</xsl:template>
</xsl:stylesheet>
You wouldnt have to touch the existing code which means you wouldn't
risk breaking anything for existing customers, wouldn't have to
re-test everything etc.
This, I think, is another good design rule: when a template contains a
choose/when as its only child, separate it out into individual
templates.
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--