[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: RE: Re: apply-templates and predicates

Subject: RE: RE: Re: apply-templates and predicates
From: cknell@xxxxxxxxxx
Date: Thu, 28 Apr 2005 10:17:02 -0400
unrecognized element
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:  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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.