LS Example XQueries

From GEANT2-JRA1 Wiki

XQuery

  • For each metadata of MA return all linked data elements. Encapsulate each result pair (metadata+datas) in <lookup-storage-from-query> element.
declare namespace perfsonar="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/";
declare namespace psservice="http://ggf.org/ns/nmwg/tools/org/perfsonar/service/1.0/";

for $metadata in /nmwg:store/nmwg:metadata
let $metadata_id := $metadata/@id
let $data := /nmwg:store/nmwg:data[@metadataIdRef=$metadata_id]
where $metadata//psservice:serviceType="MA"
return <lookup-storage-from-query>
         {$metadata} {$data}
       </lookup-storage-from-query>

XQuery FAQ

  • how to concatenate two sequences in XQ?
let $seq1 := data(//a/@id)
let $seq2 := data(//b/@id)
let $concat := ($seq1,$seq2)
for $i in $concat
  return <x>{$i}</x>
Personal tools