|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] Programmatically constructing sequences ("a", "b", "c") for XQueryAndrew Welch andrew.j.welch at gmail.comMon Aug 10 17:33:22 PDT 2009
2009/8/10 Michael Ludwig <http://x-query.com/mailman/listinfo/talk>:
> Andrew Welch schrieb:
>>
>> 2009/8/10 Michael Ludwig <http://x-query.com/mailman/listinfo/talk>:
>
>>> Let's say I have a prepared query like this:
>>>
>>> collection('import')[//File = $files]
>>>
>>> Now I would like to be $files a sequence of strings:
>>>
>>> ('eins','zwei','drei')
>>>
>>> Does anyone know of a way to achieve this? It might be at the XQuery
>>> level or at the Java (or whatever) level.
>>>
>>> In Java, would you use java.lang.StringBuilder? And then append
>>> quotes and commas? Or is there a better, safer way?
>
>> Pass in a delimited string and tokenize it?
>
> Well, I might be misunderstanding, but I do have the tokens; I want to
> join them. It seems wrong to do this manually, as I don't construct my
> SQL queries like that, but rather rely on methods like prepare() and
> bind_param() in Perl's DBI, which handle escaping and prevent injection.
It sounds like you want to pass some values into a query as a sequence
of strings? The simplest way is to pass in a single string that is
the sequence concatenated using some delimiter.
For example, pass in:
"eins, zwei, drei"
as the parameter, then do:
declare variable $files as xs:string+ := tokenize($param, ', ');
which is your sequence of strings.
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






