xsl-list
[Top] [All Lists]

Re: [xsl] Modes - Necessary Construct or Syntactic Sugar

2013-03-19 20:58:25
On Tue, 2013-03-19 at 08:58 +0000, Ihe Onwuka wrote:
Suppose there was a genuine use case for modes. By genuine I mean the
transform requires me to process the same nodes more than once and in
different ways.

Can I do this without using modes.

Yes, but not in he way you describe, and not easily.

For example, you can pass a parameter to every template and have the
contents of every template wrapped inside an xsl:choose. Essentially you
end up duplicating the mode mechanism of apply-templates, though, with a
lot of inconvenience. Here's a snippet of one possible approach.

<xsl:template name="title">
  <xsl:param name="mode" select=" 'default' " as="xs:string" />
  <xsl:choose test="$mode eq 'index'>
    . . .
  </xsl:choose>
  <xsl:otherwise>
    <xsl:call-template name="process-contents">
      <xsl:with-param name="input" select="node()" />
      <xsl:with-param name="mode" select="$mode" />
    </xsl:call-template>
  </xsl:otherwise>
</xsl:template>

and so on.

-- 
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Pictures from old books: http://fromoldbooks.org/
Ankh: irc.sorcery.net irc.gnome.org freenode/#xml


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

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