[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
news:200312022033.hB2KXmfr061117@xxxxxxxxxxxxxxxxxxxxxx
> > I think you're not making difference between a match pattern and an
XPath
> > 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
root
> 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.

Yes.

>
> 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:

  self:node

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.


=====
Cheers,

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




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


Current Thread