[xsl] Re: Re: "Instantiating a template" ?

Subject: [xsl] Re: Re: "Instantiating a template" ?
From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Tue, 2 Dec 2003 23:13:00 +0100
"David Tolpin" <dvd@xxxxxxxxxxxxxx> wrote in message
> > I think you're not making difference between a match pattern and an
> > expression. Match paterns are only a restricted subset of the set of
> > syntactically correct XPath expressions.
> >
> > As Wendell pointed out, this distinction is at the heart of XSLT.
> Dimitre,
> I was commenting on the exact cause due to which node() cannot match the
> node. I was trying to show that the cause is not that node() is required
to be
> a child of something, as another poster had suggested, but is that node()
is a
> short way to write child::node().

Yes, what you said was:

> Because not specifying an axis is the same as specifying child:: axis.
> There is no context in wich the root node resides on the child axis.


> self::node() in the context of the root element will match the root node.


In XSLT the verb "to match" is used with match patterns. Because only the
"child" and "attribute" axis are allowed in a match pattern (except within
predicates), the expression:


cannot *match* anything as it simply is not allowed as a match pattern.

Another problem with this statement is that it uses the term "root element",
but the root node in fact is not an element node.

The expression self::node() in the context of (any) element will never
select the root node of the document.

What *is* true is that the above expression in the context of the root node
(not the root element) will *select* (not match) the root node.


Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

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

Current Thread