I am using one transformation for two different data sources with two different schemas.
One site may call a resoure readingMaterial another site may call the same concept a publication, but they are otherwise similar and you may want to treat them as such. (xs:string(readingMaterial),xs:string(publication))[.] when you know they are mutually exclusive in your document but you want to process them in the same way. On Mon, Jan 27, 2014 at 2:45 PM, Michael Kay <[email protected]> wrote: > > On 27 Jan 2014, at 13:59, 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. >> > > 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 > Saxonica > > _______________________________________________ [email protected] http://x-query.com/mailman/listinfo/talk
