1 <settings target="z3950.indexdata.com/marc">
2 <set name="pz:name" value="Index Data MARC test server"/>
4 <!-- mapping for unqualified search -->
5 <set name="pz:cclmap:term" value="u=1016 t=l,r s=al"/>
7 <!-- field-specific mappings -->
8 <set name="pz:cclmap:ti" value="u=4 s=al"/>
9 <set name="pz:cclmap:au" value="u=1003 s=al"/>
10 <set name="pz:cclmap:isbn" value="u=7"/>
11 <set name="pz:cclmap:issn" value="u=8"/>
12 <set name="pz:cclmap:date" value="u=30 r=r"/>
13 <set name="pz:cclmap:author_phrase" value="u=1003 6=3"/>
15 <!-- Retrieval settings -->
17 <set name="pz:requestsyntax" value="marc21"/>
19 <!-- Result normalization settings -->
21 <set name="pz:nativesyntax" value="iso2709"/>
25 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
26 xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
27 xmlns:marc="http://www.loc.gov/MARC21/slim">
29 <xsl:param name="test"/>
31 <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
33 <!-- Extract metadata from MARC21/USMARC
34 http://www.loc.gov/marc/bibliographic/ecbdhome.html
37 <xsl:template match="marc:record">
38 <xsl:variable name="title_medium" select="marc:datafield[@tag='245']/marc:subfield[@code='h']"/>
39 <xsl:variable name="journal_title" select="marc:datafield[@tag='773']/marc:subfield[@code='t']"/>
40 <xsl:variable name="electronic_location_url" select="marc:datafield[@tag='856']/marc:subfield[@code='u']"/>
41 <xsl:variable name="fulltext_a" select="marc:datafield[@tag='900']/marc:subfield[@code='a']"/>
42 <xsl:variable name="fulltext_b" select="marc:datafield[@tag='900']/marc:subfield[@code='b']"/>
43 <xsl:variable name="medium">
45 <xsl:when test="$title_medium">
46 <xsl:value-of select="substring-after(substring-before($title_medium,']'),'[')"/>
48 <xsl:when test="$fulltext_a">
49 <xsl:text>electronic resource</xsl:text>
51 <xsl:when test="$fulltext_b">
52 <xsl:text>electronic resource</xsl:text>
54 <xsl:when test="$electronic_location_url">
55 <xsl:text>electronic resource</xsl:text>
57 <xsl:when test="$journal_title">
58 <xsl:text>article</xsl:text>
61 <xsl:text>book</xsl:text>
67 <xsl:attribute name="mergekey">
68 <xsl:text>title </xsl:text>
69 <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
70 <xsl:text> author </xsl:text>
71 <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
72 <xsl:text> medium </xsl:text>
73 <xsl:value-of select="$medium"/>
76 <pz:metadata type="test-usersetting-2">
77 test-usersetting-2 data:
78 <xsl:value-of select="$test"/>
81 <xsl:for-each select="marc:controlfield[@tag='001']">
82 <pz:metadata type="id">
83 <xsl:value-of select="."/>
87 <xsl:for-each select="marc:datafield[@tag='010']">
88 <pz:metadata type="lccn">
89 <xsl:value-of select="marc:subfield[@code='a']"/>
93 <xsl:for-each select="marc:datafield[@tag='020']">
94 <pz:metadata type="isbn">
95 <xsl:value-of select="marc:subfield[@code='a']"/>
99 <xsl:for-each select="marc:datafield[@tag='022']">
100 <pz:metadata type="issn">
101 <xsl:value-of select="marc:subfield[@code='a']"/>
105 <xsl:for-each select="marc:datafield[@tag='027']">
106 <pz:metadata type="tech-rep-nr">
107 <xsl:value-of select="marc:subfield[@code='a']"/>
111 <xsl:for-each select="marc:datafield[@tag='100']">
112 <pz:metadata type="author">
113 <xsl:value-of select="marc:subfield[@code='a']"/>
115 <pz:metadata type="author-title">
116 <xsl:value-of select="marc:subfield[@code='c']"/>
118 <pz:metadata type="author-date">
119 <xsl:value-of select="marc:subfield[@code='d']"/>
123 <xsl:for-each select="marc:datafield[@tag='110']">
124 <pz:metadata type="corporate-name">
125 <xsl:value-of select="marc:subfield[@code='a']"/>
127 <pz:metadata type="corporate-location">
128 <xsl:value-of select="marc:subfield[@code='c']"/>
130 <pz:metadata type="corporate-date">
131 <xsl:value-of select="marc:subfield[@code='d']"/>
135 <xsl:for-each select="marc:datafield[@tag='111']">
136 <pz:metadata type="meeting-name">
137 <xsl:value-of select="marc:subfield[@code='a']"/>
139 <pz:metadata type="meeting-location">
140 <xsl:value-of select="marc:subfield[@code='c']"/>
142 <pz:metadata type="meeting-date">
143 <xsl:value-of select="marc:subfield[@code='d']"/>
147 <xsl:for-each select="marc:datafield[@tag='260']">
148 <pz:metadata type="date">
149 <xsl:value-of select="marc:subfield[@code='c']"/>
153 <xsl:for-each select="marc:datafield[@tag='245']">
154 <pz:metadata type="title">
155 <xsl:value-of select="marc:subfield[@code='a']"/>
157 <pz:metadata type="title-remainder">
158 <xsl:value-of select="marc:subfield[@code='b']"/>
160 <pz:metadata type="title-responsibility">
161 <xsl:value-of select="marc:subfield[@code='c']"/>
163 <pz:metadata type="title-dates">
164 <xsl:value-of select="marc:subfield[@code='f']"/>
166 <pz:metadata type="title-medium">
167 <xsl:value-of select="marc:subfield[@code='h']"/>
171 <xsl:for-each select="marc:datafield[@tag='250']">
172 <pz:metadata type="edition">
173 <xsl:value-of select="marc:subfield[@code='a']"/>
177 <xsl:for-each select="marc:datafield[@tag='260']">
178 <pz:metadata type="publication-place">
179 <xsl:value-of select="marc:subfield[@code='a']"/>
181 <pz:metadata type="publication-name">
182 <xsl:value-of select="marc:subfield[@code='b']"/>
184 <pz:metadata type="publication-date">
185 <xsl:value-of select="marc:subfield[@code='c']"/>
189 <xsl:for-each select="marc:datafield[@tag='300']">
190 <pz:metadata type="physical-extent">
191 <xsl:value-of select="marc:subfield[@code='a']"/>
193 <pz:metadata type="physical-format">
194 <xsl:value-of select="marc:subfield[@code='b']"/>
196 <pz:metadata type="physical-dimensions">
197 <xsl:value-of select="marc:subfield[@code='c']"/>
199 <pz:metadata type="physical-accomp">
200 <xsl:value-of select="marc:subfield[@code='e']"/>
202 <pz:metadata type="physical-unittype">
203 <xsl:value-of select="marc:subfield[@code='f']"/>
205 <pz:metadata type="physical-unitsize">
206 <xsl:value-of select="marc:subfield[@code='g']"/>
208 <pz:metadata type="physical-specified">
209 <xsl:value-of select="marc:subfield[@code='3']"/>
213 <xsl:for-each select="marc:datafield[@tag='440']">
214 <pz:metadata type="series-title">
215 <xsl:value-of select="marc:subfield[@code='a']"/>
219 <xsl:for-each select="marc:datafield[@tag >= 500 and @tag <= 599]
220 [@tag != '506' and @tag != '530' and
221 @tag != '540' and @tag != '546'
223 <!-- The tag attribute below will be preserved -->
224 <pz:metadata type="description" tag="{@tag}">
225 <xsl:value-of select="*/text()"/>
229 <xsl:for-each select="marc:datafield[@tag='600' or @tag='610' or @tag='611' or @tag='630' or @tag='648' or @tag='650' or @tag='651' or @tag='653' or @tag='654' or @tag='655' or @tag='656' or @tag='657' or @tag='658' or @tag='662' or @tag='69X']">
230 <pz:metadata type="subject">
231 <xsl:value-of select="marc:subfield[@code='a']"/>
235 <xsl:for-each select="marc:datafield[@tag='856']">
236 <pz:metadata type="electronic-url">
237 <xsl:value-of select="marc:subfield[@code='u']"/>
239 <pz:metadata type="electronic-text">
240 <xsl:value-of select="marc:subfield[@code='y']"/>
242 <pz:metadata type="electronic-note">
243 <xsl:value-of select="marc:subfield[@code='z']"/>
247 <xsl:for-each select="marc:datafield[@tag='650']">
248 <pz:metadata type="subjects" empty="PAZPAR2_NULL_a">
249 <xsl:value-of select="marc:subfield[@code='a']"/>
251 <pz:metadata type="subjects" empty="PAZPAR2_NULL_b">
252 <xsl:value-of select="marc:subfield[@code='b']"/>
254 <pz:metadata type="subjects" empty="PAZPAR2_NULL_c">
255 <xsl:value-of select="marc:subfield[@code='c']"/>
259 <xsl:for-each select="marc:datafield[@tag='773']">
260 <pz:metadata type="citation">
261 <xsl:for-each select="*">
262 <xsl:value-of select="normalize-space(.)"/>
263 <xsl:text> </xsl:text>
268 <pz:metadata type="medium">
269 <xsl:value-of select="$medium"/>
272 <xsl:if test="$fulltext_a">
273 <pz:metadata type="fulltext">
274 <xsl:value-of select="$fulltext_a"/>
278 <xsl:if test="$fulltext_b">
279 <pz:metadata type="fulltext">
280 <xsl:value-of select="$fulltext_b"/>
288 <set name="pz:apdulog" value="1"/>
289 <set name="pz:pqf_strftime" value="@or %% %Y"/>
291 <!-- Examples of application-specific setting -->
292 <!-- Available in output record and/or normalization stylesheet -->
293 <set name="test-usersetting" value="XXXXXXXXXX"/>
294 <set name="test" value="YYYYYYYYY"/>