This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
The normalization rule for PathExpr is not consistent with the / operator precedence, which is left-to-right. It should be written this way: [RelativePathExpr / StepExpr]Expr == fs:apply-ordering-mode ( fs:distinct-doc-order-or-atomic-sequence ( let $fs:sequence as node()* := [RelativePathExpr]Expr return let $fs:last := fn:count($fs:sequence) return for $fs:dot at $fs:position in $fs:sequence return [StepExpr]Expr))
I agree with the comment. The rewriting is clearer according to the precedence rule. I do not believe this changes the actual dynamic or static semantics, but makes it clearer. - Jerome
Note that the following rule: [ StepExpr // RelativePathExpr ]Expr == [StepExpr / descendant-or-self::node() / RelativePathExpr]Expr Should also be changed in a consistent way, to: [ RelativePathExpr // StepExpr ]Expr == [ RelativePathExpr / descendant-or-self::node() / StepExpr ]Expr - Jerome
The XSLT and XQuery WG have accepted your comments, and the issue will be fixed by adopting the changes listed in comments #1 and #2. Best regards, - Jerome