On Mon, Jan 27, 2014 at 1:59 PM, Ghislain Fourny <[email protected]> wrote:
> Hi Ihe,
>
> You are right that it is a filter expression.
>
> However, I think [.] is not very common in "real world" code, except maybe
> for very precise use cases (like filtering out empty strings, etc). Usually
> you would put either a position or a boolean predicate inside a filter
> expression -- not just a context item expression.
>
> What [.] does, if I am not missing anything, is that it only keeps:
> 1. Numerics equal to their position in the left-hand-side sequence
> and
> 2. Non-numerics that have an Effective Boolean Value of true, like non-empty
> strings, nodes, the true boolean, etc.
>
> Example:
> (1, 2, 4, 3, 5, "", "foo", <a/>, true, false)[.]
>
> returns
>
> 1 (position matches)
> 2 (position matches)
> 5 (position matches)
> foo (EBV = true)
> <a/> (EBV = true)
> true (EBV = true)
>
In Zorba it does - but is that right?
In Saxon 9.3.0.5 it gives
Error on line 1 of *module with no systemId*:
XPDY0002: The context item for axis step child::true is undefined
The context item for axis step child::true is undefined
In eXist it gives
err:XPDY0002 Undefined context sequence for 'child::{}true' [at line
1, column 34, source: String]
_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk