W3C home > Mailing lists > Public > www-ql@w3.org > January to March 2004

Re: XQuey

From: Mary Fernandez <mff@research.att.com>
Date: 09 Mar 2004 16:09:21 -0500
To: Jan Paredaens <Jan.Paredaens@ua.ac.be>
Cc: Jerome Simeon <simeon@us.ibm.com>, www-ql@w3.org, Jan Hidders <jan.hidders@ua.ac.be>, Philippe Michiels <philippe.michiels@ua.ac.be>
Message-Id: <1078866560.4632.120.camel@squeak.research.att.com>

Dear Jan,

The example you give below:

<elem attr="g"> <b/> </a>

is not a well-formed element, so I am not exactly sure what 
the input value is.  I'm going to assume you meant
that b is a child of the element a:

let $x := <a attr="g"/><b/></a>

So then the values of the following expressions are:

$x/@attr/following-sibling::node() = ()
$x/following-sibling::node() = ()

I agree that the prose and formal meanings  of the following expression
conflict, but I believe the formal semantics is the correct one, i.e.,

$x/@attr/following::node() = ()

Thanks for pointing out this problem.  I will raise with the group
but would appreciate you posting your remark to
public-qt-comments@w3.org 

Thanks,
Mary

> the following-sibling axis contains the context node's following siblings,
> those children of the context node's parent that occur after the context
> node in document order; if the context node is an attribute node or
> namespace node, the following-sibling axis is empty
> 
> the ancestor-or-self axis contains the context node and the ancestors of
> the context node;
> 
> the following axis contains all nodes that are descendants of the root of
> the tree in which the context node is found, are not descendants of the
> context node, and occur after the context node in document order

> Consider now for instance:
> 
> <elem attr="g"> <b/> </a>
> 
> clearly
> 
> <elem>/@attr/following-sibling::node() = empty,
> <elem>/following-sibling::node() = empty,
> and <elem>/@attr/following::node() = <b/>
> 
> But in
> 
> http://www.w3.org/TR/2004/WD-xquery-semantics-20040220/#sec_axes
> 
> 4.2.1.1 is written
> 
> [following:: NodeTest] ==
> [ancestor-or-self::node()/following-sibling::node()
>  /descendant-or-self::NodeTest]
> 
> Hence by this definition we have
> 
> <elem>/@attr/following::node() = empty.
> 
> Can you agree with this inconsistency?
> 
> Jan Paredaens
> Philippe Michiels
-- 
Mary Fernandez <mff@research.att.com>
AT&T Labs - Research
Received on Tuesday, 9 March 2004 16:07:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 22 July 2006 00:10:19 GMT