RE: RE: Re: [xsl] apply-templates and predicates

Subject: RE: RE: Re: [xsl] apply-templates and predicates
From: cknell@xxxxxxxxxx
Date: Thu, 28 Apr 2005 10:17:02 -0400
At the risk of sounding foolish again, I've implemented the logic to apply templates to the children of those elements that don't have matching templates in the stylesheet (unrecognized elements). It does output a message for each unrecognized element encountered. But it also outputs the text value of the unrecognized elements.

I had the impression that since the unrecognized elements where matched by <xsl:template match="*"> that the default template would not be invoked as it appears to have been. Would someone be kind enough to enlighten me on this?
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     cknell@xxxxxxxxxx
Sent:     Thu, 28 Apr 2005 10:08:20 -0400
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  RE: Re: [xsl] apply-templates and predicates

To quote that great American philosopher Homer Simpson, "Doh!"
Thanks for pointing out the obvious error of my attempt. I should have seen it myself.
-- 
Charles Knell
cknell@xxxxxxxxxx - email



-----Original Message-----
From:     David Carlisle <davidc@xxxxxxxxx>
Sent:     Thu, 28 Apr 2005 15:04:17 +0100
To:       xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject:  Re: [xsl] apply-templates and predicates


  <xsl:template match="*">
    <xsl:message>unexpected element encountered: <xsl:value-of select="name()" /></xsl:message>
  </xsl:template>

as always, a match template only executes if you apply templates to a
matching node. that version makes a warning and doesn't process
children. If you want to process children then


  <xsl:template match="*">
    <xsl:message>unexpected element encountered: <xsl:value-of select="name()" /></xsl:message>
<xsl:apply-templates/>
  </xsl:template>


I use either form, depending. If I haven't got round to supporting
mathml yet I'd rather get one warning for each mathml:math element
at the top level of each expression in the document, I don't really want
to be told on every character of every expression that I haven't yet
supported mathml:mi, so I'd use the first form. In other cases, the
second form, processing children is more useful.

Other variants:


  <xsl:template match="*">
    <xsl:message>unexpected element encountered: <xsl:value-of select="name()" /></xsl:message>
    <div class="error">
   <span>unexpected element encountered: <xsl:value-of select="name()" /></span>
<xsl:apply-templates/>
  </div>
  </xsl:template>

so that you not only get a warning, but also a big red block of stuff in
the output.

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread