Mercurial > hg > mpdl-group
annotate software/eXist/webapp/mpdl/lucene/search.xql @ 11:d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 11 Mar 2011 13:34:02 +0100 |
parents | 5589d865af7a |
children | e99964f390e4 |
rev | line source |
---|---|
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1 xquery version "1.0"; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3 module namespace mpdl-lucene = "http://www.mpiwg-berlin.mpg.de/ns/mpdl/lucene/search"; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
5 import module namespace functx = "http://www.functx.com" at "../util/functx.xql"; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
6 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
7 declare namespace ft = "http://exist-db.org/xquery/lucene"; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
8 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
9 declare namespace echo="http://www.mpiwg-berlin.mpg.de/ns/echo/1.0/"; |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
10 declare namespace TEI="http://www.tei-c.org/ns/1.0"; |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
11 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
12 declare namespace dc="http://purl.org/dc/elements/1.1/"; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
13 declare namespace dcterms="http://purl.org/dc/terms"; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
14 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
15 declare function mpdl-lucene:search($mpdlCollection, $queryStr) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
16 let $luceneParseResult := mpdltext:lucene-parse-query($queryStr) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
17 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
18 if ($luceneParseResult = '') |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
19 then $mpdlCollection/.[ft:query(archimedes/text, $queryStr) or ft:query(echo:echo/echo:text, $queryStr) or ft:query(TEI:TEI/TEI:text, $queryStr)] |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
20 else |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
21 <result> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
22 <error>{$luceneParseResult}</error> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
23 <size>0</size> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
24 <pages>0</pages> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
25 <pn>0</pn> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
26 <hits/> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
27 </result> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
28 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
29 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
30 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
31 declare function mpdl-lucene:search($mpdlCollectionName, $language, $document, $queryType, $queryStr, $pn as xs:int, $pageSize as xs:int) as node() { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
32 (: performance reasons: all hits (not only the first 10! ) are passed through the :) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
33 (: for loop: so the overhead in each loop has to be minimized :) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
34 let $query := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
35 if ($queryType = 'fulltext' or $queryType = 'fulltextMorph') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
36 then $queryStr |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
37 else if ($queryType = 'fulltextMorphLemma') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
38 then concat('lemmalemma', $queryStr) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
39 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
40 let $pageBreaks := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
41 if ($mpdlCollectionName = 'archimedes') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
42 then $document//pb |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
43 else if ($mpdlCollectionName = 'echo') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
44 then $document//echo:pb |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
45 else if ($mpdlCollectionName = 'tei') |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
46 then $document//TEI:pb |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
47 else $document//pb |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
48 let $luceneParseResult := mpdltext:lucene-parse-query($queryStr) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
49 let $t := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
50 if ($luceneParseResult != '') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
51 then () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
52 else if ($mpdlCollectionName = 'archimedes') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
53 then $document//s[ft:query(., $query)] |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
54 else if ($mpdlCollectionName = 'echo') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
55 then $document//echo:s[ft:query(., $query)] |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
56 else if ($mpdlCollectionName = 'tei') |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
57 then $document//TEI:s[ft:query(., $query)] |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
58 else $document//s[ft:query(., $query)] |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
59 let $from := ($pn * $pageSize) - $pageSize + 1 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
60 let $to := $pn * $pageSize |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
61 (: performance improvements: result set of 500 needs 3 sec., result set of 10 needs 0,7 sec.:) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
62 let $tempQueryResult := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
63 for $ss at $poss in $t |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
64 where $poss >= $from and $poss <= $to |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
65 return $ss |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
66 let $queryResult := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
67 for $s at $pos in $tempQueryResult |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
68 let $pnOfS := count($pageBreaks[. << $s]) (: faster: comparison only in pb elements of this document :) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
69 let $pb := subsequence($pageBreaks, $pnOfS, 1) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
70 (: test if sentence surrounds page break; costs 0,1 sec performance :) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
71 let $pbPlus1 := subsequence($pageBreaks, $pnOfS + 1, 1) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
72 let $sSurroundsPB := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
73 if ($pbPlus1/parent::node() = $s and $pbPlus1 intersect $s/descendant::node()) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
74 then true() |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
75 else false() |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
76 let $posOfS := (: faster: comparison only in s elements of this document :) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
77 if ($mpdlCollectionName = 'archimedes') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
78 then count($pb/following::s[. << $s]) + 1 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
79 else if ($mpdlCollectionName = 'echo') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
80 then count($pb/following::echo:s[. << $s]) + 1 |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
81 else if ($mpdlCollectionName = 'tei') |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
82 then count($pb/following::TEI:s[. << $s]) + 1 |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
83 else count($pb/following::s[. << $s]) + 1 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
84 let $position := $from - 1 + $pos |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
85 let $resultElem := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
86 <hit> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
87 <pos>{$position}</pos> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
88 <pn>{$pnOfS}</pn> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
89 <pos-of-s>{$posOfS}</pos-of-s> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
90 <s>{string($s)}</s> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
91 <s-surrounds-pb>{$sSurroundsPB}</s-surrounds-pb> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
92 </hit> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
93 return $resultElem |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
94 let $resultSize := count($t) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
95 let $pages := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
96 if ($resultSize = 0) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
97 then 0 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
98 else $resultSize idiv $pageSize + 1 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
99 let $queryForms := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
100 if ($queryType = 'fulltextMorph' or $queryType = 'fulltextMorphLemma') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
101 then mpdltext:get-query-morph-forms($language, $queryStr) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
102 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
103 let $queryRegularizations := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
104 if ($queryType = 'fulltextMorph') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
105 then mpdltext:get-query-regularizations($language, $queryStr) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
106 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
107 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
108 let $encodedQueryTerms := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
109 if ($language = "zh") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
110 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
111 mpdltext:get-big5-encoded-terms($query) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
112 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
113 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
114 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
115 if ($luceneParseResult != '') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
116 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
117 <result> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
118 <error>{$luceneParseResult}</error> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
119 <size>0</size> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
120 <pages>0</pages> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
121 <pn>0</pn> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
122 <hits/> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
123 </result> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
124 else |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
125 <result> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
126 <size>{$resultSize}</size> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
127 <page-size>{$pageSize}</page-size> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
128 <pages>{$pages}</pages> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
129 <pn>{$pn}</pn> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
130 <hits> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
131 {$queryResult} |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
132 </hits> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
133 <query-forms>{$queryForms}</query-forms> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
134 <query-regularizations>{$queryRegularizations}</query-regularizations> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
135 {$encodedQueryTerms} |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
136 </result> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
137 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
138 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
139 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
140 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
141 declare function mpdl-lucene:attrSearch($metadataStr, $attribute1, $attrValue1, $boolOp, $attribute2, $attrValue2) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
142 let $attrFtQueryStr1 := mpdl-lucene:getAttrQueryStr($attribute1, $attrValue1) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
143 let $attrFtQueryStr2 := mpdl-lucene:getAttrQueryStr($attribute2, $attrValue2) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
144 let $booleanQueryStr := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
145 if ($attrValue2 = "") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
146 then $attrFtQueryStr1 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
147 else if ($attrValue2 != "" and $boolOp = "or") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
148 then concat($attrFtQueryStr1, " or ", $attrFtQueryStr2) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
149 else if ($attrValue2 != "" and $boolOp = "and") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
150 then concat("(", $attrFtQueryStr1, ") and (", $attrFtQueryStr2, ")") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
151 else if ($attrValue2 != "" and $boolOp = "andNot") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
152 then concat("(", $attrFtQueryStr1, ") and not(", $attrFtQueryStr2, ")") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
153 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
154 let $attrQuery := concat($metadataStr, "/.[", $booleanQueryStr, "]") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
155 let $luceneParseResult1 := mpdltext:lucene-parse-query($attrValue1) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
156 let $luceneParseResult2 := mpdltext:lucene-parse-query($attrValue2) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
157 let $luceneParseResult := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
158 if ($luceneParseResult1 = '' and $luceneParseResult2 = '') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
159 then '' |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
160 else if ($luceneParseResult1 != '' and $luceneParseResult2 = '') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
161 then concat("attribute ", $attribute1, " with value: ", $attrValue1, ": ", $luceneParseResult1) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
162 else if ($luceneParseResult1 = '' and $luceneParseResult2 != '') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
163 then concat("attribute ", $attribute2, " with value: ", $attrValue2, ": ", $luceneParseResult2) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
164 else if ($luceneParseResult1 != '' and $luceneParseResult2 != '') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
165 then concat("attribute ", $attribute1, " with value: ", $attrValue1, ": ", $luceneParseResult1, ", attribute ", $attribute2, " with value: ", $attrValue2, ": ", $luceneParseResult2) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
166 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
167 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
168 if ($luceneParseResult = '') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
169 then util:eval($attrQuery) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
170 else |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
171 <result> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
172 <error>{$luceneParseResult}</error> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
173 <size>0</size> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
174 <pages>0</pages> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
175 <pn>0</pn> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
176 <hits/> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
177 </result> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
178 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
179 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
180 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
181 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
182 declare function mpdl-lucene:order($metadata, $orderBy) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
183 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
184 (for $attrElem in $metadata |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
185 let $doc := $attrElem/fn:root() |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
186 let $documentUri := document-uri($doc) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
187 let $docBase := functx:substring-after-last(functx:substring-before-last(functx:substring-before-last($documentUri, "/"), "/"), "/") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
188 let $metadataElem := mpdl-lucene:getMetadata($docBase, $doc) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
189 let $attrElemName := mpdl-lucene:getElemNameByAttr($docBase, $orderBy) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
190 let $orderByElem := mpdl-lucene:getElemDynamic($metadataElem, $attrElemName) (: this costs performance for many result elements :) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
191 let $orderByTemp := lower-case(string-join($orderByElem, ', ')) order by $orderByTemp |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
192 return $attrElem) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
193 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
194 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
195 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
196 (: performance improvement (?): |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
197 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
198 for $x in doc(/db/doc1.xml) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
199 order by $x |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
200 if ($sortOrder eq "asc") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
201 then ( "ascending" ) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
202 else ( "descending" ) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
203 :) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
204 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
205 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
206 declare function mpdl-lucene:getMetadata($docBase, $doc) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
207 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
208 if ($docBase = 'archimedes') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
209 then $doc/archimedes/info |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
210 else if ($docBase = 'echo') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
211 then $doc/echo:echo/echo:metadata |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
212 else if ($docBase = 'tei') |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
213 then $doc/TEI:TEI/TEI:teiHeader |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
214 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
215 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
216 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
217 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
218 declare function mpdl-lucene:getText($docBase, $doc) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
219 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
220 if ($docBase = 'archimedes') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
221 then $doc/archimedes/text |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
222 else if ($docBase = 'echo') |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
223 then $doc/echo:echo/echo:text |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
224 else if ($docBase = 'tei') |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
225 then $doc/TEI:TEI/TEI:text |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
226 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
227 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
228 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
229 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
230 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
231 (: TODO: performance improvement: each time util:eval is executed :) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
232 declare function mpdl-lucene:getElemDynamic($path, $elemStr) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
233 let $evalExpr := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
234 if($elemStr != "") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
235 then concat("$path/", $elemStr) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
236 else "" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
237 let $result := util:eval($evalExpr) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
238 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
239 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
240 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
241 declare function mpdl-lucene:getAttrQueryStr($attribute, $attrValue) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
242 let $attrArch := mpdl-lucene:getElemNameByAttr("archimedes", $attribute) |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
243 let $attrEcho := mpdl-lucene:getElemNameByAttr("echo", $attribute) |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
244 let $attrTei := mpdl-lucene:getElemNameByAttr("tei", $attribute) |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
245 let $attrArchRelQueryStr := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
246 if ($attribute = "date") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
247 then concat($attrArch, " = '", $attrValue, "'") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
248 else concat("ft:query(", $attrArch, ", '", $attrValue, "')") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
249 let $attrEchoRelQueryStr := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
250 if ($attribute = "date") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
251 then concat($attrEcho, " = '", $attrValue, "'") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
252 else concat("ft:query(", $attrEcho, ", '", $attrValue, "')") |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
253 let $attrTeiRelQueryStr := |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
254 if ($attribute = "date") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
255 then concat($attrTei, " = '", $attrValue, "'") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
256 else concat("ft:query(", $attrTei, ", '", $attrValue, "')") |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
257 let $result := |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
258 if ($attrArch != "" and $attrEcho != "" and $attrTei != "") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
259 then concat($attrArchRelQueryStr, " or ", $attrEchoRelQueryStr, " or ", $attrTeiRelQueryStr) |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
260 else if ($attrArch != "" and $attrEcho != "" and $attrTei = "") |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
261 then concat($attrArchRelQueryStr, " or ", $attrEchoRelQueryStr) |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
262 else if ($attrArch != "" and $attrEcho = "" and $attrTei != "") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
263 then concat($attrArchRelQueryStr, " or ", $attrTeiRelQueryStr) |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
264 else if ($attrArch = "" and $attrEcho != "" and $attrTei != "") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
265 then concat($attrEchoRelQueryStr, " or ", $attrTeiRelQueryStr) |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
266 else if ($attrArch != "" and $attrEcho = "" and $attrTei = "") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
267 then $attrArchRelQueryStr |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
268 else if ($attrArch = "" and $attrEcho != "" and $attrTei = "") |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
269 then $attrEchoRelQueryStr |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
270 else if ($attrArch = "" and $attrEcho = "" and $attrTei != "") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
271 then $attrTeiRelQueryStr |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
272 else "" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
273 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
274 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
275 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
276 declare function mpdl-lucene:getElemNameByAttr($docBase, $attribute) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
277 let $docBaseArch := "archimedes" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
278 let $docBaseEcho := "echo" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
279 let $docBaseTei := "tei" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
280 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
281 if ($docBase = $docBaseArch and $attribute = "author") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
282 then "author" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
283 else if ($docBase = $docBaseEcho and $attribute = "author") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
284 then "dcterms:creator" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
285 else if ($docBase = $docBaseTei and $attribute = "author") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
286 then "TEI:fileDesc/TEI:titleStmt/TEI:author" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
287 else if ($docBase = $docBaseArch and $attribute = "title") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
288 then "title" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
289 else if ($docBase = $docBaseEcho and $attribute = "title") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
290 then "dcterms:title" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
291 else if ($docBase = $docBaseTei and $attribute = "title") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
292 then "TEI:fileDesc/TEI:titleStmt/TEI:title" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
293 else if ($docBase = $docBaseArch and $attribute = "place") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
294 then "place" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
295 else if ($docBase = $docBaseEcho and $attribute = "place") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
296 then "" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
297 else if ($docBase = $docBaseTei and $attribute = "place") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
298 then "TEI:fileDesc/TEI:publicationStmt/TEI:pubPlace" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
299 else if ($docBase = $docBaseArch and $attribute = "date") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
300 then "date" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
301 else if ($docBase = $docBaseEcho and $attribute = "date") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
302 then "dcterms:date" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
303 else if ($docBase = $docBaseTei and $attribute = "date") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
304 then "TEI:fileDesc/TEI:publicationStmt/TEI:date" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
305 else if ($docBase = $docBaseArch and $attribute = "language") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
306 then "lang" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
307 else if ($docBase = $docBaseEcho and $attribute = "language") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
308 then "dcterms:language" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
309 else if ($docBase = $docBaseTei and $attribute = "language") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
310 then "TEI:profileDesc/TEI:langUsage/TEI:language/@ident" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
311 else if ($docBase = $docBaseArch and $attribute = "identifier") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
312 then "locator" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
313 else if ($docBase = $docBaseEcho and $attribute = "identifier") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
314 then "dcterms:identifier" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
315 else if ($docBase = $docBaseTei and $attribute = "identifier") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
316 then "identifier" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
317 else if ($docBase = $docBaseArch and $attribute = "rights") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
318 then "" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
319 else if ($docBase = $docBaseEcho and $attribute = "rights") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
320 then "dcterms:rights" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
321 else if ($docBase = $docBaseTei and $attribute = "rights") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
322 then "rights" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
323 else if ($docBase = $docBaseArch and $attribute = "license") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
324 then "" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
325 else if ($docBase = $docBaseEcho and $attribute = "license") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
326 then "dcterms:license" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
327 else if ($docBase = $docBaseTei and $attribute = "license") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
328 then "" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
329 else if ($docBase = $docBaseArch and $attribute = "accessRights") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
330 then "" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
331 else if ($docBase = $docBaseEcho and $attribute = "accessRights") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
332 then "dcterms:accessRights" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
333 else if ($docBase = $docBaseTei and $attribute = "accessRights") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
334 then "accessRights" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
335 else if ($docBase = $docBaseArch and $attribute = "file") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
336 then "cvs_file" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
337 else if ($docBase = $docBaseEcho and $attribute = "file") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
338 then "" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
339 else if ($docBase = $docBaseTei and $attribute = "file") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
340 then "" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
341 else if ($docBase = $docBaseArch and $attribute = "translator") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
342 then "translator" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
343 else if ($docBase = $docBaseEcho and $attribute = "translator") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
344 then "" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
345 else if ($docBase = $docBaseTei and $attribute = "translator") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
346 then "" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
347 else if ($docBase = $docBaseArch and $attribute = "version") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
348 then "cvs_version" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
349 else if ($docBase = $docBaseEcho and $attribute = "version") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
350 then "" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
351 else if ($docBase = $docBaseTei and $attribute = "version") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
352 then "" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
353 else "" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
354 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
355 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
356 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
357 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
358 declare function mpdl-lucene:getElementsByAttr($metadata, $docBase, $attribute) { |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
359 let $docBaseArch := "archimedes" |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
360 let $docBaseEcho := "echo" |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
361 let $docBaseTei := "tei" |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
362 let $result := |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
363 if ($docBase = $docBaseArch and $attribute = "author") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
364 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
365 for $elem in $metadata/author |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
366 return <author>{$elem}</author> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
367 else if ($docBase = $docBaseEcho and $attribute = "author") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
368 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
369 for $elem in $metadata/dcterms:creator |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
370 return <author>{$elem}</author> |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
371 else if ($docBase = $docBaseTei and $attribute = "author") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
372 then |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
373 for $elem in $metadata/TEI:fileDesc/TEI:titleStmt/TEI:author |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
374 return <author>{$elem}</author> |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
375 else if ($docBase = $docBaseArch and $attribute = "title") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
376 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
377 for $elem in $metadata/title |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
378 return <title>{$elem}</title> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
379 else if ($docBase = $docBaseEcho and $attribute = "title") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
380 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
381 for $elem in $metadata/dcterms:title |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
382 return <title>{$elem}</title> |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
383 else if ($docBase = $docBaseTei and $attribute = "title") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
384 then |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
385 for $elem in $metadata/TEI:fileDesc/TEI:titleStmt/TEI:title |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
386 return <title>{$elem}</title> |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
387 else if ($docBase = $docBaseArch and $attribute = "place") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
388 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
389 for $elem in $metadata/place |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
390 return <place>{$elem}</place> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
391 else if ($docBase = $docBaseEcho and $attribute = "place") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
392 then () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
393 else if ($docBase = $docBaseArch and $attribute = "date") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
394 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
395 for $elem in $metadata/date |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
396 return <date>{$elem}</date> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
397 else if ($docBase = $docBaseEcho and $attribute = "date") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
398 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
399 for $elem in $metadata/dcterms:date |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
400 return <date>{$elem}</date> |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
401 else if ($docBase = $docBaseTei and $attribute = "date") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
402 then |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
403 for $elem in $metadata/TEI:fileDesc/TEI:publicationStmt/TEI:date |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
404 return <date>{$elem}</date> |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
405 else if ($docBase = $docBaseArch and $attribute = "language") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
406 then $metadata/lang |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
407 else if ($docBase = $docBaseEcho and $attribute = "language") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
408 then $metadata/dcterms:language |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
409 else if ($docBase = $docBaseTei and $attribute = "language") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
410 then $metadata/TEI:profileDesc/TEI:langUsage/TEI:language/@ident |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
411 else if ($docBase = $docBaseArch and $attribute = "identifier") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
412 then $metadata/locator |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
413 else if ($docBase = $docBaseEcho and $attribute = "identifier") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
414 then $metadata/dcterms:identifier |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
415 else if ($docBase = $docBaseArch and $attribute = "rights") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
416 then () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
417 else if ($docBase = $docBaseEcho and $attribute = "rights") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
418 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
419 for $elem in $metadata/dcterms:rights |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
420 return <rights>{$elem}</rights> |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
421 else if ($docBase = $docBaseTei and $attribute = "rights") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
422 then $metadata/TEI:fileDesc/TEI:publicationStmt/TEI:availability |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
423 else if ($docBase = $docBaseArch and $attribute = "accessRights") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
424 then () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
425 else if ($docBase = $docBaseEcho and $attribute = "accessRights") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
426 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
427 for $elem in $metadata/dcterms:accessRights |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
428 return <rights>{$elem}</rights> |
11
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
429 else if ($docBase = $docBaseTei and $attribute = "accessRights") |
d6f528ad5d96
TEI Unterst?tzung, Fehlerbehebungen, externe Objekte
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
7
diff
changeset
|
430 then $metadata/TEI:fileDesc/TEI:publicationStmt/TEI:availability/@status |
7
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
431 else if ($docBase = $docBaseArch and $attribute = "license") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
432 then () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
433 else if ($docBase = $docBaseEcho and $attribute = "license") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
434 then |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
435 for $elem in $metadata/dcterms:license |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
436 return <license>{$elem}</license> |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
437 else if ($docBase = $docBaseArch and $attribute = "file") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
438 then $metadata/cvs_file |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
439 else if ($docBase = $docBaseEcho and $attribute = "file") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
440 then () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
441 else if ($docBase = $docBaseArch and $attribute = "translator") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
442 then $metadata/translator |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
443 else if ($docBase = $docBaseEcho and $attribute = "translator") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
444 then () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
445 else if ($docBase = $docBaseArch and $attribute = "version") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
446 then $metadata/cvs_version |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
447 else if ($docBase = $docBaseEcho and $attribute = "version") |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
448 then () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
449 else () |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
450 |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
451 return $result |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
452 }; |
5589d865af7a
Erstellung XQL/XSL Applikation
Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
453 |