Re: [xsl] Correct way to test for no match

Subject: Re: [xsl] Correct way to test for no match
From: Dan Vint <dvint@xxxxxxxxx>
Date: Sun, 04 Oct 2009 13:48:20 -0400
I've used this approach myself to help determine when a new element has been added or someone starts using an element I've not seen used.

In this case I was in a when clause and I was trying to capture various combinations of markup errors.

<xsl:when test="ancestor::ipb/figure/subfig/graphic[@boardno=$sht_num]/@boardno">

So I was trying to understand what value this particular test would return so I could trap it.

In this case it was originally used like this and the function was indicating an empty or null value was being returned, so I was trying to match on that empty value.

unparsed-entity-uri(ancestor::ipb/figure/subfig/graphic[@boardno=$sht_num]/@boardno)

In this case I probably should have rearranged the when and otherwise tests and matched the good value and let the otherwise handled everything else. ultimately I also realized there was no value in doing this elaborate matching as the result is the same as the $sht_num.

thanks everyone

..dan

At 01:13 PM 10/4/2009, you wrote:
At 2009-10-04 09:09 -0400, Dan Vint wrote:
One other thought on this. The reason it is important to know if I don't have a match is that there should always be a match and it is important to report this state.

Wouldn't this be satisfied with the following using priority?


  <xsl:template match="node()|@*" priority="-1">
    <xsl:message>Not handled: .....

... or even better using importance:

<xsl:import href="debug.xsl"/>

  debug.xsl:
  <xsl:template match="node()|@*">
    <xsl:message>Not handled: .....

I have this in most of my stylesheets ... I put this lowest importance imported template into my import tree so as not to interfere with my other template rules and to tell me what isn't being handled by my code.

Such a template rule overrides the built-in template rules and is less important than all of my own template rules, so it catches what I don't catch in my other template rules.

I hope this helps.

. . . . . . . . . . Ken


-- Upcoming: hands-on code list, UBL, XSLT, XQuery and XSL-FO classes in Copenhagen Denmark and Washington DC USA, October/November 2009 Interested in other classes? http://www.CraneSoftwrights.com/s/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video Video lesson: http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18 Video overview: http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18 G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal


--------------------------------------------------------------------------- Danny Vint

Panoramic Photography
http://www.dvint.com

voice: 502-749-6179

Current Thread