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[(_at_)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[(_at_)parent-id =
$selected]" use="@id" />
Again, Xalan is happy, but some other parsers aren't..
Who is right?
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
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
======================================================================
--~------------------------------------------------------------------
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>
--~--