Subject: Re: [xsl] Using variables in template match patterns? From: Geert Josten <Geert.Josten@xxxxxxxxxxx> Date: Tue, 12 Jul 2005 10:15:57 +0200 |
Cheers, Geert
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 ======================================================================
-- Geert.Josten@xxxxxxxxxxx IT-consultant at Daidalos BV, Bleiswijk (NL)
http://www.daidalos.nl/ tel:+31-(0)10-850 12 00 fax:+31-(0)10-850 11 99
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Using variables in templa, Wendell Piez | Thread | [xsl] Schema for <html:p>, Dariusz Borowski |
Re: [xsl] generate an id, Geert Josten | Date | Re: [xsl] Creating Namespace Nodes, David Carlisle |
Month |