[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Re: why is "(chapter//footnote)[1]" illegal?


Subject: Re: [xsl] Re: why is "(chapter//footnote)[1]" illegal?
From: "Robert P. J. Day" <rpjday@xxxxxxxxxxxxxx>
Date: Sat, 23 Aug 2003 11:30:12 -0400 (EDT)

On Sat, 23 Aug 2003, Dimitre Novatchev wrote:

> 
> "Robert P. J. Day" <rpjday@xxxxxxxxxxxxxx> wrote in message
> news:Pine.LNX.4.44.0308230904470.1866-100000@xxxxxxxxxxxxxxxxxxxxxxxx
> >
> >   boning up on my predicates and patterns, i'm reading
> > kay, p. 443, which states:
> >
> >   "(chapter//footnote)[1] is not a valid pattern.  (Why not?
> > No good reason, it's just that the spec doesn't allow it."
> 
> It cannot be derived from the syntax of "Patterns" as specified in
> 
> http://www.w3.org/TR/xslt#patterns
> 
> If you remove the brackets you'll get a valid match pattern.
> 
> >
> >   but on p. 408, there is an explanation of the (apparently
> > acceptable) path expression "(chapter/para)[1]".
> >
> >   so is it just the difference between using the child axis
> > and the descendant-or-self axis?  it's not obvious to me
> > why the first should be illegal while the second is legal.
> 
> Because the first is illegal *pattern* (it is a legal XPath expression).
> 
> Patterns are a strict subset of XPath expressions.
> 
> Patterns were introduced (in my opinion) to allow for some optimization
> opportunities as well as for sanity in the template matching and
> instantiation process.

i can see why, *technically*, the above holds.  i guess my confusion
is more that it's just non-intuitive, particularly since (according to
kay, p. 355), the expression "($chapters//diagram)[1]" is legal.

so, we have

	(chapter/para)[1]		legal
	(chapter//footnote)[1]		illegal
	($chapters//diagram)[1]		legal

while i'm sure all of this holds according to the acceptable rules
of patterns, it sure doesn't do any favors for those looking for
obviously intuitive rules for what's legal and what isn't.

rday


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords