xquery version "3.0"; declare namespace search = "http://exist-db.org/xquery/rebind-search"; (: :declare default element namespace "abcd";:) declare namespace abcd = "http://www.tdwg.org/schemas/abcd/2.06"; import module namespace admin="http://exist-db.org/xquery/admin-interface" at "admin.xql"; import module namespace compression="http://exist-db.org/xquery/compression"; declare function search:return-file($data-collection as xs:string, $tit as xs:string) as node() { let $doc-name := util:document-name(collection($data-collection)//abcd:Representation/abcd:Title[. = $tit]) let $dummy := response:set-header("content-disposition", concat( "attachment; filename=", $doc-name)) let $dummy2 := response:set-header("Content-Type", "application/xml; charset=UTF-8") let $serialization-options := "method=xml indent=no" return (:fn:doc(concat('../rest/', $data-collection, '/', util:document-name(collection($data-collection)//abcd:Representation/abcd:Title[. = $tit]))):) fn:doc(concat('xmldb:exist://', $data-collection, '/', util:document-name(collection($data-collection)//abcd:Representation/abcd:Title[. = $tit]))) (:compression:zip(fn:doc(concat('xmldb:exist://', $data-collection)), true()):) (:fn:doc(concat('/exist/rest/', $data-collection, '/', $doc-name)):) (:problem:) (:fn:doc('http://localhost:8080/exist/rest//db/rebind/public/Puffinus/reBiND_Puffinus.xml') :)(: works:) (:response:stream(fn:doc('http://localhost:8080/exist/rest//db/rebind/public/Puffinus/reBiND_Puffinus.xml'), $serialization-options):) }; declare option exist:serialize "method=xhtml media-type=text/html indent=yes"; let $title := 'Simple Search Result' (: get the search query string from the URL parameter :) let $tit := request:get-parameter('tit', '') (:TODO we should use xml document name rather than title here:) let $details := request:get-parameter('details', '') let $result := request:get-parameter('result', '') let $data-collection := request:get-parameter('collection', '') (:let $data-collection := '/db/rebind/public':) let $abcd_desc := collection($data-collection)//abcd:Representation/abcd:Title[. = $tit]/../abcd:Details let $metadata_desc := collection($data-collection)//dataset/abstract/para let $description := if ($abcd_desc != '') then ($abcd_desc) else ( if ($metadata_desc != '') then ($metadata_desc) else (collection($data-collection)//abcd:Representation/abcd:Title[. = $tit]) ) (:let $file := if (request:get-parameter('export','')='true') then search:return-file($data-collection, $tit) else():) return if (request:get-parameter('export','')='true') then ( search:return-file($data-collection, $tit) ) else ( reBiND - Project Data portal
{collection($data-collection)//abcd:Representation/abcd:Title[. = $tit]}
    {
  • {concat("Description: ", $description)}
  • }
  • {concat("Number of Units: ", count(collection($data-collection)//abcd:Unit))}
    {for $result in collection($data-collection)//abcd:FullScientificNameString[contains(lower-case(.), lower-case($q))]
  • {concat("Scientific name: ", $result}
  • }

{if (request:get-parameter('action','')='Export data file') then search:return-file($data-collection, $tit) else()}


)