[xquery-talk] What does [.] do.

Michael Kay mike at saxonica.com
Mon Jan 27 06:45:19 PST 2014

On 27 Jan 2014, at 13:59, Ghislain Fourny <g at 28.io> 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.

I mention on p648 of my XSLT /XPath book that the expression

some $s in $S satisfies CONDITION

is equivalent to

exists(for $s in $S return boolean(CONDITION)[.])

though I don't suppose that really counts as a use case.

I think the only case I've used in anger is probably count(tokenize($x, ' ')[.]) which eliminates the zero-length tokens that can arise at the start and/or end of the sequence.

Michael Kay

More information about the talk mailing list