xsl-list
[Top] [All Lists]

Re: Re: "Instantiating a template" ?

2003-12-02 15:13:00

"David Tolpin" <dvd(_at_)davidashen(_dot_)net> wrote in message
news:200312022033(_dot_)hB2KXmfr061117(_at_)adat(_dot_)davidashen(_dot_)net(_dot_)(_dot_)(_dot_)
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



<Prev in Thread] Current Thread [Next in Thread>