xsl-list
[Top] [All Lists]

RE: RE: Re: apply-templates and predicates

2005-04-28 07:17:02
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(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     cknell(_at_)onebox(_dot_)com
Sent:     Thu, 28 Apr 2005 10:08:20 -0400
To:       xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>
Sent:     Thu, 28 Apr 2005 15:04:17 +0100
To:       xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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
________________________________________________________________________

--~------------------------------------------------------------------
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>
--~--




--~------------------------------------------------------------------
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>
--~--




--~------------------------------------------------------------------
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>
--~--