- From: Kay, Michael <Michael.Kay@softwareag.com>
- Date: Tue, 1 Jul 2003 19:50:46 +0200
- To: Michael Rys <mrys@microsoft.com>, public-qt-comments@w3.org
> > Section 14.1.9 fn:root: fn:root() should error if root node > is not a document node. Otherwise the following expression is > surprising: (<a><b/><c/></a>)[/a/c]/b > > The above expression does not return the b element, since the > / would return the a element node which does not contain an a > and thus the predicate evaluates to false. > > If we return an error, we avoid this issue. Users can use a > let expression to bind the constructed element. And we can > decide in a later version to give it a different semantics. I agree with this comment, IIRC the XSL WG as a whole wanted this change. Of course it adds weight to the requirement for the ancestor axis. > > Also note that in XPath 1.0, fn:root() always gave a document node. XPath 1.0 did not have an fn:root() function, but it's true that "/" always gave you a root node, which is what XPath 1.0 called the document node. Michael Kay > > NOTE: This would give at least a return type document (see LC1-088). >
Received on Tuesday, 1 July 2003 13:51:05 UTC