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" />
28 <metadata name="url" merge="unique"/>
29 <metadata name="title" brief="yes" sortkey="skiparticle" merge="longest" rank="6"/>
30 <metadata name="title-remainder" brief="yes" merge="longest" rank="5"/>
31 <metadata name="isbn"/>
32 <metadata name="date" brief="yes" sortkey="numeric" type="year" merge="range"
34 <metadata name="author" brief="yes" termlist="yes" merge="longest" rank="2"/>
35 <metadata name="subject" merge="unique" termlist="yes" rank="3"/>
41 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
42 xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
43 xmlns:marc="http://www.loc.gov/MARC21/slim">
45 <xsl:param name="test"/>
47 <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
49 <!-- Extract metadata from MARC21/USMARC
50 http://www.loc.gov/marc/bibliographic/ecbdhome.html
53 <xsl:template match="marc:record">
54 <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
55 <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
56 <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
57 <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
58 <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
59 <xsl:variable name="medium">
61 <xsl:when test="$title_medium">
62 <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
64 <xsl:when test="$fulltext_a">
65 <xsl:text>electronic resource</xsl:text>
67 <xsl:when test="$fulltext_b">
68 <xsl:text>electronic resource</xsl:text>
70 <xsl:when test="$electronic_location_url">
71 <xsl:text>electronic resource</xsl:text>
73 <xsl:when test="$journal_title">
74 <xsl:text>article</xsl:text>
77 <xsl:text>book</xsl:text>
83 <xsl:attribute name="mergekey">
84 <xsl:text>title </xsl:text>
85 <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
86 <xsl:text> author </xsl:text>
87 <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
88 <xsl:text> medium </xsl:text>
89 <xsl:value-of select="$medium"/>
92 <pz:metadata type="test-usersetting-2">
93 test-usersetting-2 data:
94 <xsl:value-of select="$test"/>
97 <xsl:for-each select="marc:controlfield[@tag='001']">
98 <pz:metadata type="id">
99 <xsl:value-of select="."/>
103 <xsl:for-each select="marc:datafield[@tag='010']">
104 <pz:metadata type="lccn">
105 <xsl:value-of select="marc:subfield[@code='a']"/>
109 <xsl:for-each select="marc:datafield[@tag='020']">
110 <pz:metadata type="isbn">
111 <xsl:value-of select="marc:subfield[@code='a']"/>
115 <xsl:for-each select="marc:datafield[@tag='022']">
116 <pz:metadata type="issn">
117 <xsl:value-of select="marc:subfield[@code='a']"/>
121 <xsl:for-each select="marc:datafield[@tag='027']">
122 <pz:metadata type="tech-rep-nr">
123 <xsl:value-of select="marc:subfield[@code='a']"/>
127 <xsl:for-each select="marc:datafield[@tag='100']">
128 <pz:metadata type="author">
129 <xsl:value-of select="marc:subfield[@code='a']"/>
131 <pz:metadata type="author-title">
132 <xsl:value-of select="marc:subfield[@code='c']"/>
134 <pz:metadata type="author-date">
135 <xsl:value-of select="marc:subfield[@code='d']"/>
139 <xsl:for-each select="marc:datafield[@tag='110']">
140 <pz:metadata type="corporate-name">
141 <xsl:value-of select="marc:subfield[@code='a']"/>
143 <pz:metadata type="corporate-location">
144 <xsl:value-of select="marc:subfield[@code='c']"/>
146 <pz:metadata type="corporate-date">
147 <xsl:value-of select="marc:subfield[@code='d']"/>
151 <xsl:for-each select="marc:datafield[@tag='111']">
152 <pz:metadata type="meeting-name">
153 <xsl:value-of select="marc:subfield[@code='a']"/>
155 <pz:metadata type="meeting-location">
156 <xsl:value-of select="marc:subfield[@code='c']"/>
158 <pz:metadata type="meeting-date">
159 <xsl:value-of select="marc:subfield[@code='d']"/>
163 <xsl:for-each select="marc:datafield[@tag='260']">
164 <pz:metadata type="date">
165 <xsl:value-of select="marc:subfield[@code='c']"/>
169 <xsl:for-each select="marc:datafield[@tag='245']">
170 <pz:metadata type="title">
171 <xsl:value-of select="marc:subfield[@code='a']"/>
173 <pz:metadata type="title-remainder">
174 <xsl:value-of select="marc:subfield[@code='b']"/>
176 <pz:metadata type="title-responsibility">
177 <xsl:value-of select="marc:subfield[@code='c']"/>
179 <pz:metadata type="title-dates">
180 <xsl:value-of select="marc:subfield[@code='f']"/>
182 <pz:metadata type="title-medium">
183 <xsl:value-of select="marc:subfield[@code='h']"/>
187 <xsl:for-each select="marc:datafield[@tag='250']">
188 <pz:metadata type="edition">
189 <xsl:value-of select="marc:subfield[@code='a']"/>
193 <xsl:for-each select="marc:datafield[@tag='260']">
194 <pz:metadata type="publication-place">
195 <xsl:value-of select="marc:subfield[@code='a']"/>
197 <pz:metadata type="publication-name">
198 <xsl:value-of select="marc:subfield[@code='b']"/>
200 <pz:metadata type="publication-date">
201 <xsl:value-of select="marc:subfield[@code='c']"/>
205 <xsl:for-each select="marc:datafield[@tag='300']">
206 <pz:metadata type="physical-extent">
207 <xsl:value-of select="marc:subfield[@code='a']"/>
209 <pz:metadata type="physical-format">
210 <xsl:value-of select="marc:subfield[@code='b']"/>
212 <pz:metadata type="physical-dimensions">
213 <xsl:value-of select="marc:subfield[@code='c']"/>
215 <pz:metadata type="physical-accomp">
216 <xsl:value-of select="marc:subfield[@code='e']"/>
218 <pz:metadata type="physical-unittype">
219 <xsl:value-of select="marc:subfield[@code='f']"/>
221 <pz:metadata type="physical-unitsize">
222 <xsl:value-of select="marc:subfield[@code='g']"/>
224 <pz:metadata type="physical-specified">
225 <xsl:value-of select="marc:subfield[@code='3']"/>
229 <xsl:for-each select="marc:datafield[@tag='440']">
230 <pz:metadata type="series-title">
231 <xsl:value-of select="marc:subfield[@code='a']"/>
235 <xsl:for-each select="marc:datafield[@tag >= 500 and @tag <= 599]
236 [@tag != '506' and @tag != '530' and
237 @tag != '540' and @tag != '546'
239 <!-- The tag attribute below will be preserved -->
240 <pz:metadata type="description" tag="{@tag}">
241 <xsl:value-of select="*/text()"/>
245 <xsl:for-each select="marc:datafield[@tag='650' or @tag='653']">
246 <pz:metadata type="subject">
247 <xsl:value-of select="marc:subfield[@code='a']"/>
251 <xsl:for-each select="marc:datafield[@tag='856']">
252 <pz:metadata type="electronic-url">
253 <xsl:value-of select="marc:subfield[@code='u']"/>
255 <pz:metadata type="electronic-text">
256 <xsl:value-of select="marc:subfield[@code='y']"/>
258 <pz:metadata type="electronic-note">
259 <xsl:value-of select="marc:subfield[@code='z']"/>
263 <xsl:for-each select="marc:datafield[@tag='773']">
264 <pz:metadata type="citation">
265 <xsl:for-each select="*">
266 <xsl:value-of select="normalize-space(.)"/>
267 <xsl:text> </xsl:text>
272 <pz:metadata type="medium">
273 <xsl:value-of select="$medium"/>
276 <xsl:if test="$fulltext_a">
277 <pz:metadata type="fulltext">
278 <xsl:value-of select="$fulltext_a"/>
282 <xsl:if test="$fulltext_b">
283 <pz:metadata type="fulltext">
284 <xsl:value-of select="$fulltext_b"/>