import module namespace config = 'http://www.rave-tech.com/bloomsbury/config' at './module/config.xqm'; let $title := '' let $ctype := 'monograph' let $dbname := string-join(( if(fn:contains($ctype,$config:Audio) or fn:contains($ctype,$config:Video) or fn:contains($ctype,$config:Person) or fn:contains($ctype,$config:Publisher) or fn:contains($ctype,$config:Organisation) or fn:contains($ctype,$config:Series) or fn:contains($ctype,$config:Image)) then $config:MetadataOnlyContentDatabase else(), if(fn:contains($ctype,$config:playDatabase)) then $config:playDatabase else(), if(fn:contains($ctype,$config:MonographDatabase)) then $config:MonographDatabase else(), if(fn:contains($ctype,$config:LooseleafDatabase)) then $config:LooseleafDatabase else(), if(fn:contains($ctype,$config:screenplayDatabase)) then $config:screenplayDatabase else() ),'|') for $db in db:list()[if($ctype!='') then fn:matches(.,fn:concat('^',$dbname,'$'),'i') else fn:not(fn:contains(.,'bloomsbury') or fn:contains(.,$config:OnixDB) or fn:contains(.,$config:ContentManagementDatabase) or fn:contains(.,$config:AuditDatabase) or fn:contains(.,$config:ContentMetadataDatabse))] for $uri in db:open($db)[not(name(/*)='info')] [fn:not( fn:contains(.,$config:InfoXml) or fn:contains(.,$config:VersionDir) or fn:contains(.,$config:VersionControlFileName) ) ] /*[if($title!='') then( if(fn:starts-with($title,'"')) then if(/*:TEI/*:text/*:body//*:div[@type="play"]/*:head//text()) then (/*:TEI/*:text/*:body//*:div[@type="play"]/*:head//text()[. contains text {$title} phrase]) else if(/*/*:item_title) then (/*/*:item_title)//text()[. contains text {$title} phrase] else (/*:book/*:info/*:title)//text()[. contains text {$title} phrase] else( if(/*:TEI/*:text/*:body//*:div[@type="play"]/*:head//text()) then (/*:TEI/*:text/*:body//*:div[@type="play"]/*:head//text()[. contains text {$title} all words]) else if(/*/*:item_title) then (/*/*:item_title)//text()[. contains text {$title} all words] else (/*:book/*:info/*:title)//text()[. contains text {$title} all words] )) else * ]/base-uri()[if(fn:contains(.,$config:MetadataOnlyContentDatabase)) then fn:matches(fn:tokenize(.,'/')[3],$ctype,'i') else fn:matches(fn:tokenize(.,'/')[2],$ctype,'i')] return $uri