Add timeout things to two test services
[pazpar2-moved-to-github.git] / test / gils_service.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2     <service id="gils">
3       <timeout session="60" z3950_operation="30" z3950_session="60"/>
4       <rank debug="yes"/>
5       <settings target="z3950.indexdata.com/gils">
6         <set name="pz:name" value="Index Data GILS test server"/>
7         
8         <!-- mapping for unqualified search -->
9         <set name="pz:cclmap:term" value="u=1016 t=l,r s=al"/>
10         
11         <!-- field-specific mappings -->
12         <set name="pz:cclmap:ti" value="u=4 s=al"/>
13         <set name="pz:cclmap:su" value="u=21 s=al"/>
14         <set name="pz:cclmap:isbn" value="u=7"/>
15         <set name="pz:cclmap:issn" value="u=8"/>
16         <set name="pz:cclmap:date" value="u=30 r=r"/>
17         
18         <!-- Retrieval settings -->
19         <set name="pz:requestsyntax" value="marc21"/>
20
21         <!-- Result normalization settings -->
22         <set name="pz:nativesyntax" value="iso2709"/>
23         <set name="pz:xslt" value="myxslt"/>
24         <set name="pz:apdulog" value="1"/>
25
26         <set name="pz:maxrecs" value="3" />
27         <set name="pz:extendrecs" value="3" />
28       </settings>
29
30       <metadata name="url" merge="unique"/>
31       <metadata name="title" brief="yes" sortkey="skiparticle" merge="longest" rank="6"/>
32       <metadata name="title-remainder" brief="yes" merge="longest" rank="5"/>
33       <metadata name="isbn"/>
34       <metadata name="date" brief="yes" sortkey="numeric" type="year" merge="range"
35                 termlist="yes"/>
36       <metadata name="author" brief="yes" termlist="yes" merge="longest" rank="2"/>
37       <metadata name="subject" merge="unique" termlist="yes" rank="3"/>
38       <metadata name="id"/>
39
40       <xslt id="myxslt">
41 <xsl:stylesheet
42     version="1.0"
43     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
44     xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
45     xmlns:marc="http://www.loc.gov/MARC21/slim">
46
47     <xsl:param name="test"/>
48   
49   <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
50
51 <!-- Extract metadata from MARC21/USMARC 
52       http://www.loc.gov/marc/bibliographic/ecbdhome.html
53 -->  
54   
55   <xsl:template match="marc:record">
56     <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
57     <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
58     <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
59     <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
60     <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
61     <xsl:variable name="medium">
62       <xsl:choose>
63         <xsl:when test="$title_medium">
64           <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
65         </xsl:when>
66         <xsl:when test="$fulltext_a">
67           <xsl:text>electronic resource</xsl:text>
68         </xsl:when>
69         <xsl:when test="$fulltext_b">
70           <xsl:text>electronic resource</xsl:text>
71         </xsl:when>
72         <xsl:when test="$electronic_location_url">
73           <xsl:text>electronic resource</xsl:text>
74         </xsl:when>
75         <xsl:when test="$journal_title">
76           <xsl:text>article</xsl:text>
77         </xsl:when>
78         <xsl:otherwise>
79           <xsl:text>book</xsl:text>
80         </xsl:otherwise>
81       </xsl:choose>
82     </xsl:variable>
83
84     <pz:record>
85       <xsl:attribute name="mergekey">
86         <xsl:text>title </xsl:text>
87         <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
88         <xsl:text> author </xsl:text>
89         <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
90         <xsl:text> medium </xsl:text>
91         <xsl:value-of select="$medium"/>
92       </xsl:attribute>
93
94       <pz:metadata type="test-usersetting-2">
95         test-usersetting-2 data: 
96         <xsl:value-of select="$test"/>
97       </pz:metadata>
98
99       <xsl:for-each select="marc:controlfield[@tag='001']">
100         <pz:metadata type="id">
101           <xsl:value-of select="."/>
102         </pz:metadata>
103       </xsl:for-each>
104
105       <xsl:for-each select="marc:datafield[@tag='010']">
106         <pz:metadata type="lccn">
107           <xsl:value-of select="marc:subfield[@code='a']"/>
108         </pz:metadata>
109       </xsl:for-each>
110
111       <xsl:for-each select="marc:datafield[@tag='020']">
112         <pz:metadata type="isbn">
113           <xsl:value-of select="marc:subfield[@code='a']"/>
114         </pz:metadata>
115       </xsl:for-each>
116
117       <xsl:for-each select="marc:datafield[@tag='022']">
118         <pz:metadata type="issn">
119           <xsl:value-of select="marc:subfield[@code='a']"/>
120         </pz:metadata>
121       </xsl:for-each>
122
123       <xsl:for-each select="marc:datafield[@tag='027']">
124         <pz:metadata type="tech-rep-nr">
125           <xsl:value-of select="marc:subfield[@code='a']"/>
126         </pz:metadata>
127       </xsl:for-each>
128
129       <xsl:for-each select="marc:datafield[@tag='100']">
130         <pz:metadata type="author">
131           <xsl:value-of select="marc:subfield[@code='a']"/>
132         </pz:metadata>
133         <pz:metadata type="author-title">
134           <xsl:value-of select="marc:subfield[@code='c']"/>
135         </pz:metadata>
136         <pz:metadata type="author-date">
137           <xsl:value-of select="marc:subfield[@code='d']"/>
138         </pz:metadata>
139       </xsl:for-each>
140
141       <xsl:for-each select="marc:datafield[@tag='110']">
142         <pz:metadata type="corporate-name">
143             <xsl:value-of select="marc:subfield[@code='a']"/>
144         </pz:metadata>
145         <pz:metadata type="corporate-location">
146             <xsl:value-of select="marc:subfield[@code='c']"/>
147         </pz:metadata>
148         <pz:metadata type="corporate-date">
149             <xsl:value-of select="marc:subfield[@code='d']"/>
150         </pz:metadata>
151       </xsl:for-each>
152
153       <xsl:for-each select="marc:datafield[@tag='111']">
154         <pz:metadata type="meeting-name">
155             <xsl:value-of select="marc:subfield[@code='a']"/>
156         </pz:metadata>
157         <pz:metadata type="meeting-location">
158             <xsl:value-of select="marc:subfield[@code='c']"/>
159         </pz:metadata>
160         <pz:metadata type="meeting-date">
161             <xsl:value-of select="marc:subfield[@code='d']"/>
162         </pz:metadata>
163       </xsl:for-each>
164
165       <xsl:for-each select="marc:datafield[@tag='260']">
166         <pz:metadata type="date">
167             <xsl:value-of select="marc:subfield[@code='c']"/>
168         </pz:metadata>
169       </xsl:for-each>
170
171       <xsl:for-each select="marc:datafield[@tag='245']">
172         <pz:metadata type="title">
173           <xsl:value-of select="marc:subfield[@code='a']"/>
174         </pz:metadata>
175         <pz:metadata type="title-remainder">
176           <xsl:value-of select="marc:subfield[@code='b']"/>
177         </pz:metadata>
178         <pz:metadata type="title-responsibility">
179           <xsl:value-of select="marc:subfield[@code='c']"/>
180         </pz:metadata>
181         <pz:metadata type="title-dates">
182           <xsl:value-of select="marc:subfield[@code='f']"/>
183         </pz:metadata>
184         <pz:metadata type="title-medium">
185           <xsl:value-of select="marc:subfield[@code='h']"/>
186         </pz:metadata>
187       </xsl:for-each>
188
189       <xsl:for-each select="marc:datafield[@tag='250']">
190         <pz:metadata type="edition">
191             <xsl:value-of select="marc:subfield[@code='a']"/>
192         </pz:metadata>
193       </xsl:for-each>
194
195       <xsl:for-each select="marc:datafield[@tag='260']">
196         <pz:metadata type="publication-place">
197           <xsl:value-of select="marc:subfield[@code='a']"/>
198         </pz:metadata>
199         <pz:metadata type="publication-name">
200           <xsl:value-of select="marc:subfield[@code='b']"/>
201         </pz:metadata>
202         <pz:metadata type="publication-date">
203           <xsl:value-of select="marc:subfield[@code='c']"/>
204         </pz:metadata>
205       </xsl:for-each>
206
207       <xsl:for-each select="marc:datafield[@tag='300']">
208         <pz:metadata type="physical-extent">
209           <xsl:value-of select="marc:subfield[@code='a']"/>
210         </pz:metadata>
211         <pz:metadata type="physical-format">
212           <xsl:value-of select="marc:subfield[@code='b']"/>
213         </pz:metadata>
214         <pz:metadata type="physical-dimensions">
215           <xsl:value-of select="marc:subfield[@code='c']"/>
216         </pz:metadata>
217         <pz:metadata type="physical-accomp">
218           <xsl:value-of select="marc:subfield[@code='e']"/>
219         </pz:metadata>
220         <pz:metadata type="physical-unittype">
221           <xsl:value-of select="marc:subfield[@code='f']"/>
222         </pz:metadata>
223         <pz:metadata type="physical-unitsize">
224           <xsl:value-of select="marc:subfield[@code='g']"/>
225         </pz:metadata>
226         <pz:metadata type="physical-specified">
227           <xsl:value-of select="marc:subfield[@code='3']"/>
228         </pz:metadata>
229       </xsl:for-each>
230
231       <xsl:for-each select="marc:datafield[@tag='440']">
232         <pz:metadata type="series-title">
233           <xsl:value-of select="marc:subfield[@code='a']"/>
234         </pz:metadata>
235       </xsl:for-each>
236
237       <xsl:for-each select="marc:datafield[@tag &gt;= 500 and @tag &lt;= 599]
238                             [@tag != '506' and @tag != '530' and
239                             @tag != '540' and @tag != '546'
240                             and @tag != '522']">
241         <!-- The tag attribute below will be preserved -->
242         <pz:metadata type="description" tag="{@tag}">
243             <xsl:value-of select="*/text()"/>
244         </pz:metadata>
245       </xsl:for-each>
246       
247       <xsl:for-each select="marc:datafield[@tag='650' or @tag='653']">
248         <pz:metadata type="subject">
249           <xsl:value-of select="marc:subfield[@code='a']"/>
250         </pz:metadata>
251       </xsl:for-each>
252
253       <xsl:for-each select="marc:datafield[@tag='856']">
254         <pz:metadata type="electronic-url">
255           <xsl:value-of select="marc:subfield[@code='u']"/>
256         </pz:metadata>
257         <pz:metadata type="electronic-text">
258           <xsl:value-of select="marc:subfield[@code='y']"/>
259         </pz:metadata>
260         <pz:metadata type="electronic-note">
261           <xsl:value-of select="marc:subfield[@code='z']"/>
262         </pz:metadata>
263       </xsl:for-each>
264
265       <xsl:for-each select="marc:datafield[@tag='773']">
266         <pz:metadata type="citation">
267           <xsl:for-each select="*">
268             <xsl:value-of select="normalize-space(.)"/>
269             <xsl:text> </xsl:text>
270           </xsl:for-each>
271         </pz:metadata>
272       </xsl:for-each>
273
274       <pz:metadata type="medium">
275         <xsl:value-of select="$medium"/>
276       </pz:metadata>
277       
278       <xsl:if test="$fulltext_a">
279         <pz:metadata type="fulltext">
280           <xsl:value-of select="$fulltext_a"/>
281         </pz:metadata>
282       </xsl:if>
283
284       <xsl:if test="$fulltext_b">
285         <pz:metadata type="fulltext">
286           <xsl:value-of select="$fulltext_b"/>
287         </pz:metadata>
288       </xsl:if>
289     </pz:record>
290   </xsl:template>
291
292 </xsl:stylesheet>
293       </xslt>
294     </service>