xsl-list
[Top] [All Lists]

Re: [xsl] How to avoid careless mistakes when using XSLT modes?

2019-04-19 14:06:56
I usually have a fallback template in each mode and during development or for 
debugging turn on a message indicating what it matched on. Useful for 
validating that you've handled all the elements that will need handling, 
especially when you're first building the handling for a new document type.

With XSLT 3's new mode instruction and the ability to have a built-in default 
template for shallow-copy there's no need for a fallback in the context of 
identity transforms, so then you lose the opportunity to have this kind of 
fallback handling message, although of course you can start with the template 
and then remove it for debugging purposes.

Cheers,

E.

--
Eliot Kimber
http://contrext.com
 

On 4/19/19, 1:41 PM, "David Sewell dsewell(_at_)virginia(_dot_)edu" 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

    I just spent too much time completely puzzled about why a particular 
template 
    was not producing correct/expected output before realizing that in many 
cases 
    the template was not matching anything -- because some time ago I had added 
a 
    mode to certain instances of <xsl:template> and <xsl:apply-templates> 
without 
    being sure to adjust other templates in the stylesheet.
    
    Adding mode="#all" to my failing template fixed the problem.
    
    Obviously one could prevent many such problems by checking for the 
existence of 
    @mode in a stylesheet before working with it. Remembering always to do that 
is 
    the problem. Any other suggestions? (I guess one could make a habit of 
adding an 
    <xsl:message> to the template matching the root to warn that the template 
is 
    using modes.)
    
    David
    
    -- 
    David Sewell
    Manager of Digital Initiatives
    The University of Virginia Press
    Email: dsewell(_at_)virginia(_dot_)edu   Tel: +1 434 924 9973
    Web: http://www.upress.virginia.edu/rotunda
    
    
    
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>