Mercurial > hg > mpdl-group
view software/eXist/webapp/mpdl/_stuff/testDev/controller.xql @ 7:5589d865af7a
Erstellung XQL/XSL Applikation
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Tue, 08 Feb 2011 15:16:46 +0100 |
parents | |
children |
line wrap: on
line source
xquery version "1.0"; (: Controller XQuery for the mpdl application. :) let $id := "blabla" return if ($exist:path eq '/test.xql') then <dispatch xmlns="http://exist.sourceforge.net/NS/exist"> <forward url="test2.xql"> <add-parameter name="id" value="{$exist:resource}"/> </forward> </dispatch> else if (starts-with($exist:path, '/ir/')) then <dispatch xmlns="http://exist.sourceforge.net/NS/exist"> <forward url="/test"> <add-parameter name="doc" value="{$exist:resource}"/> </forward> </dispatch> else if ($exist:resource eq 'execute') then let $query := request:get-parameter("qu", ()) let $startTime := util:system-time() return <dispatch xmlns="http://exist.sourceforge.net/NS/exist"> <!-- Query is executed by XQueryServlet --> <forward servlet="XQueryServlet"> <!-- Query is passed via the attribute 'xquery.source' --> <set-attribute name="xquery.source" value="{$query}"/> <!-- Results should be written into attribute 'results' --> <set-attribute name="xquery.attribute" value="results"/> <clear-attribute name="results"/> <!-- Errors should be passed through instead of terminating the request --> <set-attribute name="xquery.report-errors" value="yes"/> </forward> <view> <!-- Post process the result: store it into the HTTP session and return the number of hits only. --> <forward url="session.xql"> <clear-attribute name="xquery.source"/> <clear-attribute name="xquery.attribute"/> <set-attribute name="elapsed" value="{string(seconds-from-duration(util:system-time() - $startTime))}"/> </forward> </view> </dispatch> (: Retrieve an item from the query results stored in the HTTP session. The format of the URL will be /sandbox/results/X, where X is the number of the item in the result set :) else if (starts-with($exist:path, '/results/')) then <dispatch xmlns="http://exist.sourceforge.net/NS/exist"> <forward url="../session.xql"> <add-parameter name="num" value="{$exist:resource}"/> </forward> </dispatch> else if (starts-with($exist:path, '/scripts/yui')) then <dispatch xmlns="http://exist.sourceforge.net/NS/exist"> <forward url="/{replace($exist:path, '(/scripts/yui/.*)$', '$1')}"/> </dispatch> else (: everything else is passed through :) <ignore xmlns="http://exist.sourceforge.net/NS/exist"> <cache-control cache="yes"/> </ignore>