[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Patterns usage in XSLT template rules
Subject: Re: [xsl] Patterns usage in XSLT template rules
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Mon, 02 May 2005 12:33:44 -0400
|
Hi,
At 08:40 AM 5/2/2005, Bruce wrote:
On 5/2/05, Ramkumar Menon <ramkumar.menon@xxxxxxxxx> wrote:
> I run into a compilation error while using this stylesheet..
>
> <xsl:template match="(/)">
> <o1:NeverPrints/>
> </xsl:template>
It should be just "/", in the same way that it's "foo" not "(foo)".
The reason for this is that match patterns cannot contain just any
arbitrary XPath expression: they have their own grammar, which doesn't
include matching on elements grouped with the "( )" operator.
You couldn't say match="2 + 1" either, since although "2+1" is valid XPath
(it returns the number 3), it doesn't match the grammar for patterns. But
you could say apply-templates select="(/)" and be okay -- since
apply-templates' "select" takes any XPath (as long as, in this case, it
returns a node-set), not just a pattern.
Learning the restrictions on patterns (you can't say
match="preceding-sibling::*" either) and understanding the reason for them
(back to the processing model) is part of a full understanding of XSLT.
Cheers,
Wendell
======================================================================
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
======================================================================
|