Silly XQUERY exception

Wednesday, 7 January 2015 · 3 messages · last reply 8 Jan 2015
MS
Mansi Sheth7 Jan 2015 20:13 #
Hello, I feel very stupid and frustrated, not able to fix this error: Below, is a my query code, which I am trying to run. I am passing the value for "contains" clause thru command line and I expect to receive # of xml files matching $cmd xpath. I always get Stopped at /veracode/msheth/BaseXWeb/get_prevalence.xq, 16/12: *[XPST0003] Expecting ':=', found ':'.* When ran thru REST: *[XPST0003] Expecting valid step, found 'd'.* I think, its the way $cmd is being set. I have tried, simple string concat using ||, using concat command, using html entities etc.
declare variable $n as xs:string external;
declare option output:item-separator "
";

(:  let $cmd :=
concat("/A/*/descendant::C/descandant::*[contains(@name,",$singlequote,$n,$singlequote,")]")
:)
*let $cmd := "/A/*/descendant::C/descandant::*[contains(@name,'"|| $n
||"')]"*

let $aPath :=
for $db in db:list()
let $query :=
  "declare variable $db external; " ||
  "db:open($db)" || $cmd
*return xquery:eval($query,*
*        map { 'db': $db, 'query': $cmd })*

let $clients :=
for $elem in $aPath
return db:path($elem)
return $n , distinct-values(count($clients)) Lines of code, which are the culprit, are marked in bold above. Any and all suggestions are greatly appreciated. - Mansi
LK
Lukas Kircher8 Jan 2015 08:44 #
Hi Mansi,
Quoted text · Mansi Sheth · 1 line
> let $cmd := "/A/*/descendant::C/descandant::*[contains(@name,'"|| $n ||"')]”
Just a quick scan - I marked the problem in <bold> above - I would try ‘descendant’ instead of 'descandant’. Cheers, Lukas
MS
Mansi Sheth8 Jan 2015 16:53 #
Lukas, That was it!! I feel like shooting myself. What an oversight. Thanks a ton for looking at it and spotting it. - Mansi
Quoted text · Lukas Kircher · 16 lines
On Thu, Jan 8, 2015 at 2:44 AM, Lukas Kircher <lukaskircher1 at gmail.com> wrote: > Hi Mansi, > > let $cmd := "/A/*/descendant::C/*descandant*::*[contains(@name,'"|| $n > ||"')]” > > > Just a quick scan - I marked the problem in <bold> above - I would try > ‘desc*e*ndant’ > instead of 'desc*a*ndant’. > > Cheers, > Lukas > >
-- - Mansi

⚡Generated with XQuery