This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Nestled <xsl:choose>


On Sat, 14 Jul 2001 17:53:47 +0100, Chris wrote:

>[snip]
>
>Just let xsl do it's job and let it go off and apply templates.
>Next you want to add templates that will only match the specific types of
>books you have in your library i.e.
>
><xsl:template match="book[@variant = 'Book' and @style = 'Fiction']">
>	<table cellspacing="4px">
>		<tr>  <td align="center" valign="middle" rowspan="7" width="120px">
>[snip]
>
>That gets rid of all those horrible xsl:choose and the despicable
>xsl:for-each you have liberaly scattered around.

All good advice.

>You probably want to add a default book template to catch any books that
>don't match your templates
>
><xsl:template match="book">
><b>Error Trapped Undefined Book Type</b>
></xsl:template>
>
>Put this before all the other book templates so that it only matches book
>types you don't have templates for. If you put it at the end it will match
>all book elements.
>
Slightly flawed (unless you are using the old MSMXL ??).  It doesn't
matter where you put this template, because the default priority for a
name pattern like 'book' is higher than for qualified patterns like
'book[@...]'.  But rather than rely on default priorities, a nice
trick I saw somewhere else (in schematron?) is to give this template a
priority of -1.  You are then guaranteed it will not be chosen in
preference to anything else, whatever the style of pattern.

Regards,
Trevor Nash
--
Traditional training & distance learning,
Consultancy by email

Melvaig Software Engineering Limited
voice:     +44 (0) 1445 771 271 
email:     tcn@melvaig.co.uk

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]