Re: [xsl] Using variables in template match patterns?

Subject: Re: [xsl] Using variables in template match patterns?
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 11 Jul 2005 11:04:42 -0400
Geert,

It is not conformant -- no variable references are allowed in XSLT 1.0 match patterns.

(XSLT 1.0 section 5.3: "It is an error for the value of the match attribute to contain a VariableReference". Other restrictions are enumerated in section 5.2. But I wonder whether the rule isn't unclear as it applies to a match pattern in a key declaration, since section 5.3 describes template rules.)

Xalan is (probably) being too permissive here -- you shouldn't expect portability of code that uses this "feature".

Because such a thing is so useful, this restriction has been loosened for XSLT 2.0, where any XPath predicate, including one with variable references, may appear in a pattern.

Cheers,
Wendell

At 09:06 AM 7/11/2005, you wrote:
Hi all,

Can anyone tell me whether it is or isn't conform XSLT (1.0) to use variable references in template match patterns? I have something like the following, that is accepted by Xalan, but not by some other parsers:

        <!-- top level -->
        <xsl:param name="selected" />

        <xsl:template match="entry[@id = $selected]">
          ...
        </xsl:template>

I also use variables to add a filter on a key pattern, something like this:

<xsl:key name="selected-entries" match="entry[@parent-id = $selected]" use="@id" />

Again, Xalan is happy, but some other parsers aren't..

Who is right?


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread