xquery version "3.0"; module namespace r="http://exist-db.org/xquery/apps/r"; declare namespace exist = "http://exist.sourceforge.net/NS/exist"; declare namespace xmldb="http://exist-db.org/xquery/xmldb"; declare option exist:serialize "method=xml media-type=text/xml indent=yes"; import module namespace config="http://exist-db.org/xquery/apps/config" at "xmldb:exist:/db/risten2/modules/config.xqm"; import module namespace templates="http://exist-db.org/xquery/templates" at "xmldb:exist:/db/risten2/modules/templates.xql"; declare function r:do-query($queryStr as xs:string?) { let $query := concat('^', $queryStr) for $hit in (collection($config:data)//l[matches(., $query, "i")], collection($config:data)//head[matches(., $query, "i")]) return $hit }; declare function r:do-query($queryStr as xs:string?, $dict as xs:string) { let $query := concat('^', $queryStr) for $hit in (collection($config:data)//r[@id = $dict]//l[matches(., $query, "i")], collection($config:data)//r[@id = $dict]//head[matches(., $query, "i")]) return $hit };