1 <?xml version="1.0" encoding="UTF-8"?>
3 <timeout session="60" z3950_operation="30" z3950_session="60"/>
5 <settings target="z3950.indexdata.com/gils">
6 <set name="pz:name" value="Index Data GILS test server"/>
8 <!-- mapping for unqualified search -->
9 <set name="pz:cclmap:term" value="u=1016 t=l,r s=al"/>
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"/>
18 <!-- Retrieval settings -->
19 <set name="pz:requestsyntax" value="marc21"/>
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"/>
26 <set name="pz:maxrecs" value="3" />
27 <set name="pz:extendrecs" value="3" />
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"
36 <metadata name="author" brief="yes" termlist="yes" merge="longest" rank="2"/>
37 <metadata name="subject" merge="unique" termlist="yes" rank="3"/>
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">
47 <xsl:param name="test"/>
49 <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
51 <!-- Extract metadata from MARC21/USMARC
52 http://www.loc.gov/marc/bibliographic/ecbdhome.html
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">
63 <xsl:when test="$title_medium">
64 <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
66 <xsl:when test="$fulltext_a">
67 <xsl:text>electronic resource</xsl:text>
69 <xsl:when test="$fulltext_b">
70 <xsl:text>electronic resource</xsl:text>
72 <xsl:when test="$electronic_location_url">
73 <xsl:text>electronic resource</xsl:text>
75 <xsl:when test="$journal_title">
76 <xsl:text>article</xsl:text>
79 <xsl:text>book</xsl:text>
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"/>
94 <pz:metadata type="test-usersetting-2">
95 test-usersetting-2 data:
96 <xsl:value-of select="$test"/>
99 <xsl:for-each select="marc:controlfield[@tag='001']">
100 <pz:metadata type="id">
101 <xsl:value-of select="."/>
105 <xsl:for-each select="marc:datafield[@tag='010']">
106 <pz:metadata type="lccn">
107 <xsl:value-of select="marc:subfield[@code='a']"/>
111 <xsl:for-each select="marc:datafield[@tag='020']">
112 <pz:metadata type="isbn">
113 <xsl:value-of select="marc:subfield[@code='a']"/>
117 <xsl:for-each select="marc:datafield[@tag='022']">
118 <pz:metadata type="issn">
119 <xsl:value-of select="marc:subfield[@code='a']"/>
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']"/>
129 <xsl:for-each select="marc:datafield[@tag='100']">
130 <pz:metadata type="author">
131 <xsl:value-of select="marc:subfield[@code='a']"/>
133 <pz:metadata type="author-title">
134 <xsl:value-of select="marc:subfield[@code='c']"/>
136 <pz:metadata type="author-date">
137 <xsl:value-of select="marc:subfield[@code='d']"/>
141 <xsl:for-each select="marc:datafield[@tag='110']">
142 <pz:metadata type="corporate-name">
143 <xsl:value-of select="marc:subfield[@code='a']"/>
145 <pz:metadata type="corporate-location">
146 <xsl:value-of select="marc:subfield[@code='c']"/>
148 <pz:metadata type="corporate-date">
149 <xsl:value-of select="marc:subfield[@code='d']"/>
153 <xsl:for-each select="marc:datafield[@tag='111']">
154 <pz:metadata type="meeting-name">
155 <xsl:value-of select="marc:subfield[@code='a']"/>
157 <pz:metadata type="meeting-location">
158 <xsl:value-of select="marc:subfield[@code='c']"/>
160 <pz:metadata type="meeting-date">
161 <xsl:value-of select="marc:subfield[@code='d']"/>
165 <xsl:for-each select="marc:datafield[@tag='260']">
166 <pz:metadata type="date">
167 <xsl:value-of select="marc:subfield[@code='c']"/>
171 <xsl:for-each select="marc:datafield[@tag='245']">
172 <pz:metadata type="title">
173 <xsl:value-of select="marc:subfield[@code='a']"/>
175 <pz:metadata type="title-remainder">
176 <xsl:value-of select="marc:subfield[@code='b']"/>
178 <pz:metadata type="title-responsibility">
179 <xsl:value-of select="marc:subfield[@code='c']"/>
181 <pz:metadata type="title-dates">
182 <xsl:value-of select="marc:subfield[@code='f']"/>
184 <pz:metadata type="title-medium">
185 <xsl:value-of select="marc:subfield[@code='h']"/>
189 <xsl:for-each select="marc:datafield[@tag='250']">
190 <pz:metadata type="edition">
191 <xsl:value-of select="marc:subfield[@code='a']"/>
195 <xsl:for-each select="marc:datafield[@tag='260']">
196 <pz:metadata type="publication-place">
197 <xsl:value-of select="marc:subfield[@code='a']"/>
199 <pz:metadata type="publication-name">
200 <xsl:value-of select="marc:subfield[@code='b']"/>
202 <pz:metadata type="publication-date">
203 <xsl:value-of select="marc:subfield[@code='c']"/>
207 <xsl:for-each select="marc:datafield[@tag='300']">
208 <pz:metadata type="physical-extent">
209 <xsl:value-of select="marc:subfield[@code='a']"/>
211 <pz:metadata type="physical-format">
212 <xsl:value-of select="marc:subfield[@code='b']"/>
214 <pz:metadata type="physical-dimensions">
215 <xsl:value-of select="marc:subfield[@code='c']"/>
217 <pz:metadata type="physical-accomp">
218 <xsl:value-of select="marc:subfield[@code='e']"/>
220 <pz:metadata type="physical-unittype">
221 <xsl:value-of select="marc:subfield[@code='f']"/>
223 <pz:metadata type="physical-unitsize">
224 <xsl:value-of select="marc:subfield[@code='g']"/>
226 <pz:metadata type="physical-specified">
227 <xsl:value-of select="marc:subfield[@code='3']"/>
231 <xsl:for-each select="marc:datafield[@tag='440']">
232 <pz:metadata type="series-title">
233 <xsl:value-of select="marc:subfield[@code='a']"/>
237 <xsl:for-each select="marc:datafield[@tag >= 500 and @tag <= 599]
238 [@tag != '506' and @tag != '530' and
239 @tag != '540' and @tag != '546'
241 <!-- The tag attribute below will be preserved -->
242 <pz:metadata type="description" tag="{@tag}">
243 <xsl:value-of select="*/text()"/>
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']"/>
253 <xsl:for-each select="marc:datafield[@tag='856']">
254 <pz:metadata type="electronic-url">
255 <xsl:value-of select="marc:subfield[@code='u']"/>
257 <pz:metadata type="electronic-text">
258 <xsl:value-of select="marc:subfield[@code='y']"/>
260 <pz:metadata type="electronic-note">
261 <xsl:value-of select="marc:subfield[@code='z']"/>
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>
274 <pz:metadata type="medium">
275 <xsl:value-of select="$medium"/>
278 <xsl:if test="$fulltext_a">
279 <pz:metadata type="fulltext">
280 <xsl:value-of select="$fulltext_a"/>
284 <xsl:if test="$fulltext_b">
285 <pz:metadata type="fulltext">
286 <xsl:value-of select="$fulltext_b"/>