Subject: RE: [xsl] Restrictions on XPath expressions in <xsl:key> From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 19 Dec 2007 22:15:03 -0000 |
> >Does someone know a reason why this won't compile: > > > ><xsl:key name="templates" > >match="/onm:NetworkModel/onm:Graph/(onm:Nodes|onm:Links)/(onm > :Link|onm: > >N ode)/onm:Templates/onm:Template" use="@Name" /> > > Because match= attributes are restricted to be XPath > patterns, not all XPath expressions. > > >...but this will: > > > ><xsl:template match="onm:Graph"> > > <xsl:copy> > > <xsl:if > >test="(onm:Nodes/onm:Node|onm:Links/onm:Link)/onm:Attributes/onm:Attribute" > > > Because test= is not restricted to only being a pattern. > And even if it weren't a distinction between patterns and expressions, in an XPath 1.0 expression (which I suspect you are using) a union expression can be used on the lhs of "/" but not on the rhs of "/". Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Restrictions on XPath exp, G. Ken Holman | Thread | [xsl] Compact XPath syntax, Ramkumar Menon |
Re: [xsl] Restrictions on XPath exp, G. Ken Holman | Date | [xsl] Compact XPath syntax, Ramkumar Menon |
Month |