xquery version "1.0"; (: $Id: cmd-model.xql 301 2010-03-29 13:32:22Z ljo $ :) import module namespace request="http://exist-db.org/xquery/request"; (: import module namespace json="http://www.json.org"; :) import module namespace cmd-model = "http://spraakbanken.gu.se/clarin/xquery/model" at "xmldb:exist:///db/clarin/cmd-model.xqm"; (: path="olac/OLAC/The_LINGUIST_List_Language_Resources", q="MDGroup.Actors.Actor", maxdepth=4 :) declare function local:cmd-model() as item()* { let $operation := request:get-parameter("operation", $cmd-model:queryModel), $cmd-index := request:get-parameter("q", "MDGroup/Actors/Actor"), $cmd-index-path := if (fn:contains($cmd-index, ".")) then fn:translate($cmd-index, ".", "/") else $cmd-index, $format := request:get-parameter("format", $cmd-model:responseFormatXml), $collection := "/db/cmdi-mirror", $query-model-collection := fn:concat($collection, "/", if (fn:empty(request:get-parameter("collection", ()))) then "silang_data" else ""), $query-collection := fn:concat($collection, if (fn:empty(request:get-parameter("collection", ()))) then "" else fn:concat("/", request:get-parameter("collection", ()))), $max-depth as xs:integer := xs:integer(request:get-parameter("maxdepth", 1)) return if ($operation eq $cmd-model:getCollections) then cmd-model:get-collections($query-collection, $format, $max-depth) else if ($operation eq $cmd-model:queryModel) then cmd-model:query-model($cmd-index-path, $query-model-collection, $format, $max-depth) else if ($operation eq $cmd-model:searchRetrieve) then let $cql-query := request:get-parameter("query", "MDGroup/Actors/Actor"), $start-item := request:get-parameter("startRecord", 1), $end-item := request:get-parameter("iend", 50) return cmd-model:search-retrieve($cql-query, $query-collection, $format, $start-item, $end-item) else Unknown operation }; local:cmd-model()