1 | xquery version "1.0"; |
---|
2 | |
---|
3 | (: |
---|
4 | $Id: cmd-model.xql 727 2010-09-28 11:44:03Z vronk $ |
---|
5 | :) |
---|
6 | import module namespace request="http://exist-db.org/xquery/request"; |
---|
7 | (: import module namespace json="http://www.json.org"; :) |
---|
8 | |
---|
9 | import module namespace cmd-model = "http://spraakbanken.gu.se/clarin/xquery/model" |
---|
10 | at "xmldb:exist:///db/clarin/cmd-model.xqm"; |
---|
11 | |
---|
12 | |
---|
13 | declare function local:cmd-model() as item()* { |
---|
14 | let $operation := request:get-parameter("operation", $cmd-model:queryModel), |
---|
15 | $cmd-index := request:get-parameter("q", "MDGroup/Actors/Actor"), |
---|
16 | $cmd-index-path := |
---|
17 | if (fn:contains($cmd-index, ".")) then |
---|
18 | fn:translate($cmd-index, ".", "/") |
---|
19 | else |
---|
20 | $cmd-index, |
---|
21 | $format := request:get-parameter("format", $cmd-model:responseFormatXml), |
---|
22 | $collection-params := request:get-parameter("collection", $cmd-model:collectionRoot), |
---|
23 | $query-collections := |
---|
24 | if (matches($collection-params, "^root$") or $collection-params eq "") then |
---|
25 | $cmd-model:collectionRoot |
---|
26 | else |
---|
27 | $collection-params, |
---|
28 | $max-depth as xs:integer := xs:integer(request:get-parameter("maxdepth", 1)) |
---|
29 | return |
---|
30 | if ($operation eq $cmd-model:getCollections) then |
---|
31 | cmd-model:get-collections($query-collections, $format, $max-depth) |
---|
32 | else if ($operation eq $cmd-model:queryModel) then |
---|
33 | cmd-model:query-model($cmd-index-path, $query-collections, $format, $max-depth) |
---|
34 | else if ($operation eq $cmd-model:searchRetrieve) then |
---|
35 | let $cql-query := request:get-parameter("query", "MDGroup/Actors/Actor"), |
---|
36 | $start-item := request:get-parameter("startRecord", 1), |
---|
37 | $end-item := request:get-parameter("iend", 50) |
---|
38 | |
---|
39 | return cmd-model:search-retrieve($cql-query, $query-collections, $format, xs:integer($start-item), xs:integer($end-item)) |
---|
40 | else |
---|
41 | <error>Unknown operation</error> |
---|
42 | |
---|
43 | }; |
---|
44 | |
---|
45 | local:cmd-model() |
---|