xquery version "1.0";
declare namespace session="http://exist-db.org/xquery/session";
declare namespace request="http://exist-db.org/xquery/request";
declare namespace util="http://exist-db.org/xquery/util";
declare namespace i18n="http://apache.org/cocoon/i18n/2.1";
declare namespace xmldb="http://exist-db.org/xquery/xmldb";
import module namespace ristenutil="http://www.risten.no/shared/util" at "../xquery/ristenutil.xqm";
declare function local:filter-expr($entry as xs:string) as xs:string
{
let $t := concat("@id &= '", $entry, "'")
return
$t
};
declare function local:build-query($entry as xs:string, $lang as xs:string)
as xs:string
{
let $expr := local:filter-expr($entry),
$doc := ristenutil:get-doc('center')
return
concat("for $r in document('", $doc, "')//entry[",
$expr, "] return $r")
};
declare function local:checkNewEntry($entry as xs:string, $lang as xs:string)
as xs:boolean
{
let $query := local:build-query($entry, $lang),
$hits := util:eval($query),
$count := count($hits)
return if ($count = 0) then
false()
else
true()
};
declare function local:saveNewCenter($entry as xs:string, $sem as xs:string, $lang as xs:string)
as empty()
{
let $sem := fn:normalize-space($sem),
$lang := fn:normalize-space($lang),
$coll := ristenutil:get-collection(),
$semantics := if (string-length($sem) > 0) then
element { "sem" } { element {$sem} {()} }
else ""
return
update insert
{$exists}
else (: let $newcenter := local:saveNewCenter($rawentry, $sem, $lang), $newlang := local:saveNewLangEntry($rawentry, $lang, $infl, "") return :)