[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] mode


Subject: Re: [xsl] mode
From: "Imsieke, Gerrit, le-tex" <gerrit.imsieke@xxxxxxxxx>
Date: Thu, 14 Apr 2011 21:45:32 +0200

Paul,

Although I'm afraid that I don't understand your question fully, I'm trying to guess or give some hints below.

On 2011-04-14 21:20, Paul M wrote:
I am just questioning about modes. The below contrived
> xsl snippet sets a mode if an element has a specific attribute.
> For elements that have only one translation (and always will),
> I look for mode #all. Since I am new to xsl, I have found that
> #all seems to be discouraged. However, what would be the pattern than

In my view, there's nothing to say against mode="#all".

> if I were to say have several modes, and several dozen elements which
> are always the same regardless of mode? Example or link to xsl is
> fine.


<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xpath-default-namespace="http://www.w3.org/1999/xhtml">

...

   <xsl:template match="para" mode="#all">
     <p>
       <xsl:apply-templates/>

Be aware: this is tantamount to <xsl:apply-templates mode="#default"/>, which means that no matter what the mode was before, the contents of each and every para element will be processed in default mode.


So if
a) you switched to mode="super" before processing para, and
b) if paras should be processed identically, independent of mode, and
c) if paras' contents should be treated differently, depending on mode,

then you should make above apply-templates directive operate in the #current mode. And then you'll be able to invoke mode-specific templates for some of the downstream elements.

Gerrit


Current Thread
Keywords
xsl