1 <?xml version="1.0" encoding="UTF-8"?>
4 <settings target="z3950.indexdata.com/gils">
5 <set name="pz:name" value="Index Data GILS test server"/>
7 <!-- mapping for unqualified search -->
8 <set name="pz:cclmap:term" value="u=1016 t=l,r s=al"/>
10 <!-- field-specific mappings -->
11 <set name="pz:cclmap:ti" value="u=4 s=al"/>
12 <set name="pz:cclmap:su" value="u=21 s=al"/>
13 <set name="pz:cclmap:isbn" value="u=7"/>
14 <set name="pz:cclmap:issn" value="u=8"/>
15 <set name="pz:cclmap:date" value="u=30 r=r"/>
17 <!-- Retrieval settings -->
18 <set name="pz:requestsyntax" value="marc21"/>
20 <!-- Result normalization settings -->
21 <set name="pz:nativesyntax" value="iso2709"/>
22 <set name="pz:xslt" value="myxslt"/>
23 <set name="pz:apdulog" value="1"/>
25 <set name="pz:maxrecs" value="3" />
26 <set name="pz:extendrecs" value="6" />
29 <metadata name="url" merge="unique"/>
30 <metadata name="title" brief="yes" sortkey="skiparticle" merge="longest" rank="6"/>
31 <metadata name="title-remainder" brief="yes" merge="longest" rank="5"/>
32 <metadata name="isbn"/>
33 <metadata name="date" brief="yes" sortkey="numeric" type="year" merge="range"
35 <metadata name="author" brief="yes" termlist="yes" merge="longest" rank="2"/>
36 <metadata name="subject" merge="unique" termlist="yes" rank="3"/>
42 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
43 xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
44 xmlns:marc="http://www.loc.gov/MARC21/slim">
46 <xsl:param name="test"/>
48 <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
50 <!-- Extract metadata from MARC21/USMARC
51 http://www.loc.gov/marc/bibliographic/ecbdhome.html
54 <xsl:template match="marc:record">
55 <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
56 <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
57 <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
58 <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
59 <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
60 <xsl:variable name="medium">
62 <xsl:when test="$title_medium">
63 <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
65 <xsl:when test="$fulltext_a">
66 <xsl:text>electronic resource</xsl:text>
68 <xsl:when test="$fulltext_b">
69 <xsl:text>electronic resource</xsl:text>
71 <xsl:when test="$electronic_location_url">
72 <xsl:text>electronic resource</xsl:text>
74 <xsl:when test="$journal_title">
75 <xsl:text>article</xsl:text>
78 <xsl:text>book</xsl:text>
84 <xsl:attribute name="mergekey">
85 <xsl:text>title </xsl:text>
86 <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
87 <xsl:text> author </xsl:text>
88 <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
89 <xsl:text> medium </xsl:text>
90 <xsl:value-of select="$medium"/>
93 <pz:metadata type="test-usersetting-2">
94 test-usersetting-2 data:
95 <xsl:value-of select="$test"/>
98 <xsl:for-each select="marc:controlfield[@tag='001']">
99 <pz:metadata type="id">
100 <xsl:value-of select="."/>
104 <xsl:for-each select="marc:datafield[@tag='010']">
105 <pz:metadata type="lccn">
106 <xsl:value-of select="marc:subfield[@code='a']"/>
110 <xsl:for-each select="marc:datafield[@tag='020']">
111 <pz:metadata type="isbn">
112 <xsl:value-of select="marc:subfield[@code='a']"/>
116 <xsl:for-each select="marc:datafield[@tag='022']">
117 <pz:metadata type="issn">
118 <xsl:value-of select="marc:subfield[@code='a']"/>
122 <xsl:for-each select="marc:datafield[@tag='027']">
123 <pz:metadata type="tech-rep-nr">
124 <xsl:value-of select="marc:subfield[@code='a']"/>
128 <xsl:for-each select="marc:datafield[@tag='100']">
129 <pz:metadata type="author">
130 <xsl:value-of select="marc:subfield[@code='a']"/>
132 <pz:metadata type="author-title">
133 <xsl:value-of select="marc:subfield[@code='c']"/>
135 <pz:metadata type="author-date">
136 <xsl:value-of select="marc:subfield[@code='d']"/>
140 <xsl:for-each select="marc:datafield[@tag='110']">
141 <pz:metadata type="corporate-name">
142 <xsl:value-of select="marc:subfield[@code='a']"/>
144 <pz:metadata type="corporate-location">
145 <xsl:value-of select="marc:subfield[@code='c']"/>
147 <pz:metadata type="corporate-date">
148 <xsl:value-of select="marc:subfield[@code='d']"/>
152 <xsl:for-each select="marc:datafield[@tag='111']">
153 <pz:metadata type="meeting-name">
154 <xsl:value-of select="marc:subfield[@code='a']"/>
156 <pz:metadata type="meeting-location">
157 <xsl:value-of select="marc:subfield[@code='c']"/>
159 <pz:metadata type="meeting-date">
160 <xsl:value-of select="marc:subfield[@code='d']"/>
164 <xsl:for-each select="marc:datafield[@tag='260']">
165 <pz:metadata type="date">
166 <xsl:value-of select="marc:subfield[@code='c']"/>
170 <xsl:for-each select="marc:datafield[@tag='245']">
171 <pz:metadata type="title">
172 <xsl:value-of select="marc:subfield[@code='a']"/>
174 <pz:metadata type="title-remainder">
175 <xsl:value-of select="marc:subfield[@code='b']"/>
177 <pz:metadata type="title-responsibility">
178 <xsl:value-of select="marc:subfield[@code='c']"/>
180 <pz:metadata type="title-dates">
181 <xsl:value-of select="marc:subfield[@code='f']"/>
183 <pz:metadata type="title-medium">
184 <xsl:value-of select="marc:subfield[@code='h']"/>
188 <xsl:for-each select="marc:datafield[@tag='250']">
189 <pz:metadata type="edition">
190 <xsl:value-of select="marc:subfield[@code='a']"/>
194 <xsl:for-each select="marc:datafield[@tag='260']">
195 <pz:metadata type="publication-place">
196 <xsl:value-of select="marc:subfield[@code='a']"/>
198 <pz:metadata type="publication-name">
199 <xsl:value-of select="marc:subfield[@code='b']"/>
201 <pz:metadata type="publication-date">
202 <xsl:value-of select="marc:subfield[@code='c']"/>
206 <xsl:for-each select="marc:datafield[@tag='300']">
207 <pz:metadata type="physical-extent">
208 <xsl:value-of select="marc:subfield[@code='a']"/>
210 <pz:metadata type="physical-format">
211 <xsl:value-of select="marc:subfield[@code='b']"/>
213 <pz:metadata type="physical-dimensions">
214 <xsl:value-of select="marc:subfield[@code='c']"/>
216 <pz:metadata type="physical-accomp">
217 <xsl:value-of select="marc:subfield[@code='e']"/>
219 <pz:metadata type="physical-unittype">
220 <xsl:value-of select="marc:subfield[@code='f']"/>
222 <pz:metadata type="physical-unitsize">
223 <xsl:value-of select="marc:subfield[@code='g']"/>
225 <pz:metadata type="physical-specified">
226 <xsl:value-of select="marc:subfield[@code='3']"/>
230 <xsl:for-each select="marc:datafield[@tag='440']">
231 <pz:metadata type="series-title">
232 <xsl:value-of select="marc:subfield[@code='a']"/>
236 <xsl:for-each select="marc:datafield[@tag >= 500 and @tag <= 599]
237 [@tag != '506' and @tag != '530' and
238 @tag != '540' and @tag != '546'
240 <!-- The tag attribute below will be preserved -->
241 <pz:metadata type="description" tag="{@tag}">
242 <xsl:value-of select="*/text()"/>
246 <xsl:for-each select="marc:datafield[@tag='650' or @tag='653']">
247 <pz:metadata type="subject">
248 <xsl:value-of select="marc:subfield[@code='a']"/>
252 <xsl:for-each select="marc:datafield[@tag='856']">
253 <pz:metadata type="electronic-url">
254 <xsl:value-of select="marc:subfield[@code='u']"/>
256 <pz:metadata type="electronic-text">
257 <xsl:value-of select="marc:subfield[@code='y']"/>
259 <pz:metadata type="electronic-note">
260 <xsl:value-of select="marc:subfield[@code='z']"/>
264 <xsl:for-each select="marc:datafield[@tag='773']">
265 <pz:metadata type="citation">
266 <xsl:for-each select="*">
267 <xsl:value-of select="normalize-space(.)"/>
268 <xsl:text> </xsl:text>
273 <pz:metadata type="medium">
274 <xsl:value-of select="$medium"/>
277 <xsl:if test="$fulltext_a">
278 <pz:metadata type="fulltext">
279 <xsl:value-of select="$fulltext_a"/>
283 <xsl:if test="$fulltext_b">
284 <pz:metadata type="fulltext">
285 <xsl:value-of select="$fulltext_b"/>