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

David Lee dlee at calldei.com
Mon Jan 27 07:14:39 PST 2014


I wouldnt do

(readingMaterial|publication)/string()
or
(xs:string(readingMaterial),xs:string(publication))[.]

unless you absolutely knew for sure that only 1 existed.
If both exist you will get 2 strings.

In the first place you get them in document order,
in the second case in the order specified.

I would do 

   (xs:string(readingMaterial),xs:string(publication))[1]
or just
    (readingMaterial,publication)[1]/string()


which gives me readingMaterial if it exists, and if it doesnt exist then publication.
but never both and always in the order of precidence I asked 

.
On 27/01/2014 14:55, Ihe Onwuka wrote:
> 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))[.]
>



I'd probably write that as

(readingMaterial|publication)/string()

or if you know that exactly one of them is always there



string(readingMaterial|publication)


David


________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. 
________________________________________________________________________
_______________________________________________
talk at x-query.com
http://x-query.com/mailman/listinfo/talk



More information about the talk mailing list