On 10 Feb 2014, at 09:59, Ihe Onwuka <[email protected]> wrote:

> 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?

It's right if there is a context item, which is context-dependent....

For true and false in this example, you probably meant true() and false().

Michael Kay
Saxoinca

> 
> 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


_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to