32e1742804fab9591f852d5f765a06bf2a7dc1a4
[koha.git] / etc / zebradb / marc_defs / unimarc / biblios / biblio-zebra-indexdefs.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 This file has been automatically generated from a Koha index definition file
4 with the stylesheet koha-indexdefs-to-zebra.xsl. Do not manually edit this file,
5 as it may be overwritten. To regenerate, edit the appropriate Koha index
6 definition file (probably something like {biblio,authority}-koha-indexdefs.xml) and run:
7 `xsltproc koha-indexdefs-to-zebra.xsl {biblio,authority}-koha-indexdefs.xml >
8 {biblio,authority}-zebra-indexdefs.xsl` (substituting the appropriate file names).
9 -->
10 <xslo:stylesheet xmlns:xslo="http://www.w3.org/1999/XSL/Transform" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:z="http://indexdata.com/zebra-2.0" xmlns:kohaidx="http://www.koha-community.org/schemas/index-defs" version="1.0">
11   <xslo:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
12   <xslo:template match="text()"/>
13   <xslo:template match="text()" mode="index_subfields"/>
14   <xslo:template match="text()" mode="index_data_field"/>
15   <xslo:template match="text()" mode="index_facets"/>
16   <xslo:template match="text()" mode="index_heading"/>
17   <xslo:template match="text()" mode="index_heading_conditional"/>
18   <xslo:template match="text()" mode="index_match_heading"/>
19   <xslo:template match="text()" mode="index_subject_thesaurus"/>
20   <xslo:template match="/">
21     <xslo:if test="marc:collection">
22       <collection>
23         <xslo:apply-templates select="marc:collection/marc:record"/>
24       </collection>
25     </xslo:if>
26     <xslo:if test="marc:record">
27       <xslo:apply-templates select="marc:record"/>
28     </xslo:if>
29   </xslo:template>
30   <xslo:template match="marc:record">
31     <xslo:variable name="idfield" select="normalize-space(marc:controlfield[@tag='001'])"/>
32     <z:record type="update">
33       <xslo:attribute name="z:id">
34         <xslo:value-of select="$idfield"/>
35       </xslo:attribute>
36       <xslo:apply-templates/>
37       <xslo:apply-templates mode="index_subfields"/>
38       <xslo:apply-templates mode="index_data_field"/>
39       <xslo:apply-templates mode="index_facets"/>
40       <xslo:apply-templates mode="index_heading"/>
41       <xslo:apply-templates mode="index_heading_conditional"/>
42       <xslo:apply-templates mode="index_match_heading"/>
43       <xslo:apply-templates mode="index_subject_thesaurus"/>
44       <xslo:apply-templates mode="index_all"/>
45     </z:record>
46   </xslo:template>
47   <xslo:template match="marc:controlfield[@tag='001']">
48     <z:index name="Local-number:w">
49       <xslo:value-of select="."/>
50     </z:index>
51     <z:index name="Local-number:n">
52       <xslo:value-of select="."/>
53     </z:index>
54   </xslo:template>
55   <xslo:template match="marc:controlfield[@tag='009']">
56     <z:index name="Identifier-standard:w">
57       <xslo:value-of select="."/>
58     </z:index>
59     <z:index name="Identifier-standard:n">
60       <xslo:value-of select="."/>
61     </z:index>
62   </xslo:template>
63   <xslo:template mode="index_subfields" match="marc:datafield[@tag='090']">
64     <xslo:for-each select="marc:subfield">
65       <xslo:if test="contains('9', @code)">
66         <z:index name="Local-number:w Local-number:n">
67           <xslo:value-of select="."/>
68         </z:index>
69       </xslo:if>
70     </xslo:for-each>
71   </xslo:template>
72   <xslo:template mode="index_subfields" match="marc:datafield[@tag='099']">
73     <xslo:for-each select="marc:subfield">
74       <xslo:if test="contains('c', @code)">
75         <z:index name="date-entered-on-file:s date-entered-on-file:n date-entered-on-file:y Date-of-acquisition:w Date-of-acquisition:d Date-of-acquisition:s">
76           <xslo:value-of select="."/>
77         </z:index>
78       </xslo:if>
79     </xslo:for-each>
80     <xslo:for-each select="marc:subfield">
81       <xslo:if test="contains('d', @code)">
82         <z:index name="Date/time-last-modified:s Date/time-last-modified:n Date/time-last-modified:y">
83           <xslo:value-of select="."/>
84         </z:index>
85       </xslo:if>
86     </xslo:for-each>
87     <xslo:for-each select="marc:subfield">
88       <xslo:if test="contains('t', @code)">
89         <z:index name="ccode:w">
90           <xslo:value-of select="."/>
91         </z:index>
92       </xslo:if>
93     </xslo:for-each>
94   </xslo:template>
95   <xslo:template mode="index_subfields" match="marc:datafield[@tag='010']">
96     <xslo:for-each select="marc:subfield">
97       <xslo:if test="contains('az', @code)">
98         <z:index name="ISBN:w Identifier-standard:w">
99           <xslo:value-of select="."/>
100         </z:index>
101       </xslo:if>
102     </xslo:for-each>
103   </xslo:template>
104   <xslo:template mode="index_subfields" match="marc:datafield[@tag='011']">
105     <xslo:for-each select="marc:subfield">
106       <xslo:if test="contains('ayz', @code)">
107         <z:index name="ISSN:w Identifier-standard:w">
108           <xslo:value-of select="."/>
109         </z:index>
110       </xslo:if>
111     </xslo:for-each>
112     <xslo:for-each select="marc:subfield">
113       <xslo:if test="contains('fg', @code)">
114         <z:index name="Identifier-standard:w">
115           <xslo:value-of select="."/>
116         </z:index>
117       </xslo:if>
118     </xslo:for-each>
119   </xslo:template>
120   <xslo:template mode="index_subfields" match="marc:datafield[@tag='012']">
121     <xslo:for-each select="marc:subfield">
122       <xslo:if test="contains('a', @code)">
123         <z:index name="Identifier-standard:w">
124           <xslo:value-of select="."/>
125         </z:index>
126       </xslo:if>
127     </xslo:for-each>
128   </xslo:template>
129   <xslo:template mode="index_subfields" match="marc:datafield[@tag='013']">
130     <xslo:for-each select="marc:subfield">
131       <xslo:if test="contains('az', @code)">
132         <z:index name="Identifier-standard:w">
133           <xslo:value-of select="."/>
134         </z:index>
135       </xslo:if>
136     </xslo:for-each>
137   </xslo:template>
138   <xslo:template mode="index_subfields" match="marc:datafield[@tag='014']">
139     <xslo:for-each select="marc:subfield">
140       <xslo:if test="contains('az', @code)">
141         <z:index name="Identifier-standard:w">
142           <xslo:value-of select="."/>
143         </z:index>
144       </xslo:if>
145     </xslo:for-each>
146   </xslo:template>
147   <xslo:template mode="index_subfields" match="marc:datafield[@tag='015']">
148     <xslo:for-each select="marc:subfield">
149       <xslo:if test="contains('az', @code)">
150         <z:index name="Identifier-standard:w">
151           <xslo:value-of select="."/>
152         </z:index>
153       </xslo:if>
154     </xslo:for-each>
155   </xslo:template>
156   <xslo:template mode="index_subfields" match="marc:datafield[@tag='016']">
157     <xslo:for-each select="marc:subfield">
158       <xslo:if test="contains('az', @code)">
159         <z:index name="Identifier-standard:w">
160           <xslo:value-of select="."/>
161         </z:index>
162       </xslo:if>
163     </xslo:for-each>
164   </xslo:template>
165   <xslo:template mode="index_subfields" match="marc:datafield[@tag='017']">
166     <xslo:for-each select="marc:subfield">
167       <xslo:if test="contains('az', @code)">
168         <z:index name="Identifier-standard:w">
169           <xslo:value-of select="."/>
170         </z:index>
171       </xslo:if>
172     </xslo:for-each>
173   </xslo:template>
174   <xslo:template mode="index_subfields" match="marc:datafield[@tag='040']">
175     <xslo:for-each select="marc:subfield">
176       <xslo:if test="contains('az', @code)">
177         <z:index name="Identifier-standard:w">
178           <xslo:value-of select="."/>
179         </z:index>
180       </xslo:if>
181     </xslo:for-each>
182   </xslo:template>
183   <xslo:template mode="index_subfields" match="marc:datafield[@tag='071']">
184     <xslo:for-each select="marc:subfield">
185       <xslo:if test="contains('az', @code)">
186         <z:index name="Identifier-publisher-for-music:w Identifier-standard:w">
187           <xslo:value-of select="."/>
188         </z:index>
189       </xslo:if>
190     </xslo:for-each>
191     <xslo:for-each select="marc:subfield">
192       <xslo:if test="contains('b', @code)">
193         <z:index name="Publisher:w Publisher:p">
194           <xslo:value-of select="."/>
195         </z:index>
196       </xslo:if>
197     </xslo:for-each>
198   </xslo:template>
199   <xslo:template mode="index_subfields" match="marc:datafield[@tag='072']">
200     <xslo:for-each select="marc:subfield">
201       <xslo:if test="contains('az', @code)">
202         <z:index name="Identifier-standard:w">
203           <xslo:value-of select="."/>
204         </z:index>
205       </xslo:if>
206     </xslo:for-each>
207   </xslo:template>
208   <xslo:template mode="index_subfields" match="marc:datafield[@tag='073']">
209     <xslo:for-each select="marc:subfield">
210       <xslo:if test="contains('az', @code)">
211         <z:index name="EAN:w Identifier-standard:w">
212           <xslo:value-of select="."/>
213         </z:index>
214       </xslo:if>
215     </xslo:for-each>
216   </xslo:template>
217   <xslo:template mode="index_subfields" match="marc:datafield[@tag='200']">
218     <xslo:for-each select="marc:subfield">
219       <xslo:if test="contains('b', @code)">
220         <z:index name="itemtype:w itemtype:p itype:w itype:p Material-type:w Material-type:p">
221           <xslo:value-of select="."/>
222         </z:index>
223       </xslo:if>
224     </xslo:for-each>
225     <xslo:for-each select="marc:subfield">
226       <xslo:if test="contains('fg', @code)">
227         <z:index name="Author:w Author:p">
228           <xslo:value-of select="."/>
229         </z:index>
230       </xslo:if>
231     </xslo:for-each>
232     <xslo:for-each select="marc:subfield">
233       <xslo:if test="contains('aei', @code)">
234         <z:index name="Title:w Title:p Title:s Title-cover:w Title-cover:p Title-cover:s">
235           <xslo:value-of select="."/>
236         </z:index>
237       </xslo:if>
238     </xslo:for-each>
239     <xslo:for-each select="marc:subfield">
240       <xslo:if test="contains('cd', @code)">
241         <z:index name="Title:w Title:p">
242           <xslo:value-of select="."/>
243         </z:index>
244       </xslo:if>
245     </xslo:for-each>
246   </xslo:template>
247   <xslo:template mode="index_subfields" match="marc:datafield[@tag='995']">
248     <xslo:for-each select="marc:subfield">
249       <xslo:if test="contains('r', @code)">
250         <z:index name="itemtype:w itemtype:p itype:w itype:p">
251           <xslo:value-of select="."/>
252         </z:index>
253       </xslo:if>
254     </xslo:for-each>
255     <xslo:for-each select="marc:subfield">
256       <xslo:if test="contains('1', @code)">
257         <z:index name="damaged:w damaged:n item:w">
258           <xslo:value-of select="."/>
259         </z:index>
260       </xslo:if>
261     </xslo:for-each>
262     <xslo:for-each select="marc:subfield">
263       <xslo:if test="contains('2', @code)">
264         <z:index name="lost:w lost:n item:w">
265           <xslo:value-of select="."/>
266         </z:index>
267       </xslo:if>
268     </xslo:for-each>
269     <xslo:for-each select="marc:subfield">
270       <xslo:if test="contains('3', @code)">
271         <z:index name="withdrawn:w withdrawn:n item:w">
272           <xslo:value-of select="."/>
273         </z:index>
274       </xslo:if>
275     </xslo:for-each>
276     <xslo:for-each select="marc:subfield">
277       <xslo:if test="contains('a', @code)">
278         <z:index name="homebranch:w Host-item:w item:w">
279           <xslo:value-of select="."/>
280         </z:index>
281       </xslo:if>
282     </xslo:for-each>
283     <xslo:for-each select="marc:subfield">
284       <xslo:if test="contains('b', @code)">
285         <z:index name="homebranch:w Host-item:w item:w">
286           <xslo:value-of select="."/>
287         </z:index>
288       </xslo:if>
289     </xslo:for-each>
290     <xslo:for-each select="marc:subfield">
291       <xslo:if test="contains('c', @code)">
292         <z:index name="holdingbranch:w Record-Source:w item:w">
293           <xslo:value-of select="."/>
294         </z:index>
295       </xslo:if>
296     </xslo:for-each>
297     <xslo:for-each select="marc:subfield">
298       <xslo:if test="contains('e', @code)">
299         <z:index name="location:w location:p item:w">
300           <xslo:value-of select="."/>
301         </z:index>
302       </xslo:if>
303     </xslo:for-each>
304     <xslo:for-each select="marc:subfield">
305       <xslo:if test="contains('f', @code)">
306         <z:index name="barcode:w barcode:p item:w">
307           <xslo:value-of select="."/>
308         </z:index>
309       </xslo:if>
310     </xslo:for-each>
311     <xslo:for-each select="marc:subfield">
312       <xslo:if test="contains('h', @code)">
313         <z:index name="ccode:w ccode:p item:w">
314           <xslo:value-of select="."/>
315         </z:index>
316       </xslo:if>
317     </xslo:for-each>
318     <xslo:for-each select="marc:subfield">
319       <xslo:if test="contains('k', @code)">
320         <z:index name="Call-Number:w Local-classification:w lcn:w Call-Number:p Local-classification:p lcn:p item:w Local-classification:s">
321           <xslo:value-of select="."/>
322         </z:index>
323       </xslo:if>
324     </xslo:for-each>
325     <xslo:for-each select="marc:subfield">
326       <xslo:if test="contains('n', @code)">
327         <z:index name="onloan:d onloan:n onloan:s onloan:w item:w">
328           <xslo:value-of select="."/>
329         </z:index>
330       </xslo:if>
331     </xslo:for-each>
332     <xslo:for-each select="marc:subfield">
333       <xslo:if test="contains('u', @code)">
334         <z:index name="Note:w Note:p item:w">
335           <xslo:value-of select="."/>
336         </z:index>
337       </xslo:if>
338     </xslo:for-each>
339   </xslo:template>
340   <xslo:template mode="index_subfields" match="marc:datafield[@tag='100']">
341     <xslo:for-each select="marc:subfield">
342       <xslo:if test="contains('a', @code)">
343         <z:index name="tpubdate:s">
344           <xslo:value-of select="substring(., 9, 1)"/>
345         </z:index>
346       </xslo:if>
347     </xslo:for-each>
348     <xslo:for-each select="marc:subfield">
349       <xslo:if test="contains('a', @code)">
350         <z:index name="pubdate:s pubdate:n pubdate:y">
351           <xslo:value-of select="substring(., 10, 4)"/>
352         </z:index>
353       </xslo:if>
354     </xslo:for-each>
355     <xslo:for-each select="marc:subfield">
356       <xslo:if test="contains('a', @code)">
357         <z:index name="pubdate:n pubdate:y">
358           <xslo:value-of select="substring(., 14, 4)"/>
359         </z:index>
360       </xslo:if>
361     </xslo:for-each>
362     <xslo:for-each select="marc:subfield">
363       <xslo:if test="contains('a', @code)">
364         <z:index name="ta:w">
365           <xslo:value-of select="substring(., 18, 1)"/>
366         </z:index>
367       </xslo:if>
368     </xslo:for-each>
369     <xslo:for-each select="marc:subfield">
370       <xslo:if test="contains('a', @code)">
371         <z:index name="ta:w">
372           <xslo:value-of select="substring(., 19, 1)"/>
373         </z:index>
374       </xslo:if>
375     </xslo:for-each>
376     <xslo:for-each select="marc:subfield">
377       <xslo:if test="contains('a', @code)">
378         <z:index name="ta:w">
379           <xslo:value-of select="substring(., 20, 1)"/>
380         </z:index>
381       </xslo:if>
382     </xslo:for-each>
383     <xslo:for-each select="marc:subfield">
384       <xslo:if test="contains('a', @code)">
385         <z:index name="Modified-code:n">
386           <xslo:value-of select="substring(., 22, 1)"/>
387         </z:index>
388       </xslo:if>
389     </xslo:for-each>
390     <xslo:for-each select="marc:subfield">
391       <xslo:if test="contains('a', @code)">
392         <z:index name="char-encoding:n">
393           <xslo:value-of select="substring(., 27, 2)"/>
394         </z:index>
395       </xslo:if>
396     </xslo:for-each>
397     <xslo:for-each select="marc:subfield">
398       <xslo:if test="contains('a', @code)">
399         <z:index name="char-encoding:n">
400           <xslo:value-of select="substring(., 29, 2)"/>
401         </z:index>
402       </xslo:if>
403     </xslo:for-each>
404     <xslo:for-each select="marc:subfield">
405       <xslo:if test="contains('a', @code)">
406         <z:index name="char-encoding:n">
407           <xslo:value-of select="substring(., 31, 2)"/>
408         </z:index>
409       </xslo:if>
410     </xslo:for-each>
411     <xslo:for-each select="marc:subfield">
412       <xslo:if test="contains('a', @code)">
413         <z:index name="script-Title:n">
414           <xslo:value-of select="substring(., 35, 2)"/>
415         </z:index>
416       </xslo:if>
417     </xslo:for-each>
418   </xslo:template>
419   <xslo:template mode="index_subfields" match="marc:datafield[@tag='101']">
420     <xslo:for-each select="marc:subfield">
421       <xslo:if test="contains('a', @code)">
422         <z:index name="ln:w">
423           <xslo:value-of select="."/>
424         </z:index>
425       </xslo:if>
426     </xslo:for-each>
427     <xslo:for-each select="marc:subfield">
428       <xslo:if test="contains('c', @code)">
429         <z:index name="language-original:w">
430           <xslo:value-of select="."/>
431         </z:index>
432       </xslo:if>
433     </xslo:for-each>
434   </xslo:template>
435   <xslo:template mode="index_subfields" match="marc:datafield[@tag='102']">
436     <xslo:for-each select="marc:subfield">
437       <xslo:if test="contains('a', @code)">
438         <z:index name="Country-publication:w">
439           <xslo:value-of select="."/>
440         </z:index>
441       </xslo:if>
442     </xslo:for-each>
443   </xslo:template>
444   <xslo:template mode="index_subfields" match="marc:datafield[@tag='105']">
445     <xslo:for-each select="marc:subfield">
446       <xslo:if test="contains('a', @code)">
447         <z:index name="ff8-18-21:w">
448           <xslo:value-of select="substring(., 1, 1)"/>
449         </z:index>
450       </xslo:if>
451     </xslo:for-each>
452     <xslo:for-each select="marc:subfield">
453       <xslo:if test="contains('a', @code)">
454         <z:index name="ff8-18-21:w">
455           <xslo:value-of select="substring(., 2, 1)"/>
456         </z:index>
457       </xslo:if>
458     </xslo:for-each>
459     <xslo:for-each select="marc:subfield">
460       <xslo:if test="contains('a', @code)">
461         <z:index name="ff8-18-21:w">
462           <xslo:value-of select="substring(., 3, 1)"/>
463         </z:index>
464       </xslo:if>
465     </xslo:for-each>
466     <xslo:for-each select="marc:subfield">
467       <xslo:if test="contains('a', @code)">
468         <z:index name="ff8-18-21:w">
469           <xslo:value-of select="substring(., 4, 1)"/>
470         </z:index>
471       </xslo:if>
472     </xslo:for-each>
473     <xslo:for-each select="marc:subfield">
474       <xslo:if test="contains('a', @code)">
475         <z:index name="ctype:w">
476           <xslo:value-of select="substring(., 5, 1)"/>
477         </z:index>
478       </xslo:if>
479     </xslo:for-each>
480     <xslo:for-each select="marc:subfield">
481       <xslo:if test="contains('a', @code)">
482         <z:index name="ctype:w">
483           <xslo:value-of select="substring(., 6, 1)"/>
484         </z:index>
485       </xslo:if>
486     </xslo:for-each>
487     <xslo:for-each select="marc:subfield">
488       <xslo:if test="contains('a', @code)">
489         <z:index name="ctype:w">
490           <xslo:value-of select="substring(., 7, 1)"/>
491         </z:index>
492       </xslo:if>
493     </xslo:for-each>
494     <xslo:for-each select="marc:subfield">
495       <xslo:if test="contains('a', @code)">
496         <z:index name="ctype:w">
497           <xslo:value-of select="substring(., 8, 1)"/>
498         </z:index>
499       </xslo:if>
500     </xslo:for-each>
501     <xslo:for-each select="marc:subfield">
502       <xslo:if test="contains('a', @code)">
503         <z:index name="ff8-29:w">
504           <xslo:value-of select="substring(., 9, 1)"/>
505         </z:index>
506       </xslo:if>
507     </xslo:for-each>
508     <xslo:for-each select="marc:subfield">
509       <xslo:if test="contains('a', @code)">
510         <z:index name="ff8-30:w">
511           <xslo:value-of select="substring(., 10, 1)"/>
512         </z:index>
513       </xslo:if>
514     </xslo:for-each>
515     <xslo:for-each select="marc:subfield">
516       <xslo:if test="contains('a', @code)">
517         <z:index name="ff8-31:w">
518           <xslo:value-of select="substring(., 11, 1)"/>
519         </z:index>
520       </xslo:if>
521     </xslo:for-each>
522     <xslo:for-each select="marc:subfield">
523       <xslo:if test="contains('a', @code)">
524         <z:index name="lf:w">
525           <xslo:value-of select="substring(., 12, 1)"/>
526         </z:index>
527       </xslo:if>
528     </xslo:for-each>
529     <xslo:for-each select="marc:subfield">
530       <xslo:if test="contains('a', @code)">
531         <z:index name="bio:w">
532           <xslo:value-of select="substring(., 13, 1)"/>
533         </z:index>
534       </xslo:if>
535     </xslo:for-each>
536   </xslo:template>
537   <xslo:template mode="index_subfields" match="marc:datafield[@tag='106']">
538     <xslo:for-each select="marc:subfield">
539       <xslo:if test="contains('a', @code)">
540         <z:index name="ff8-23:w ff8-23:p">
541           <xslo:value-of select="."/>
542         </z:index>
543       </xslo:if>
544     </xslo:for-each>
545   </xslo:template>
546   <xslo:template mode="index_subfields" match="marc:datafield[@tag='110']">
547     <xslo:for-each select="marc:subfield">
548       <xslo:if test="contains('a', @code)">
549         <z:index name="ff8-21:w">
550           <xslo:value-of select="substring(., 1, 1)"/>
551         </z:index>
552       </xslo:if>
553     </xslo:for-each>
554     <xslo:for-each select="marc:subfield">
555       <xslo:if test="contains('a', @code)">
556         <z:index name="ff8-18:w">
557           <xslo:value-of select="substring(., 2, 1)"/>
558         </z:index>
559       </xslo:if>
560     </xslo:for-each>
561     <xslo:for-each select="marc:subfield">
562       <xslo:if test="contains('a', @code)">
563         <z:index name="ff8-19:w">
564           <xslo:value-of select="substring(., 3, 1)"/>
565         </z:index>
566       </xslo:if>
567     </xslo:for-each>
568     <xslo:for-each select="marc:subfield">
569       <xslo:if test="contains('a', @code)">
570         <z:index name="ctype:w">
571           <xslo:value-of select="substring(., 4, 1)"/>
572         </z:index>
573       </xslo:if>
574     </xslo:for-each>
575     <xslo:for-each select="marc:subfield">
576       <xslo:if test="contains('a', @code)">
577         <z:index name="ctype:w">
578           <xslo:value-of select="substring(., 5, 1)"/>
579         </z:index>
580       </xslo:if>
581     </xslo:for-each>
582     <xslo:for-each select="marc:subfield">
583       <xslo:if test="contains('a', @code)">
584         <z:index name="ff8-29:w">
585           <xslo:value-of select="substring(., 8, 1)"/>
586         </z:index>
587       </xslo:if>
588     </xslo:for-each>
589     <xslo:for-each select="marc:subfield">
590       <xslo:if test="contains('a', @code)">
591         <z:index name="Title-page-availability:w">
592           <xslo:value-of select="substring(., 9, 1)"/>
593         </z:index>
594       </xslo:if>
595     </xslo:for-each>
596     <xslo:for-each select="marc:subfield">
597       <xslo:if test="contains('a', @code)">
598         <z:index name="ff8-31:w">
599           <xslo:value-of select="substring(., 10, 1)"/>
600         </z:index>
601       </xslo:if>
602     </xslo:for-each>
603     <xslo:for-each select="marc:subfield">
604       <xslo:if test="contains('a', @code)">
605         <z:index name="Cumulative-index-availability:w">
606           <xslo:value-of select="substring(., 11, 1)"/>
607         </z:index>
608       </xslo:if>
609     </xslo:for-each>
610   </xslo:template>
611   <xslo:template mode="index_subfields" match="marc:datafield[@tag='115']">
612     <xslo:for-each select="marc:subfield">
613       <xslo:if test="contains('a', @code)">
614         <z:index name="Video-mt:w">
615           <xslo:value-of select="substring(., 1, 1)"/>
616         </z:index>
617       </xslo:if>
618     </xslo:for-each>
619   </xslo:template>
620   <xslo:template mode="index_subfields" match="marc:datafield[@tag='116']">
621     <xslo:for-each select="marc:subfield">
622       <xslo:if test="contains('a', @code)">
623         <z:index name="Graphics-type:w">
624           <xslo:value-of select="substring(., 1, 1)"/>
625         </z:index>
626       </xslo:if>
627     </xslo:for-each>
628     <xslo:for-each select="marc:subfield">
629       <xslo:if test="contains('a', @code)">
630         <z:index name="Graphics-support:w">
631           <xslo:value-of select="substring(., 2, 1)"/>
632         </z:index>
633       </xslo:if>
634     </xslo:for-each>
635     <xslo:for-each select="marc:subfield">
636       <xslo:if test="contains('a', @code)">
637         <z:index name="Graphics-support:w">
638           <xslo:value-of select="substring(., 3, 1)"/>
639         </z:index>
640       </xslo:if>
641     </xslo:for-each>
642   </xslo:template>
643   <xslo:template mode="index_subfields" match="marc:datafield[@tag='700']">
644     <xslo:for-each select="marc:subfield">
645       <xslo:if test="contains('3', @code)">
646         <z:index name="Identifier-standard:w">
647           <xslo:value-of select="."/>
648         </z:index>
649       </xslo:if>
650     </xslo:for-each>
651     <xslo:for-each select="marc:subfield">
652       <xslo:if test="contains('9', @code)">
653         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
654           <xslo:value-of select="."/>
655         </z:index>
656       </xslo:if>
657     </xslo:for-each>
658     <xslo:for-each select="marc:subfield">
659       <xslo:if test="contains('a', @code)">
660         <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:w Author:s">
661           <xslo:value-of select="."/>
662         </z:index>
663       </xslo:if>
664     </xslo:for-each>
665   </xslo:template>
666   <xslo:template mode="index_subfields" match="marc:datafield[@tag='701']">
667     <xslo:for-each select="marc:subfield">
668       <xslo:if test="contains('3', @code)">
669         <z:index name="Identifier-standard:w">
670           <xslo:value-of select="."/>
671         </z:index>
672       </xslo:if>
673     </xslo:for-each>
674     <xslo:for-each select="marc:subfield">
675       <xslo:if test="contains('9', @code)">
676         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
677           <xslo:value-of select="."/>
678         </z:index>
679       </xslo:if>
680     </xslo:for-each>
681   </xslo:template>
682   <xslo:template mode="index_subfields" match="marc:datafield[@tag='702']">
683     <xslo:for-each select="marc:subfield">
684       <xslo:if test="contains('3', @code)">
685         <z:index name="Identifier-standard:w">
686           <xslo:value-of select="."/>
687         </z:index>
688       </xslo:if>
689     </xslo:for-each>
690     <xslo:for-each select="marc:subfield">
691       <xslo:if test="contains('9', @code)">
692         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
693           <xslo:value-of select="."/>
694         </z:index>
695       </xslo:if>
696     </xslo:for-each>
697   </xslo:template>
698   <xslo:template mode="index_subfields" match="marc:datafield[@tag='710']">
699     <xslo:for-each select="marc:subfield">
700       <xslo:if test="contains('3', @code)">
701         <z:index name="Identifier-standard:w">
702           <xslo:value-of select="."/>
703         </z:index>
704       </xslo:if>
705     </xslo:for-each>
706     <xslo:for-each select="marc:subfield">
707       <xslo:if test="contains('9', @code)">
708         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
709           <xslo:value-of select="."/>
710         </z:index>
711       </xslo:if>
712     </xslo:for-each>
713   </xslo:template>
714   <xslo:template mode="index_subfields" match="marc:datafield[@tag='711']">
715     <xslo:for-each select="marc:subfield">
716       <xslo:if test="contains('3', @code)">
717         <z:index name="Identifier-standard:w">
718           <xslo:value-of select="."/>
719         </z:index>
720       </xslo:if>
721     </xslo:for-each>
722     <xslo:for-each select="marc:subfield">
723       <xslo:if test="contains('9', @code)">
724         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
725           <xslo:value-of select="."/>
726         </z:index>
727       </xslo:if>
728     </xslo:for-each>
729   </xslo:template>
730   <xslo:template mode="index_subfields" match="marc:datafield[@tag='712']">
731     <xslo:for-each select="marc:subfield">
732       <xslo:if test="contains('3', @code)">
733         <z:index name="Identifier-standard:w">
734           <xslo:value-of select="."/>
735         </z:index>
736       </xslo:if>
737     </xslo:for-each>
738     <xslo:for-each select="marc:subfield">
739       <xslo:if test="contains('9', @code)">
740         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
741           <xslo:value-of select="."/>
742         </z:index>
743       </xslo:if>
744     </xslo:for-each>
745   </xslo:template>
746   <xslo:template mode="index_subfields" match="marc:datafield[@tag='716']">
747     <xslo:for-each select="marc:subfield">
748       <xslo:if test="contains('9', @code)">
749         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
750           <xslo:value-of select="."/>
751         </z:index>
752       </xslo:if>
753     </xslo:for-each>
754   </xslo:template>
755   <xslo:template mode="index_subfields" match="marc:datafield[@tag='720']">
756     <xslo:for-each select="marc:subfield">
757       <xslo:if test="contains('9', @code)">
758         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
759           <xslo:value-of select="."/>
760         </z:index>
761       </xslo:if>
762     </xslo:for-each>
763   </xslo:template>
764   <xslo:template mode="index_subfields" match="marc:datafield[@tag='721']">
765     <xslo:for-each select="marc:subfield">
766       <xslo:if test="contains('9', @code)">
767         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
768           <xslo:value-of select="."/>
769         </z:index>
770       </xslo:if>
771     </xslo:for-each>
772   </xslo:template>
773   <xslo:template mode="index_subfields" match="marc:datafield[@tag='722']">
774     <xslo:for-each select="marc:subfield">
775       <xslo:if test="contains('9', @code)">
776         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
777           <xslo:value-of select="."/>
778         </z:index>
779       </xslo:if>
780     </xslo:for-each>
781   </xslo:template>
782   <xslo:template mode="index_subfields" match="marc:datafield[@tag='730']">
783     <xslo:for-each select="marc:subfield">
784       <xslo:if test="contains('9', @code)">
785         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
786           <xslo:value-of select="."/>
787         </z:index>
788       </xslo:if>
789     </xslo:for-each>
790   </xslo:template>
791   <xslo:template mode="index_subfields" match="marc:datafield[@tag='208']">
792     <xslo:for-each select="marc:subfield">
793       <xslo:if test="contains('ad', @code)">
794         <z:index name="Material-Type:w Material-Type:p">
795           <xslo:value-of select="."/>
796         </z:index>
797       </xslo:if>
798     </xslo:for-each>
799   </xslo:template>
800   <xslo:template mode="index_subfields" match="marc:datafield[@tag='210']">
801     <xslo:for-each select="marc:subfield">
802       <xslo:if test="contains('c', @code)">
803         <z:index name="Publisher:w Publisher:p">
804           <xslo:value-of select="."/>
805         </z:index>
806       </xslo:if>
807     </xslo:for-each>
808     <xslo:for-each select="marc:subfield">
809       <xslo:if test="contains('d', @code)">
810         <z:index name="pubdate:n pubdate:y">
811           <xslo:value-of select="."/>
812         </z:index>
813       </xslo:if>
814     </xslo:for-each>
815   </xslo:template>
816   <xslo:template mode="index_subfields" match="marc:datafield[@tag='225']">
817     <xslo:for-each select="marc:subfield">
818       <xslo:if test="contains('a', @code)">
819         <z:index name="Title-series:w Title-series:p">
820           <xslo:value-of select="."/>
821         </z:index>
822       </xslo:if>
823     </xslo:for-each>
824     <xslo:for-each select="marc:subfield">
825       <xslo:if test="contains('d', @code)">
826         <z:index name="Title-series:w Title-series:p">
827           <xslo:value-of select="."/>
828         </z:index>
829       </xslo:if>
830     </xslo:for-each>
831     <xslo:for-each select="marc:subfield">
832       <xslo:if test="contains('e', @code)">
833         <z:index name="Title-series:w Title-series:p">
834           <xslo:value-of select="."/>
835         </z:index>
836       </xslo:if>
837     </xslo:for-each>
838     <xslo:for-each select="marc:subfield">
839       <xslo:if test="contains('f', @code)">
840         <z:index name="Author:w Author:p Name-and-title:w Name-and-title:p">
841           <xslo:value-of select="."/>
842         </z:index>
843       </xslo:if>
844     </xslo:for-each>
845     <xslo:for-each select="marc:subfield">
846       <xslo:if test="contains('h', @code)">
847         <z:index name="Title-series:w Title-series:p">
848           <xslo:value-of select="."/>
849         </z:index>
850       </xslo:if>
851     </xslo:for-each>
852     <xslo:for-each select="marc:subfield">
853       <xslo:if test="contains('i', @code)">
854         <z:index name="Title-series:w Title-series:p">
855           <xslo:value-of select="."/>
856         </z:index>
857       </xslo:if>
858     </xslo:for-each>
859     <xslo:for-each select="marc:subfield">
860       <xslo:if test="contains('v', @code)">
861         <z:index name="Title-series:w Title-series:p">
862           <xslo:value-of select="."/>
863         </z:index>
864       </xslo:if>
865     </xslo:for-each>
866     <xslo:for-each select="marc:subfield">
867       <xslo:if test="contains('x', @code)">
868         <z:index name="ISSN:w">
869           <xslo:value-of select="."/>
870         </z:index>
871       </xslo:if>
872     </xslo:for-each>
873   </xslo:template>
874   <xslo:template mode="index_subfields" match="marc:datafield[@tag='300']">
875     <xslo:for-each select="marc:subfield">
876       <xslo:if test="contains('a', @code)">
877         <z:index name="Note:w Note:p">
878           <xslo:value-of select="."/>
879         </z:index>
880       </xslo:if>
881     </xslo:for-each>
882   </xslo:template>
883   <xslo:template mode="index_subfields" match="marc:datafield[@tag='301']">
884     <xslo:for-each select="marc:subfield">
885       <xslo:if test="contains('a', @code)">
886         <z:index name="Note:w Note:p">
887           <xslo:value-of select="."/>
888         </z:index>
889       </xslo:if>
890     </xslo:for-each>
891   </xslo:template>
892   <xslo:template mode="index_subfields" match="marc:datafield[@tag='302']">
893     <xslo:for-each select="marc:subfield">
894       <xslo:if test="contains('a', @code)">
895         <z:index name="Note:w Note:p">
896           <xslo:value-of select="."/>
897         </z:index>
898       </xslo:if>
899     </xslo:for-each>
900   </xslo:template>
901   <xslo:template mode="index_subfields" match="marc:datafield[@tag='303']">
902     <xslo:for-each select="marc:subfield">
903       <xslo:if test="contains('a', @code)">
904         <z:index name="Note:w Note:p">
905           <xslo:value-of select="."/>
906         </z:index>
907       </xslo:if>
908     </xslo:for-each>
909   </xslo:template>
910   <xslo:template mode="index_subfields" match="marc:datafield[@tag='304']">
911     <xslo:for-each select="marc:subfield">
912       <xslo:if test="contains('a', @code)">
913         <z:index name="Note:w Note:p Title:w Title:p">
914           <xslo:value-of select="."/>
915         </z:index>
916       </xslo:if>
917     </xslo:for-each>
918   </xslo:template>
919   <xslo:template mode="index_subfields" match="marc:datafield[@tag='305']">
920     <xslo:for-each select="marc:subfield">
921       <xslo:if test="contains('a', @code)">
922         <z:index name="Note:w Note:p">
923           <xslo:value-of select="."/>
924         </z:index>
925       </xslo:if>
926     </xslo:for-each>
927   </xslo:template>
928   <xslo:template mode="index_subfields" match="marc:datafield[@tag='306']">
929     <xslo:for-each select="marc:subfield">
930       <xslo:if test="contains('a', @code)">
931         <z:index name="Note:w Note:p">
932           <xslo:value-of select="."/>
933         </z:index>
934       </xslo:if>
935     </xslo:for-each>
936   </xslo:template>
937   <xslo:template mode="index_subfields" match="marc:datafield[@tag='307']">
938     <xslo:for-each select="marc:subfield">
939       <xslo:if test="contains('a', @code)">
940         <z:index name="Note:w Note:p">
941           <xslo:value-of select="."/>
942         </z:index>
943       </xslo:if>
944     </xslo:for-each>
945   </xslo:template>
946   <xslo:template mode="index_subfields" match="marc:datafield[@tag='308']">
947     <xslo:for-each select="marc:subfield">
948       <xslo:if test="contains('a', @code)">
949         <z:index name="Note:w Note:p">
950           <xslo:value-of select="."/>
951         </z:index>
952       </xslo:if>
953     </xslo:for-each>
954   </xslo:template>
955   <xslo:template mode="index_subfields" match="marc:datafield[@tag='310']">
956     <xslo:for-each select="marc:subfield">
957       <xslo:if test="contains('a', @code)">
958         <z:index name="Note:w Note:p">
959           <xslo:value-of select="."/>
960         </z:index>
961       </xslo:if>
962     </xslo:for-each>
963   </xslo:template>
964   <xslo:template mode="index_subfields" match="marc:datafield[@tag='311']">
965     <xslo:for-each select="marc:subfield">
966       <xslo:if test="contains('a', @code)">
967         <z:index name="Note:w Note:p">
968           <xslo:value-of select="."/>
969         </z:index>
970       </xslo:if>
971     </xslo:for-each>
972   </xslo:template>
973   <xslo:template mode="index_subfields" match="marc:datafield[@tag='312']">
974     <xslo:for-each select="marc:subfield">
975       <xslo:if test="contains('a', @code)">
976         <z:index name="Note:w Note:p">
977           <xslo:value-of select="."/>
978         </z:index>
979       </xslo:if>
980     </xslo:for-each>
981   </xslo:template>
982   <xslo:template mode="index_subfields" match="marc:datafield[@tag='313']">
983     <xslo:for-each select="marc:subfield">
984       <xslo:if test="contains('a', @code)">
985         <z:index name="Note:w Note:p">
986           <xslo:value-of select="."/>
987         </z:index>
988       </xslo:if>
989     </xslo:for-each>
990   </xslo:template>
991   <xslo:template mode="index_subfields" match="marc:datafield[@tag='314']">
992     <xslo:for-each select="marc:subfield">
993       <xslo:if test="contains('a', @code)">
994         <z:index name="Note:w Note:p Author:w Author:p">
995           <xslo:value-of select="."/>
996         </z:index>
997       </xslo:if>
998     </xslo:for-each>
999   </xslo:template>
1000   <xslo:template mode="index_subfields" match="marc:datafield[@tag='315']">
1001     <xslo:for-each select="marc:subfield">
1002       <xslo:if test="contains('a', @code)">
1003         <z:index name="Note:w Note:p">
1004           <xslo:value-of select="."/>
1005         </z:index>
1006       </xslo:if>
1007     </xslo:for-each>
1008   </xslo:template>
1009   <xslo:template mode="index_subfields" match="marc:datafield[@tag='316']">
1010     <xslo:for-each select="marc:subfield">
1011       <xslo:if test="contains('a', @code)">
1012         <z:index name="Note:w Note:p">
1013           <xslo:value-of select="."/>
1014         </z:index>
1015       </xslo:if>
1016     </xslo:for-each>
1017   </xslo:template>
1018   <xslo:template mode="index_subfields" match="marc:datafield[@tag='317']">
1019     <xslo:for-each select="marc:subfield">
1020       <xslo:if test="contains('a', @code)">
1021         <z:index name="Note:w Note:p">
1022           <xslo:value-of select="."/>
1023         </z:index>
1024       </xslo:if>
1025     </xslo:for-each>
1026   </xslo:template>
1027   <xslo:template mode="index_subfields" match="marc:datafield[@tag='320']">
1028     <xslo:for-each select="marc:subfield">
1029       <xslo:if test="contains('a', @code)">
1030         <z:index name="Note:w Note:p">
1031           <xslo:value-of select="."/>
1032         </z:index>
1033       </xslo:if>
1034     </xslo:for-each>
1035   </xslo:template>
1036   <xslo:template mode="index_subfields" match="marc:datafield[@tag='321']">
1037     <xslo:for-each select="marc:subfield">
1038       <xslo:if test="contains('a', @code)">
1039         <z:index name="Note:w Note:p">
1040           <xslo:value-of select="."/>
1041         </z:index>
1042       </xslo:if>
1043     </xslo:for-each>
1044   </xslo:template>
1045   <xslo:template mode="index_subfields" match="marc:datafield[@tag='322']">
1046     <xslo:for-each select="marc:subfield">
1047       <xslo:if test="contains('a', @code)">
1048         <z:index name="Note:w Note:p">
1049           <xslo:value-of select="."/>
1050         </z:index>
1051       </xslo:if>
1052     </xslo:for-each>
1053   </xslo:template>
1054   <xslo:template mode="index_subfields" match="marc:datafield[@tag='323']">
1055     <xslo:for-each select="marc:subfield">
1056       <xslo:if test="contains('a', @code)">
1057         <z:index name="Note:w Note:p">
1058           <xslo:value-of select="."/>
1059         </z:index>
1060       </xslo:if>
1061     </xslo:for-each>
1062   </xslo:template>
1063   <xslo:template mode="index_subfields" match="marc:datafield[@tag='324']">
1064     <xslo:for-each select="marc:subfield">
1065       <xslo:if test="contains('a', @code)">
1066         <z:index name="Note:w Note:p">
1067           <xslo:value-of select="."/>
1068         </z:index>
1069       </xslo:if>
1070     </xslo:for-each>
1071   </xslo:template>
1072   <xslo:template mode="index_subfields" match="marc:datafield[@tag='325']">
1073     <xslo:for-each select="marc:subfield">
1074       <xslo:if test="contains('a', @code)">
1075         <z:index name="Note:w Note:p">
1076           <xslo:value-of select="."/>
1077         </z:index>
1078       </xslo:if>
1079     </xslo:for-each>
1080   </xslo:template>
1081   <xslo:template mode="index_subfields" match="marc:datafield[@tag='326']">
1082     <xslo:for-each select="marc:subfield">
1083       <xslo:if test="contains('a', @code)">
1084         <z:index name="Note:w Note:p">
1085           <xslo:value-of select="."/>
1086         </z:index>
1087       </xslo:if>
1088     </xslo:for-each>
1089   </xslo:template>
1090   <xslo:template mode="index_subfields" match="marc:datafield[@tag='327']">
1091     <xslo:for-each select="marc:subfield">
1092       <xslo:if test="contains('abcdefghi', @code)">
1093         <z:index name="Note:w Note:p Title:w Title:p">
1094           <xslo:value-of select="."/>
1095         </z:index>
1096       </xslo:if>
1097     </xslo:for-each>
1098   </xslo:template>
1099   <xslo:template mode="index_subfields" match="marc:datafield[@tag='328']">
1100     <xslo:for-each select="marc:subfield">
1101       <xslo:if test="contains('abcde', @code)">
1102         <z:index name="Note:w Note:p Dissertation-information:p Dissertation-information:w">
1103           <xslo:value-of select="."/>
1104         </z:index>
1105       </xslo:if>
1106     </xslo:for-each>
1107     <xslo:for-each select="marc:subfield">
1108       <xslo:if test="contains('t', @code)">
1109         <z:index name="Note:w Note:p Dissertation-information:p Dissertation-information:w Title:p Title:w">
1110           <xslo:value-of select="."/>
1111         </z:index>
1112       </xslo:if>
1113     </xslo:for-each>
1114   </xslo:template>
1115   <xslo:template mode="index_subfields" match="marc:datafield[@tag='330']">
1116     <xslo:for-each select="marc:subfield">
1117       <xslo:if test="contains('a', @code)">
1118         <z:index name="Abstract:w Note:w Abstract:p Note:p">
1119           <xslo:value-of select="."/>
1120         </z:index>
1121       </xslo:if>
1122     </xslo:for-each>
1123   </xslo:template>
1124   <xslo:template mode="index_subfields" match="marc:datafield[@tag='332']">
1125     <xslo:for-each select="marc:subfield">
1126       <xslo:if test="contains('a', @code)">
1127         <z:index name="Note:w Note:p">
1128           <xslo:value-of select="."/>
1129         </z:index>
1130       </xslo:if>
1131     </xslo:for-each>
1132   </xslo:template>
1133   <xslo:template mode="index_subfields" match="marc:datafield[@tag='333']">
1134     <xslo:for-each select="marc:subfield">
1135       <xslo:if test="contains('a', @code)">
1136         <z:index name="Note:w Note:p">
1137           <xslo:value-of select="."/>
1138         </z:index>
1139       </xslo:if>
1140     </xslo:for-each>
1141   </xslo:template>
1142   <xslo:template mode="index_subfields" match="marc:datafield[@tag='334']">
1143     <xslo:for-each select="marc:subfield">
1144       <xslo:if test="contains('abcd', @code)">
1145         <z:index name="Note:w Note:p">
1146           <xslo:value-of select="."/>
1147         </z:index>
1148       </xslo:if>
1149     </xslo:for-each>
1150   </xslo:template>
1151   <xslo:template mode="index_subfields" match="marc:datafield[@tag='336']">
1152     <xslo:for-each select="marc:subfield">
1153       <xslo:if test="contains('a', @code)">
1154         <z:index name="Note:w Note:p">
1155           <xslo:value-of select="."/>
1156         </z:index>
1157       </xslo:if>
1158     </xslo:for-each>
1159   </xslo:template>
1160   <xslo:template mode="index_subfields" match="marc:datafield[@tag='337']">
1161     <xslo:for-each select="marc:subfield">
1162       <xslo:if test="contains('a', @code)">
1163         <z:index name="Note:w Note:p">
1164           <xslo:value-of select="."/>
1165         </z:index>
1166       </xslo:if>
1167     </xslo:for-each>
1168   </xslo:template>
1169   <xslo:template mode="index_subfields" match="marc:datafield[@tag='345']">
1170     <xslo:for-each select="marc:subfield">
1171       <xslo:if test="contains('a', @code)">
1172         <z:index name="Note:w Note:p">
1173           <xslo:value-of select="."/>
1174         </z:index>
1175       </xslo:if>
1176     </xslo:for-each>
1177   </xslo:template>
1178   <xslo:template mode="index_subfields" match="marc:datafield[@tag='410']">
1179     <xslo:for-each select="marc:subfield">
1180       <xslo:if test="contains('t', @code)">
1181         <z:index name="Title-series:w Title-series:p">
1182           <xslo:value-of select="."/>
1183         </z:index>
1184       </xslo:if>
1185     </xslo:for-each>
1186   </xslo:template>
1187   <xslo:template mode="index_subfields" match="marc:datafield[@tag='413']">
1188     <xslo:for-each select="marc:subfield">
1189       <xslo:if test="contains('t', @code)">
1190         <z:index name="Title:w Title:p">
1191           <xslo:value-of select="."/>
1192         </z:index>
1193       </xslo:if>
1194     </xslo:for-each>
1195   </xslo:template>
1196   <xslo:template mode="index_subfields" match="marc:datafield[@tag='421']">
1197     <xslo:for-each select="marc:subfield">
1198       <xslo:if test="contains('t', @code)">
1199         <z:index name="Title:w Title:p">
1200           <xslo:value-of select="."/>
1201         </z:index>
1202       </xslo:if>
1203     </xslo:for-each>
1204   </xslo:template>
1205   <xslo:template mode="index_subfields" match="marc:datafield[@tag='422']">
1206     <xslo:for-each select="marc:subfield">
1207       <xslo:if test="contains('t', @code)">
1208         <z:index name="Title:w Title:p">
1209           <xslo:value-of select="."/>
1210         </z:index>
1211       </xslo:if>
1212     </xslo:for-each>
1213   </xslo:template>
1214   <xslo:template mode="index_subfields" match="marc:datafield[@tag='423']">
1215     <xslo:for-each select="marc:subfield">
1216       <xslo:if test="contains('t', @code)">
1217         <z:index name="Title:w Title:p">
1218           <xslo:value-of select="."/>
1219         </z:index>
1220       </xslo:if>
1221     </xslo:for-each>
1222   </xslo:template>
1223   <xslo:template mode="index_subfields" match="marc:datafield[@tag='424']">
1224     <xslo:for-each select="marc:subfield">
1225       <xslo:if test="contains('t', @code)">
1226         <z:index name="Title:w Title:p">
1227           <xslo:value-of select="."/>
1228         </z:index>
1229       </xslo:if>
1230     </xslo:for-each>
1231   </xslo:template>
1232   <xslo:template mode="index_subfields" match="marc:datafield[@tag='425']">
1233     <xslo:for-each select="marc:subfield">
1234       <xslo:if test="contains('t', @code)">
1235         <z:index name="Title:w Title:p">
1236           <xslo:value-of select="."/>
1237         </z:index>
1238       </xslo:if>
1239     </xslo:for-each>
1240   </xslo:template>
1241   <xslo:template mode="index_subfields" match="marc:datafield[@tag='430']">
1242     <xslo:for-each select="marc:subfield">
1243       <xslo:if test="contains('t', @code)">
1244         <z:index name="Title:w Title:p">
1245           <xslo:value-of select="."/>
1246         </z:index>
1247       </xslo:if>
1248     </xslo:for-each>
1249   </xslo:template>
1250   <xslo:template mode="index_subfields" match="marc:datafield[@tag='431']">
1251     <xslo:for-each select="marc:subfield">
1252       <xslo:if test="contains('t', @code)">
1253         <z:index name="Title:w Title:p">
1254           <xslo:value-of select="."/>
1255         </z:index>
1256       </xslo:if>
1257     </xslo:for-each>
1258   </xslo:template>
1259   <xslo:template mode="index_subfields" match="marc:datafield[@tag='432']">
1260     <xslo:for-each select="marc:subfield">
1261       <xslo:if test="contains('t', @code)">
1262         <z:index name="Title:w Title:p">
1263           <xslo:value-of select="."/>
1264         </z:index>
1265       </xslo:if>
1266     </xslo:for-each>
1267   </xslo:template>
1268   <xslo:template mode="index_subfields" match="marc:datafield[@tag='433']">
1269     <xslo:for-each select="marc:subfield">
1270       <xslo:if test="contains('t', @code)">
1271         <z:index name="Title:w Title:p">
1272           <xslo:value-of select="."/>
1273         </z:index>
1274       </xslo:if>
1275     </xslo:for-each>
1276   </xslo:template>
1277   <xslo:template mode="index_subfields" match="marc:datafield[@tag='434']">
1278     <xslo:for-each select="marc:subfield">
1279       <xslo:if test="contains('t', @code)">
1280         <z:index name="Title:w Title:p">
1281           <xslo:value-of select="."/>
1282         </z:index>
1283       </xslo:if>
1284     </xslo:for-each>
1285   </xslo:template>
1286   <xslo:template mode="index_subfields" match="marc:datafield[@tag='435']">
1287     <xslo:for-each select="marc:subfield">
1288       <xslo:if test="contains('t', @code)">
1289         <z:index name="Title:w Title:p">
1290           <xslo:value-of select="."/>
1291         </z:index>
1292       </xslo:if>
1293     </xslo:for-each>
1294   </xslo:template>
1295   <xslo:template mode="index_subfields" match="marc:datafield[@tag='436']">
1296     <xslo:for-each select="marc:subfield">
1297       <xslo:if test="contains('t', @code)">
1298         <z:index name="Title:w Title:p">
1299           <xslo:value-of select="."/>
1300         </z:index>
1301       </xslo:if>
1302     </xslo:for-each>
1303   </xslo:template>
1304   <xslo:template mode="index_subfields" match="marc:datafield[@tag='437']">
1305     <xslo:for-each select="marc:subfield">
1306       <xslo:if test="contains('t', @code)">
1307         <z:index name="Title:w Title:p">
1308           <xslo:value-of select="."/>
1309         </z:index>
1310       </xslo:if>
1311     </xslo:for-each>
1312   </xslo:template>
1313   <xslo:template mode="index_subfields" match="marc:datafield[@tag='440']">
1314     <xslo:for-each select="marc:subfield">
1315       <xslo:if test="contains('t', @code)">
1316         <z:index name="Title:w Title:p">
1317           <xslo:value-of select="."/>
1318         </z:index>
1319       </xslo:if>
1320     </xslo:for-each>
1321   </xslo:template>
1322   <xslo:template mode="index_subfields" match="marc:datafield[@tag='441']">
1323     <xslo:for-each select="marc:subfield">
1324       <xslo:if test="contains('t', @code)">
1325         <z:index name="Title:w Title:p">
1326           <xslo:value-of select="."/>
1327         </z:index>
1328       </xslo:if>
1329     </xslo:for-each>
1330   </xslo:template>
1331   <xslo:template mode="index_subfields" match="marc:datafield[@tag='442']">
1332     <xslo:for-each select="marc:subfield">
1333       <xslo:if test="contains('t', @code)">
1334         <z:index name="Title:w Title:p">
1335           <xslo:value-of select="."/>
1336         </z:index>
1337       </xslo:if>
1338     </xslo:for-each>
1339   </xslo:template>
1340   <xslo:template mode="index_subfields" match="marc:datafield[@tag='443']">
1341     <xslo:for-each select="marc:subfield">
1342       <xslo:if test="contains('t', @code)">
1343         <z:index name="Title:w Title:p">
1344           <xslo:value-of select="."/>
1345         </z:index>
1346       </xslo:if>
1347     </xslo:for-each>
1348   </xslo:template>
1349   <xslo:template mode="index_subfields" match="marc:datafield[@tag='444']">
1350     <xslo:for-each select="marc:subfield">
1351       <xslo:if test="contains('t', @code)">
1352         <z:index name="Title:w Title:p">
1353           <xslo:value-of select="."/>
1354         </z:index>
1355       </xslo:if>
1356     </xslo:for-each>
1357   </xslo:template>
1358   <xslo:template mode="index_subfields" match="marc:datafield[@tag='445']">
1359     <xslo:for-each select="marc:subfield">
1360       <xslo:if test="contains('t', @code)">
1361         <z:index name="Title:w Title:p">
1362           <xslo:value-of select="."/>
1363         </z:index>
1364       </xslo:if>
1365     </xslo:for-each>
1366   </xslo:template>
1367   <xslo:template mode="index_subfields" match="marc:datafield[@tag='446']">
1368     <xslo:for-each select="marc:subfield">
1369       <xslo:if test="contains('t', @code)">
1370         <z:index name="Title:w Title:p">
1371           <xslo:value-of select="."/>
1372         </z:index>
1373       </xslo:if>
1374     </xslo:for-each>
1375   </xslo:template>
1376   <xslo:template mode="index_subfields" match="marc:datafield[@tag='447']">
1377     <xslo:for-each select="marc:subfield">
1378       <xslo:if test="contains('t', @code)">
1379         <z:index name="Title:w Title:p">
1380           <xslo:value-of select="."/>
1381         </z:index>
1382       </xslo:if>
1383     </xslo:for-each>
1384   </xslo:template>
1385   <xslo:template mode="index_subfields" match="marc:datafield[@tag='448']">
1386     <xslo:for-each select="marc:subfield">
1387       <xslo:if test="contains('t', @code)">
1388         <z:index name="Title:w Title:p">
1389           <xslo:value-of select="."/>
1390         </z:index>
1391       </xslo:if>
1392     </xslo:for-each>
1393   </xslo:template>
1394   <xslo:template mode="index_subfields" match="marc:datafield[@tag='451']">
1395     <xslo:for-each select="marc:subfield">
1396       <xslo:if test="contains('t', @code)">
1397         <z:index name="Title:w Title:p">
1398           <xslo:value-of select="."/>
1399         </z:index>
1400       </xslo:if>
1401     </xslo:for-each>
1402   </xslo:template>
1403   <xslo:template mode="index_subfields" match="marc:datafield[@tag='452']">
1404     <xslo:for-each select="marc:subfield">
1405       <xslo:if test="contains('t', @code)">
1406         <z:index name="Title:w Title:p">
1407           <xslo:value-of select="."/>
1408         </z:index>
1409       </xslo:if>
1410     </xslo:for-each>
1411   </xslo:template>
1412   <xslo:template mode="index_subfields" match="marc:datafield[@tag='453']">
1413     <xslo:for-each select="marc:subfield">
1414       <xslo:if test="contains('t', @code)">
1415         <z:index name="Title:w Title:p">
1416           <xslo:value-of select="."/>
1417         </z:index>
1418       </xslo:if>
1419     </xslo:for-each>
1420   </xslo:template>
1421   <xslo:template mode="index_subfields" match="marc:datafield[@tag='454']">
1422     <xslo:for-each select="marc:subfield">
1423       <xslo:if test="contains('t', @code)">
1424         <z:index name="Title:w Title:p">
1425           <xslo:value-of select="."/>
1426         </z:index>
1427       </xslo:if>
1428     </xslo:for-each>
1429   </xslo:template>
1430   <xslo:template mode="index_subfields" match="marc:datafield[@tag='455']">
1431     <xslo:for-each select="marc:subfield">
1432       <xslo:if test="contains('t', @code)">
1433         <z:index name="Title:w Title:p">
1434           <xslo:value-of select="."/>
1435         </z:index>
1436       </xslo:if>
1437     </xslo:for-each>
1438   </xslo:template>
1439   <xslo:template mode="index_subfields" match="marc:datafield[@tag='456']">
1440     <xslo:for-each select="marc:subfield">
1441       <xslo:if test="contains('t', @code)">
1442         <z:index name="Title:w Title:p">
1443           <xslo:value-of select="."/>
1444         </z:index>
1445       </xslo:if>
1446     </xslo:for-each>
1447   </xslo:template>
1448   <xslo:template mode="index_subfields" match="marc:datafield[@tag='461']">
1449     <xslo:for-each select="marc:subfield">
1450       <xslo:if test="contains('t', @code)">
1451         <z:index name="Title:w Title:p Host-item:w Host-item:p">
1452           <xslo:value-of select="."/>
1453         </z:index>
1454       </xslo:if>
1455     </xslo:for-each>
1456   </xslo:template>
1457   <xslo:template mode="index_subfields" match="marc:datafield[@tag='462']">
1458     <xslo:for-each select="marc:subfield">
1459       <xslo:if test="contains('t', @code)">
1460         <z:index name="Title:w Title:p">
1461           <xslo:value-of select="."/>
1462         </z:index>
1463       </xslo:if>
1464     </xslo:for-each>
1465   </xslo:template>
1466   <xslo:template mode="index_subfields" match="marc:datafield[@tag='463']">
1467     <xslo:for-each select="marc:subfield">
1468       <xslo:if test="contains('t', @code)">
1469         <z:index name="Title:w Title:p">
1470           <xslo:value-of select="."/>
1471         </z:index>
1472       </xslo:if>
1473     </xslo:for-each>
1474   </xslo:template>
1475   <xslo:template mode="index_subfields" match="marc:datafield[@tag='464']">
1476     <xslo:for-each select="marc:subfield">
1477       <xslo:if test="contains('t', @code)">
1478         <z:index name="Title:w Title:p Host-item:w Host-item:p">
1479           <xslo:value-of select="."/>
1480         </z:index>
1481       </xslo:if>
1482     </xslo:for-each>
1483   </xslo:template>
1484   <xslo:template mode="index_subfields" match="marc:datafield[@tag='470']">
1485     <xslo:for-each select="marc:subfield">
1486       <xslo:if test="contains('t', @code)">
1487         <z:index name="Title:w Title:p">
1488           <xslo:value-of select="."/>
1489         </z:index>
1490       </xslo:if>
1491     </xslo:for-each>
1492   </xslo:template>
1493   <xslo:template mode="index_subfields" match="marc:datafield[@tag='481']">
1494     <xslo:for-each select="marc:subfield">
1495       <xslo:if test="contains('t', @code)">
1496         <z:index name="Title:w Title:p">
1497           <xslo:value-of select="."/>
1498         </z:index>
1499       </xslo:if>
1500     </xslo:for-each>
1501   </xslo:template>
1502   <xslo:template mode="index_subfields" match="marc:datafield[@tag='482']">
1503     <xslo:for-each select="marc:subfield">
1504       <xslo:if test="contains('t', @code)">
1505         <z:index name="Title:w Title:p">
1506           <xslo:value-of select="."/>
1507         </z:index>
1508       </xslo:if>
1509     </xslo:for-each>
1510   </xslo:template>
1511   <xslo:template mode="index_subfields" match="marc:datafield[@tag='488']">
1512     <xslo:for-each select="marc:subfield">
1513       <xslo:if test="contains('t', @code)">
1514         <z:index name="Title:w Title:p">
1515           <xslo:value-of select="."/>
1516         </z:index>
1517       </xslo:if>
1518     </xslo:for-each>
1519   </xslo:template>
1520   <xslo:template mode="index_subfields" match="marc:datafield[@tag='500']">
1521     <xslo:for-each select="marc:subfield">
1522       <xslo:if test="contains('9', @code)">
1523         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1524           <xslo:value-of select="."/>
1525         </z:index>
1526       </xslo:if>
1527     </xslo:for-each>
1528   </xslo:template>
1529   <xslo:template mode="index_subfields" match="marc:datafield[@tag='501']">
1530     <xslo:for-each select="marc:subfield">
1531       <xslo:if test="contains('9', @code)">
1532         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1533           <xslo:value-of select="."/>
1534         </z:index>
1535       </xslo:if>
1536     </xslo:for-each>
1537   </xslo:template>
1538   <xslo:template mode="index_subfields" match="marc:datafield[@tag='503']">
1539     <xslo:for-each select="marc:subfield">
1540       <xslo:if test="contains('9', @code)">
1541         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1542           <xslo:value-of select="."/>
1543         </z:index>
1544       </xslo:if>
1545     </xslo:for-each>
1546   </xslo:template>
1547   <xslo:template mode="index_subfields" match="marc:datafield[@tag='510']">
1548     <xslo:for-each select="marc:subfield">
1549       <xslo:if test="contains('9', @code)">
1550         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1551           <xslo:value-of select="."/>
1552         </z:index>
1553       </xslo:if>
1554     </xslo:for-each>
1555   </xslo:template>
1556   <xslo:template mode="index_subfields" match="marc:datafield[@tag='512']">
1557     <xslo:for-each select="marc:subfield">
1558       <xslo:if test="contains('9', @code)">
1559         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1560           <xslo:value-of select="."/>
1561         </z:index>
1562       </xslo:if>
1563     </xslo:for-each>
1564   </xslo:template>
1565   <xslo:template mode="index_subfields" match="marc:datafield[@tag='513']">
1566     <xslo:for-each select="marc:subfield">
1567       <xslo:if test="contains('9', @code)">
1568         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1569           <xslo:value-of select="."/>
1570         </z:index>
1571       </xslo:if>
1572     </xslo:for-each>
1573   </xslo:template>
1574   <xslo:template mode="index_subfields" match="marc:datafield[@tag='514']">
1575     <xslo:for-each select="marc:subfield">
1576       <xslo:if test="contains('9', @code)">
1577         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1578           <xslo:value-of select="."/>
1579         </z:index>
1580       </xslo:if>
1581     </xslo:for-each>
1582   </xslo:template>
1583   <xslo:template mode="index_subfields" match="marc:datafield[@tag='515']">
1584     <xslo:for-each select="marc:subfield">
1585       <xslo:if test="contains('9', @code)">
1586         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1587           <xslo:value-of select="."/>
1588         </z:index>
1589       </xslo:if>
1590     </xslo:for-each>
1591   </xslo:template>
1592   <xslo:template mode="index_subfields" match="marc:datafield[@tag='516']">
1593     <xslo:for-each select="marc:subfield">
1594       <xslo:if test="contains('9', @code)">
1595         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1596           <xslo:value-of select="."/>
1597         </z:index>
1598       </xslo:if>
1599     </xslo:for-each>
1600   </xslo:template>
1601   <xslo:template mode="index_subfields" match="marc:datafield[@tag='517']">
1602     <xslo:for-each select="marc:subfield">
1603       <xslo:if test="contains('9', @code)">
1604         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1605           <xslo:value-of select="."/>
1606         </z:index>
1607       </xslo:if>
1608     </xslo:for-each>
1609   </xslo:template>
1610   <xslo:template mode="index_subfields" match="marc:datafield[@tag='518']">
1611     <xslo:for-each select="marc:subfield">
1612       <xslo:if test="contains('9', @code)">
1613         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1614           <xslo:value-of select="."/>
1615         </z:index>
1616       </xslo:if>
1617     </xslo:for-each>
1618   </xslo:template>
1619   <xslo:template mode="index_subfields" match="marc:datafield[@tag='519']">
1620     <xslo:for-each select="marc:subfield">
1621       <xslo:if test="contains('9', @code)">
1622         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1623           <xslo:value-of select="."/>
1624         </z:index>
1625       </xslo:if>
1626     </xslo:for-each>
1627   </xslo:template>
1628   <xslo:template mode="index_subfields" match="marc:datafield[@tag='520']">
1629     <xslo:for-each select="marc:subfield">
1630       <xslo:if test="contains('9', @code)">
1631         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1632           <xslo:value-of select="."/>
1633         </z:index>
1634       </xslo:if>
1635     </xslo:for-each>
1636   </xslo:template>
1637   <xslo:template mode="index_subfields" match="marc:datafield[@tag='530']">
1638     <xslo:for-each select="marc:subfield">
1639       <xslo:if test="contains('9', @code)">
1640         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1641           <xslo:value-of select="."/>
1642         </z:index>
1643       </xslo:if>
1644     </xslo:for-each>
1645   </xslo:template>
1646   <xslo:template mode="index_subfields" match="marc:datafield[@tag='531']">
1647     <xslo:for-each select="marc:subfield">
1648       <xslo:if test="contains('9', @code)">
1649         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1650           <xslo:value-of select="."/>
1651         </z:index>
1652       </xslo:if>
1653     </xslo:for-each>
1654   </xslo:template>
1655   <xslo:template mode="index_subfields" match="marc:datafield[@tag='532']">
1656     <xslo:for-each select="marc:subfield">
1657       <xslo:if test="contains('9', @code)">
1658         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1659           <xslo:value-of select="."/>
1660         </z:index>
1661       </xslo:if>
1662     </xslo:for-each>
1663   </xslo:template>
1664   <xslo:template mode="index_subfields" match="marc:datafield[@tag='540']">
1665     <xslo:for-each select="marc:subfield">
1666       <xslo:if test="contains('9', @code)">
1667         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1668           <xslo:value-of select="."/>
1669         </z:index>
1670       </xslo:if>
1671     </xslo:for-each>
1672   </xslo:template>
1673   <xslo:template mode="index_subfields" match="marc:datafield[@tag='541']">
1674     <xslo:for-each select="marc:subfield">
1675       <xslo:if test="contains('9', @code)">
1676         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1677           <xslo:value-of select="."/>
1678         </z:index>
1679       </xslo:if>
1680     </xslo:for-each>
1681   </xslo:template>
1682   <xslo:template mode="index_subfields" match="marc:datafield[@tag='545']">
1683     <xslo:for-each select="marc:subfield">
1684       <xslo:if test="contains('9', @code)">
1685         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1686           <xslo:value-of select="."/>
1687         </z:index>
1688       </xslo:if>
1689     </xslo:for-each>
1690   </xslo:template>
1691   <xslo:template mode="index_subfields" match="marc:datafield[@tag='560']">
1692     <xslo:for-each select="marc:subfield">
1693       <xslo:if test="contains('9', @code)">
1694         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1695           <xslo:value-of select="."/>
1696         </z:index>
1697       </xslo:if>
1698     </xslo:for-each>
1699   </xslo:template>
1700   <xslo:template mode="index_subfields" match="marc:datafield[@tag='600']">
1701     <xslo:for-each select="marc:subfield">
1702       <xslo:if test="contains('a', @code)">
1703         <z:index name="Personal-name:w Personal-name:p Subject:w Subject:p">
1704           <xslo:value-of select="."/>
1705         </z:index>
1706       </xslo:if>
1707     </xslo:for-each>
1708     <xslo:for-each select="marc:subfield">
1709       <xslo:if test="contains('9', @code)">
1710         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1711           <xslo:value-of select="."/>
1712         </z:index>
1713       </xslo:if>
1714     </xslo:for-each>
1715   </xslo:template>
1716   <xslo:template mode="index_subfields" match="marc:datafield[@tag='601']">
1717     <xslo:for-each select="marc:subfield">
1718       <xslo:if test="contains('a', @code)">
1719         <z:index name="Corporate-name:w Conference-name:w Corporate-name:p Conference-name:p">
1720           <xslo:value-of select="."/>
1721         </z:index>
1722       </xslo:if>
1723     </xslo:for-each>
1724     <xslo:for-each select="marc:subfield">
1725       <xslo:if test="contains('9', @code)">
1726         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1727           <xslo:value-of select="."/>
1728         </z:index>
1729       </xslo:if>
1730     </xslo:for-each>
1731   </xslo:template>
1732   <xslo:template mode="index_subfields" match="marc:datafield[@tag='602']">
1733     <xslo:for-each select="marc:subfield">
1734       <xslo:if test="contains('a', @code)">
1735         <z:index name="Personal-name:w Personal-name:p">
1736           <xslo:value-of select="."/>
1737         </z:index>
1738       </xslo:if>
1739     </xslo:for-each>
1740     <xslo:for-each select="marc:subfield">
1741       <xslo:if test="contains('9', @code)">
1742         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1743           <xslo:value-of select="."/>
1744         </z:index>
1745       </xslo:if>
1746     </xslo:for-each>
1747   </xslo:template>
1748   <xslo:template mode="index_subfields" match="marc:datafield[@tag='604']">
1749     <xslo:for-each select="marc:subfield">
1750       <xslo:if test="contains('9', @code)">
1751         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1752           <xslo:value-of select="."/>
1753         </z:index>
1754       </xslo:if>
1755     </xslo:for-each>
1756   </xslo:template>
1757   <xslo:template mode="index_subfields" match="marc:datafield[@tag='605']">
1758     <xslo:for-each select="marc:subfield">
1759       <xslo:if test="contains('9', @code)">
1760         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1761           <xslo:value-of select="."/>
1762         </z:index>
1763       </xslo:if>
1764     </xslo:for-each>
1765   </xslo:template>
1766   <xslo:template mode="index_subfields" match="marc:datafield[@tag='606']">
1767     <xslo:for-each select="marc:subfield">
1768       <xslo:if test="contains('9', @code)">
1769         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1770           <xslo:value-of select="."/>
1771         </z:index>
1772       </xslo:if>
1773     </xslo:for-each>
1774   </xslo:template>
1775   <xslo:template mode="index_subfields" match="marc:datafield[@tag='607']">
1776     <xslo:for-each select="marc:subfield">
1777       <xslo:if test="contains('9', @code)">
1778         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1779           <xslo:value-of select="."/>
1780         </z:index>
1781       </xslo:if>
1782     </xslo:for-each>
1783   </xslo:template>
1784   <xslo:template mode="index_subfields" match="marc:datafield[@tag='608']">
1785     <xslo:for-each select="marc:subfield">
1786       <xslo:if test="contains('9', @code)">
1787         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1788           <xslo:value-of select="."/>
1789         </z:index>
1790       </xslo:if>
1791     </xslo:for-each>
1792   </xslo:template>
1793   <xslo:template mode="index_subfields" match="marc:datafield[@tag='610']">
1794     <xslo:for-each select="marc:subfield">
1795       <xslo:if test="contains('9', @code)">
1796         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1797           <xslo:value-of select="."/>
1798         </z:index>
1799       </xslo:if>
1800     </xslo:for-each>
1801   </xslo:template>
1802   <xslo:template mode="index_subfields" match="marc:datafield[@tag='615']">
1803     <xslo:for-each select="marc:subfield">
1804       <xslo:if test="contains('9', @code)">
1805         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1806           <xslo:value-of select="."/>
1807         </z:index>
1808       </xslo:if>
1809     </xslo:for-each>
1810   </xslo:template>
1811   <xslo:template mode="index_subfields" match="marc:datafield[@tag='616']">
1812     <xslo:for-each select="marc:subfield">
1813       <xslo:if test="contains('9', @code)">
1814         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1815           <xslo:value-of select="."/>
1816         </z:index>
1817       </xslo:if>
1818     </xslo:for-each>
1819   </xslo:template>
1820   <xslo:template mode="index_subfields" match="marc:datafield[@tag='617']">
1821     <xslo:for-each select="marc:subfield">
1822       <xslo:if test="contains('9', @code)">
1823         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1824           <xslo:value-of select="."/>
1825         </z:index>
1826       </xslo:if>
1827     </xslo:for-each>
1828   </xslo:template>
1829   <xslo:template mode="index_subfields" match="marc:datafield[@tag='620']">
1830     <xslo:for-each select="marc:subfield">
1831       <xslo:if test="contains('9', @code)">
1832         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1833           <xslo:value-of select="."/>
1834         </z:index>
1835       </xslo:if>
1836     </xslo:for-each>
1837   </xslo:template>
1838   <xslo:template mode="index_subfields" match="marc:datafield[@tag='621']">
1839     <xslo:for-each select="marc:subfield">
1840       <xslo:if test="contains('9', @code)">
1841         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1842           <xslo:value-of select="."/>
1843         </z:index>
1844       </xslo:if>
1845     </xslo:for-each>
1846   </xslo:template>
1847   <xslo:template mode="index_subfields" match="marc:datafield[@tag='675']">
1848     <xslo:for-each select="marc:subfield">
1849       <xslo:if test="contains('a', @code)">
1850         <z:index name="UDC-classification:w UDC-classification:p UDC-classification:s">
1851           <xslo:value-of select="."/>
1852         </z:index>
1853       </xslo:if>
1854     </xslo:for-each>
1855   </xslo:template>
1856   <xslo:template mode="index_subfields" match="marc:datafield[@tag='676']">
1857     <xslo:for-each select="marc:subfield">
1858       <xslo:if test="contains('a', @code)">
1859         <z:index name="Dewey-classification:w Dewey-classification:p Dewey-classification:s">
1860           <xslo:value-of select="."/>
1861         </z:index>
1862       </xslo:if>
1863     </xslo:for-each>
1864   </xslo:template>
1865   <xslo:template mode="index_subfields" match="marc:datafield[@tag='680']">
1866     <xslo:for-each select="marc:subfield">
1867       <xslo:if test="contains('b', @code)">
1868         <z:index name="LC-call-number:s">
1869           <xslo:value-of select="."/>
1870         </z:index>
1871       </xslo:if>
1872     </xslo:for-each>
1873   </xslo:template>
1874   <xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
1875     <xslo:for-each select="marc:subfield">
1876       <xslo:if test="contains('0', @code)">
1877         <z:index name="totalissues:n totalissues:s">
1878           <xslo:value-of select="."/>
1879         </z:index>
1880       </xslo:if>
1881     </xslo:for-each>
1882   </xslo:template>
1883   <xslo:template mode="index_data_field" match="marc:datafield[@tag='700']">
1884     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1885       <xslo:variable name="raw_heading">
1886         <xslo:for-each select="marc:subfield">
1887           <xslo:if test="position() &gt; 1">
1888             <xslo:value-of select="substring(' ', 1, 1)"/>
1889           </xslo:if>
1890           <xslo:value-of select="."/>
1891         </xslo:for-each>
1892       </xslo:variable>
1893       <xslo:value-of select="normalize-space($raw_heading)"/>
1894     </z:index>
1895   </xslo:template>
1896   <xslo:template mode="index_data_field" match="marc:datafield[@tag='701']">
1897     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1898       <xslo:variable name="raw_heading">
1899         <xslo:for-each select="marc:subfield">
1900           <xslo:if test="position() &gt; 1">
1901             <xslo:value-of select="substring(' ', 1, 1)"/>
1902           </xslo:if>
1903           <xslo:value-of select="."/>
1904         </xslo:for-each>
1905       </xslo:variable>
1906       <xslo:value-of select="normalize-space($raw_heading)"/>
1907     </z:index>
1908   </xslo:template>
1909   <xslo:template mode="index_data_field" match="marc:datafield[@tag='702']">
1910     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1911       <xslo:variable name="raw_heading">
1912         <xslo:for-each select="marc:subfield">
1913           <xslo:if test="position() &gt; 1">
1914             <xslo:value-of select="substring(' ', 1, 1)"/>
1915           </xslo:if>
1916           <xslo:value-of select="."/>
1917         </xslo:for-each>
1918       </xslo:variable>
1919       <xslo:value-of select="normalize-space($raw_heading)"/>
1920     </z:index>
1921   </xslo:template>
1922   <xslo:template mode="index_data_field" match="marc:datafield[@tag='710']">
1923     <z:index name="Author:w Author-name-corporate:w Author-name-conference:w Corporate-name:w Conference-name:w Author:p Author-name-corporate:p Author-name-conference:p Corporate-name:p Conference-name:p">
1924       <xslo:variable name="raw_heading">
1925         <xslo:for-each select="marc:subfield">
1926           <xslo:if test="position() &gt; 1">
1927             <xslo:value-of select="substring(' ', 1, 1)"/>
1928           </xslo:if>
1929           <xslo:value-of select="."/>
1930         </xslo:for-each>
1931       </xslo:variable>
1932       <xslo:value-of select="normalize-space($raw_heading)"/>
1933     </z:index>
1934   </xslo:template>
1935   <xslo:template mode="index_data_field" match="marc:datafield[@tag='711']">
1936     <z:index name="Author:w Author-name-corporate:w Author-name-conference:w Corporate-name:w Conference-name:w Author:p Author-name-corporate:p Author-name-conference:p Corporate-name:p Conference-name:p">
1937       <xslo:variable name="raw_heading">
1938         <xslo:for-each select="marc:subfield">
1939           <xslo:if test="position() &gt; 1">
1940             <xslo:value-of select="substring(' ', 1, 1)"/>
1941           </xslo:if>
1942           <xslo:value-of select="."/>
1943         </xslo:for-each>
1944       </xslo:variable>
1945       <xslo:value-of select="normalize-space($raw_heading)"/>
1946     </z:index>
1947   </xslo:template>
1948   <xslo:template mode="index_data_field" match="marc:datafield[@tag='712']">
1949     <z:index name="Author:w Author-name-corporate:w Author-name-conference:w Corporate-name:w Conference-name:w Author:p Author-name-corporate:p Author-name-conference:p Corporate-name:p Conference-name:p">
1950       <xslo:variable name="raw_heading">
1951         <xslo:for-each select="marc:subfield">
1952           <xslo:if test="position() &gt; 1">
1953             <xslo:value-of select="substring(' ', 1, 1)"/>
1954           </xslo:if>
1955           <xslo:value-of select="."/>
1956         </xslo:for-each>
1957       </xslo:variable>
1958       <xslo:value-of select="normalize-space($raw_heading)"/>
1959     </z:index>
1960   </xslo:template>
1961   <xslo:template mode="index_data_field" match="marc:datafield[@tag='716']">
1962     <z:index name="Author:w Author:p">
1963       <xslo:variable name="raw_heading">
1964         <xslo:for-each select="marc:subfield">
1965           <xslo:if test="position() &gt; 1">
1966             <xslo:value-of select="substring(' ', 1, 1)"/>
1967           </xslo:if>
1968           <xslo:value-of select="."/>
1969         </xslo:for-each>
1970       </xslo:variable>
1971       <xslo:value-of select="normalize-space($raw_heading)"/>
1972     </z:index>
1973   </xslo:template>
1974   <xslo:template mode="index_data_field" match="marc:datafield[@tag='720']">
1975     <z:index name="Author:w Author:p">
1976       <xslo:variable name="raw_heading">
1977         <xslo:for-each select="marc:subfield">
1978           <xslo:if test="position() &gt; 1">
1979             <xslo:value-of select="substring(' ', 1, 1)"/>
1980           </xslo:if>
1981           <xslo:value-of select="."/>
1982         </xslo:for-each>
1983       </xslo:variable>
1984       <xslo:value-of select="normalize-space($raw_heading)"/>
1985     </z:index>
1986   </xslo:template>
1987   <xslo:template mode="index_data_field" match="marc:datafield[@tag='721']">
1988     <z:index name="Author:w Author:p">
1989       <xslo:variable name="raw_heading">
1990         <xslo:for-each select="marc:subfield">
1991           <xslo:if test="position() &gt; 1">
1992             <xslo:value-of select="substring(' ', 1, 1)"/>
1993           </xslo:if>
1994           <xslo:value-of select="."/>
1995         </xslo:for-each>
1996       </xslo:variable>
1997       <xslo:value-of select="normalize-space($raw_heading)"/>
1998     </z:index>
1999   </xslo:template>
2000   <xslo:template mode="index_data_field" match="marc:datafield[@tag='722']">
2001     <z:index name="Author:w Author:p">
2002       <xslo:variable name="raw_heading">
2003         <xslo:for-each select="marc:subfield">
2004           <xslo:if test="position() &gt; 1">
2005             <xslo:value-of select="substring(' ', 1, 1)"/>
2006           </xslo:if>
2007           <xslo:value-of select="."/>
2008         </xslo:for-each>
2009       </xslo:variable>
2010       <xslo:value-of select="normalize-space($raw_heading)"/>
2011     </z:index>
2012   </xslo:template>
2013   <xslo:template mode="index_data_field" match="marc:datafield[@tag='730']">
2014     <z:index name="Author:w Author:p">
2015       <xslo:variable name="raw_heading">
2016         <xslo:for-each select="marc:subfield">
2017           <xslo:if test="position() &gt; 1">
2018             <xslo:value-of select="substring(' ', 1, 1)"/>
2019           </xslo:if>
2020           <xslo:value-of select="."/>
2021         </xslo:for-each>
2022       </xslo:variable>
2023       <xslo:value-of select="normalize-space($raw_heading)"/>
2024     </z:index>
2025   </xslo:template>
2026   <xslo:template mode="index_data_field" match="marc:datafield[@tag='205']">
2027     <z:index name="Title:w Title:p">
2028       <xslo:variable name="raw_heading">
2029         <xslo:for-each select="marc:subfield">
2030           <xslo:if test="position() &gt; 1">
2031             <xslo:value-of select="substring(' ', 1, 1)"/>
2032           </xslo:if>
2033           <xslo:value-of select="."/>
2034         </xslo:for-each>
2035       </xslo:variable>
2036       <xslo:value-of select="normalize-space($raw_heading)"/>
2037     </z:index>
2038   </xslo:template>
2039   <xslo:template mode="index_data_field" match="marc:datafield[@tag='500']">
2040     <z:index name="Title:w Title:p">
2041       <xslo:variable name="raw_heading">
2042         <xslo:for-each select="marc:subfield">
2043           <xslo:if test="position() &gt; 1">
2044             <xslo:value-of select="substring(' ', 1, 1)"/>
2045           </xslo:if>
2046           <xslo:value-of select="."/>
2047         </xslo:for-each>
2048       </xslo:variable>
2049       <xslo:value-of select="normalize-space($raw_heading)"/>
2050     </z:index>
2051   </xslo:template>
2052   <xslo:template mode="index_data_field" match="marc:datafield[@tag='501']">
2053     <z:index name="Title:w Title:p">
2054       <xslo:variable name="raw_heading">
2055         <xslo:for-each select="marc:subfield">
2056           <xslo:if test="position() &gt; 1">
2057             <xslo:value-of select="substring(' ', 1, 1)"/>
2058           </xslo:if>
2059           <xslo:value-of select="."/>
2060         </xslo:for-each>
2061       </xslo:variable>
2062       <xslo:value-of select="normalize-space($raw_heading)"/>
2063     </z:index>
2064   </xslo:template>
2065   <xslo:template mode="index_data_field" match="marc:datafield[@tag='503']">
2066     <z:index name="Title:w Title:p">
2067       <xslo:variable name="raw_heading">
2068         <xslo:for-each select="marc:subfield">
2069           <xslo:if test="position() &gt; 1">
2070             <xslo:value-of select="substring(' ', 1, 1)"/>
2071           </xslo:if>
2072           <xslo:value-of select="."/>
2073         </xslo:for-each>
2074       </xslo:variable>
2075       <xslo:value-of select="normalize-space($raw_heading)"/>
2076     </z:index>
2077   </xslo:template>
2078   <xslo:template mode="index_data_field" match="marc:datafield[@tag='510']">
2079     <z:index name="Title:w Title:p">
2080       <xslo:variable name="raw_heading">
2081         <xslo:for-each select="marc:subfield">
2082           <xslo:if test="position() &gt; 1">
2083             <xslo:value-of select="substring(' ', 1, 1)"/>
2084           </xslo:if>
2085           <xslo:value-of select="."/>
2086         </xslo:for-each>
2087       </xslo:variable>
2088       <xslo:value-of select="normalize-space($raw_heading)"/>
2089     </z:index>
2090   </xslo:template>
2091   <xslo:template mode="index_data_field" match="marc:datafield[@tag='512']">
2092     <z:index name="Title:w Title:p">
2093       <xslo:variable name="raw_heading">
2094         <xslo:for-each select="marc:subfield">
2095           <xslo:if test="position() &gt; 1">
2096             <xslo:value-of select="substring(' ', 1, 1)"/>
2097           </xslo:if>
2098           <xslo:value-of select="."/>
2099         </xslo:for-each>
2100       </xslo:variable>
2101       <xslo:value-of select="normalize-space($raw_heading)"/>
2102     </z:index>
2103   </xslo:template>
2104   <xslo:template mode="index_data_field" match="marc:datafield[@tag='513']">
2105     <z:index name="Title:w Title:p">
2106       <xslo:variable name="raw_heading">
2107         <xslo:for-each select="marc:subfield">
2108           <xslo:if test="position() &gt; 1">
2109             <xslo:value-of select="substring(' ', 1, 1)"/>
2110           </xslo:if>
2111           <xslo:value-of select="."/>
2112         </xslo:for-each>
2113       </xslo:variable>
2114       <xslo:value-of select="normalize-space($raw_heading)"/>
2115     </z:index>
2116   </xslo:template>
2117   <xslo:template mode="index_data_field" match="marc:datafield[@tag='514']">
2118     <z:index name="Title:w Title:p">
2119       <xslo:variable name="raw_heading">
2120         <xslo:for-each select="marc:subfield">
2121           <xslo:if test="position() &gt; 1">
2122             <xslo:value-of select="substring(' ', 1, 1)"/>
2123           </xslo:if>
2124           <xslo:value-of select="."/>
2125         </xslo:for-each>
2126       </xslo:variable>
2127       <xslo:value-of select="normalize-space($raw_heading)"/>
2128     </z:index>
2129   </xslo:template>
2130   <xslo:template mode="index_data_field" match="marc:datafield[@tag='515']">
2131     <z:index name="Title:w Title:p">
2132       <xslo:variable name="raw_heading">
2133         <xslo:for-each select="marc:subfield">
2134           <xslo:if test="position() &gt; 1">
2135             <xslo:value-of select="substring(' ', 1, 1)"/>
2136           </xslo:if>
2137           <xslo:value-of select="."/>
2138         </xslo:for-each>
2139       </xslo:variable>
2140       <xslo:value-of select="normalize-space($raw_heading)"/>
2141     </z:index>
2142   </xslo:template>
2143   <xslo:template mode="index_data_field" match="marc:datafield[@tag='516']">
2144     <z:index name="Title:w Title:p">
2145       <xslo:variable name="raw_heading">
2146         <xslo:for-each select="marc:subfield">
2147           <xslo:if test="position() &gt; 1">
2148             <xslo:value-of select="substring(' ', 1, 1)"/>
2149           </xslo:if>
2150           <xslo:value-of select="."/>
2151         </xslo:for-each>
2152       </xslo:variable>
2153       <xslo:value-of select="normalize-space($raw_heading)"/>
2154     </z:index>
2155   </xslo:template>
2156   <xslo:template mode="index_data_field" match="marc:datafield[@tag='517']">
2157     <z:index name="Title:w Title:p">
2158       <xslo:variable name="raw_heading">
2159         <xslo:for-each select="marc:subfield">
2160           <xslo:if test="position() &gt; 1">
2161             <xslo:value-of select="substring(' ', 1, 1)"/>
2162           </xslo:if>
2163           <xslo:value-of select="."/>
2164         </xslo:for-each>
2165       </xslo:variable>
2166       <xslo:value-of select="normalize-space($raw_heading)"/>
2167     </z:index>
2168   </xslo:template>
2169   <xslo:template mode="index_data_field" match="marc:datafield[@tag='518']">
2170     <z:index name="Title:w Title:p">
2171       <xslo:variable name="raw_heading">
2172         <xslo:for-each select="marc:subfield">
2173           <xslo:if test="position() &gt; 1">
2174             <xslo:value-of select="substring(' ', 1, 1)"/>
2175           </xslo:if>
2176           <xslo:value-of select="."/>
2177         </xslo:for-each>
2178       </xslo:variable>
2179       <xslo:value-of select="normalize-space($raw_heading)"/>
2180     </z:index>
2181   </xslo:template>
2182   <xslo:template mode="index_data_field" match="marc:datafield[@tag='519']">
2183     <z:index name="Title:w Title:p">
2184       <xslo:variable name="raw_heading">
2185         <xslo:for-each select="marc:subfield">
2186           <xslo:if test="position() &gt; 1">
2187             <xslo:value-of select="substring(' ', 1, 1)"/>
2188           </xslo:if>
2189           <xslo:value-of select="."/>
2190         </xslo:for-each>
2191       </xslo:variable>
2192       <xslo:value-of select="normalize-space($raw_heading)"/>
2193     </z:index>
2194   </xslo:template>
2195   <xslo:template mode="index_data_field" match="marc:datafield[@tag='520']">
2196     <z:index name="Title:w Title:p">
2197       <xslo:variable name="raw_heading">
2198         <xslo:for-each select="marc:subfield">
2199           <xslo:if test="position() &gt; 1">
2200             <xslo:value-of select="substring(' ', 1, 1)"/>
2201           </xslo:if>
2202           <xslo:value-of select="."/>
2203         </xslo:for-each>
2204       </xslo:variable>
2205       <xslo:value-of select="normalize-space($raw_heading)"/>
2206     </z:index>
2207   </xslo:template>
2208   <xslo:template mode="index_data_field" match="marc:datafield[@tag='530']">
2209     <z:index name="Title:w Title:p">
2210       <xslo:variable name="raw_heading">
2211         <xslo:for-each select="marc:subfield">
2212           <xslo:if test="position() &gt; 1">
2213             <xslo:value-of select="substring(' ', 1, 1)"/>
2214           </xslo:if>
2215           <xslo:value-of select="."/>
2216         </xslo:for-each>
2217       </xslo:variable>
2218       <xslo:value-of select="normalize-space($raw_heading)"/>
2219     </z:index>
2220   </xslo:template>
2221   <xslo:template mode="index_data_field" match="marc:datafield[@tag='531']">
2222     <z:index name="Title:w Title:p">
2223       <xslo:variable name="raw_heading">
2224         <xslo:for-each select="marc:subfield">
2225           <xslo:if test="position() &gt; 1">
2226             <xslo:value-of select="substring(' ', 1, 1)"/>
2227           </xslo:if>
2228           <xslo:value-of select="."/>
2229         </xslo:for-each>
2230       </xslo:variable>
2231       <xslo:value-of select="normalize-space($raw_heading)"/>
2232     </z:index>
2233   </xslo:template>
2234   <xslo:template mode="index_data_field" match="marc:datafield[@tag='532']">
2235     <z:index name="Title:w Title:p">
2236       <xslo:variable name="raw_heading">
2237         <xslo:for-each select="marc:subfield">
2238           <xslo:if test="position() &gt; 1">
2239             <xslo:value-of select="substring(' ', 1, 1)"/>
2240           </xslo:if>
2241           <xslo:value-of select="."/>
2242         </xslo:for-each>
2243       </xslo:variable>
2244       <xslo:value-of select="normalize-space($raw_heading)"/>
2245     </z:index>
2246   </xslo:template>
2247   <xslo:template mode="index_data_field" match="marc:datafield[@tag='540']">
2248     <z:index name="Title:w Title:p">
2249       <xslo:variable name="raw_heading">
2250         <xslo:for-each select="marc:subfield">
2251           <xslo:if test="position() &gt; 1">
2252             <xslo:value-of select="substring(' ', 1, 1)"/>
2253           </xslo:if>
2254           <xslo:value-of select="."/>
2255         </xslo:for-each>
2256       </xslo:variable>
2257       <xslo:value-of select="normalize-space($raw_heading)"/>
2258     </z:index>
2259   </xslo:template>
2260   <xslo:template mode="index_data_field" match="marc:datafield[@tag='541']">
2261     <z:index name="Title:w Title:p">
2262       <xslo:variable name="raw_heading">
2263         <xslo:for-each select="marc:subfield">
2264           <xslo:if test="position() &gt; 1">
2265             <xslo:value-of select="substring(' ', 1, 1)"/>
2266           </xslo:if>
2267           <xslo:value-of select="."/>
2268         </xslo:for-each>
2269       </xslo:variable>
2270       <xslo:value-of select="normalize-space($raw_heading)"/>
2271     </z:index>
2272   </xslo:template>
2273   <xslo:template mode="index_data_field" match="marc:datafield[@tag='545']">
2274     <z:index name="Title:w Title:p">
2275       <xslo:variable name="raw_heading">
2276         <xslo:for-each select="marc:subfield">
2277           <xslo:if test="position() &gt; 1">
2278             <xslo:value-of select="substring(' ', 1, 1)"/>
2279           </xslo:if>
2280           <xslo:value-of select="."/>
2281         </xslo:for-each>
2282       </xslo:variable>
2283       <xslo:value-of select="normalize-space($raw_heading)"/>
2284     </z:index>
2285   </xslo:template>
2286   <xslo:template mode="index_data_field" match="marc:datafield[@tag='560']">
2287     <z:index name="Title:w Title:p">
2288       <xslo:variable name="raw_heading">
2289         <xslo:for-each select="marc:subfield">
2290           <xslo:if test="position() &gt; 1">
2291             <xslo:value-of select="substring(' ', 1, 1)"/>
2292           </xslo:if>
2293           <xslo:value-of select="."/>
2294         </xslo:for-each>
2295       </xslo:variable>
2296       <xslo:value-of select="normalize-space($raw_heading)"/>
2297     </z:index>
2298   </xslo:template>
2299   <xslo:template mode="index_data_field" match="marc:datafield[@tag='600']">
2300     <z:index name="Subject:w Subject:p">
2301       <xslo:variable name="raw_heading">
2302         <xslo:for-each select="marc:subfield">
2303           <xslo:if test="position() &gt; 1">
2304             <xslo:value-of select="substring(' ', 1, 1)"/>
2305           </xslo:if>
2306           <xslo:value-of select="."/>
2307         </xslo:for-each>
2308       </xslo:variable>
2309       <xslo:value-of select="normalize-space($raw_heading)"/>
2310     </z:index>
2311   </xslo:template>
2312   <xslo:template mode="index_data_field" match="marc:datafield[@tag='601']">
2313     <z:index name="Subject:w Subject:p">
2314       <xslo:variable name="raw_heading">
2315         <xslo:for-each select="marc:subfield">
2316           <xslo:if test="position() &gt; 1">
2317             <xslo:value-of select="substring(' ', 1, 1)"/>
2318           </xslo:if>
2319           <xslo:value-of select="."/>
2320         </xslo:for-each>
2321       </xslo:variable>
2322       <xslo:value-of select="normalize-space($raw_heading)"/>
2323     </z:index>
2324   </xslo:template>
2325   <xslo:template mode="index_data_field" match="marc:datafield[@tag='602']">
2326     <z:index name="Subject:w Subject:p">
2327       <xslo:variable name="raw_heading">
2328         <xslo:for-each select="marc:subfield">
2329           <xslo:if test="position() &gt; 1">
2330             <xslo:value-of select="substring(' ', 1, 1)"/>
2331           </xslo:if>
2332           <xslo:value-of select="."/>
2333         </xslo:for-each>
2334       </xslo:variable>
2335       <xslo:value-of select="normalize-space($raw_heading)"/>
2336     </z:index>
2337   </xslo:template>
2338   <xslo:template mode="index_data_field" match="marc:datafield[@tag='604']">
2339     <z:index name="Subject:w Subject:p">
2340       <xslo:variable name="raw_heading">
2341         <xslo:for-each select="marc:subfield">
2342           <xslo:if test="position() &gt; 1">
2343             <xslo:value-of select="substring(' ', 1, 1)"/>
2344           </xslo:if>
2345           <xslo:value-of select="."/>
2346         </xslo:for-each>
2347       </xslo:variable>
2348       <xslo:value-of select="normalize-space($raw_heading)"/>
2349     </z:index>
2350   </xslo:template>
2351   <xslo:template mode="index_data_field" match="marc:datafield[@tag='605']">
2352     <z:index name="Subject:w Subject:p">
2353       <xslo:variable name="raw_heading">
2354         <xslo:for-each select="marc:subfield">
2355           <xslo:if test="position() &gt; 1">
2356             <xslo:value-of select="substring(' ', 1, 1)"/>
2357           </xslo:if>
2358           <xslo:value-of select="."/>
2359         </xslo:for-each>
2360       </xslo:variable>
2361       <xslo:value-of select="normalize-space($raw_heading)"/>
2362     </z:index>
2363   </xslo:template>
2364   <xslo:template mode="index_data_field" match="marc:datafield[@tag='606']">
2365     <z:index name="Subject:w Subject:p">
2366       <xslo:variable name="raw_heading">
2367         <xslo:for-each select="marc:subfield">
2368           <xslo:if test="position() &gt; 1">
2369             <xslo:value-of select="substring(' ', 1, 1)"/>
2370           </xslo:if>
2371           <xslo:value-of select="."/>
2372         </xslo:for-each>
2373       </xslo:variable>
2374       <xslo:value-of select="normalize-space($raw_heading)"/>
2375     </z:index>
2376   </xslo:template>
2377   <xslo:template mode="index_data_field" match="marc:datafield[@tag='607']">
2378     <z:index name="Subject:w Subject:p">
2379       <xslo:variable name="raw_heading">
2380         <xslo:for-each select="marc:subfield">
2381           <xslo:if test="position() &gt; 1">
2382             <xslo:value-of select="substring(' ', 1, 1)"/>
2383           </xslo:if>
2384           <xslo:value-of select="."/>
2385         </xslo:for-each>
2386       </xslo:variable>
2387       <xslo:value-of select="normalize-space($raw_heading)"/>
2388     </z:index>
2389   </xslo:template>
2390   <xslo:template mode="index_data_field" match="marc:datafield[@tag='608']">
2391     <z:index name="Subject:w Subject:p">
2392       <xslo:variable name="raw_heading">
2393         <xslo:for-each select="marc:subfield">
2394           <xslo:if test="position() &gt; 1">
2395             <xslo:value-of select="substring(' ', 1, 1)"/>
2396           </xslo:if>
2397           <xslo:value-of select="."/>
2398         </xslo:for-each>
2399       </xslo:variable>
2400       <xslo:value-of select="normalize-space($raw_heading)"/>
2401     </z:index>
2402   </xslo:template>
2403   <xslo:template mode="index_data_field" match="marc:datafield[@tag='610']">
2404     <z:index name="Subject:w Subject:p">
2405       <xslo:variable name="raw_heading">
2406         <xslo:for-each select="marc:subfield">
2407           <xslo:if test="position() &gt; 1">
2408             <xslo:value-of select="substring(' ', 1, 1)"/>
2409           </xslo:if>
2410           <xslo:value-of select="."/>
2411         </xslo:for-each>
2412       </xslo:variable>
2413       <xslo:value-of select="normalize-space($raw_heading)"/>
2414     </z:index>
2415   </xslo:template>
2416   <xslo:template mode="index_data_field" match="marc:datafield[@tag='615']">
2417     <z:index name="Subject:w Subject:p">
2418       <xslo:variable name="raw_heading">
2419         <xslo:for-each select="marc:subfield">
2420           <xslo:if test="position() &gt; 1">
2421             <xslo:value-of select="substring(' ', 1, 1)"/>
2422           </xslo:if>
2423           <xslo:value-of select="."/>
2424         </xslo:for-each>
2425       </xslo:variable>
2426       <xslo:value-of select="normalize-space($raw_heading)"/>
2427     </z:index>
2428   </xslo:template>
2429   <xslo:template mode="index_data_field" match="marc:datafield[@tag='616']">
2430     <z:index name="Subject:w Subject:p">
2431       <xslo:variable name="raw_heading">
2432         <xslo:for-each select="marc:subfield">
2433           <xslo:if test="position() &gt; 1">
2434             <xslo:value-of select="substring(' ', 1, 1)"/>
2435           </xslo:if>
2436           <xslo:value-of select="."/>
2437         </xslo:for-each>
2438       </xslo:variable>
2439       <xslo:value-of select="normalize-space($raw_heading)"/>
2440     </z:index>
2441   </xslo:template>
2442   <xslo:template mode="index_data_field" match="marc:datafield[@tag='617']">
2443     <z:index name="Subject:w Subject:p">
2444       <xslo:variable name="raw_heading">
2445         <xslo:for-each select="marc:subfield">
2446           <xslo:if test="position() &gt; 1">
2447             <xslo:value-of select="substring(' ', 1, 1)"/>
2448           </xslo:if>
2449           <xslo:value-of select="."/>
2450         </xslo:for-each>
2451       </xslo:variable>
2452       <xslo:value-of select="normalize-space($raw_heading)"/>
2453     </z:index>
2454   </xslo:template>
2455   <xslo:template mode="index_data_field" match="marc:datafield[@tag='620']">
2456     <z:index name="Subject:w Subject:p">
2457       <xslo:variable name="raw_heading">
2458         <xslo:for-each select="marc:subfield">
2459           <xslo:if test="position() &gt; 1">
2460             <xslo:value-of select="substring(' ', 1, 1)"/>
2461           </xslo:if>
2462           <xslo:value-of select="."/>
2463         </xslo:for-each>
2464       </xslo:variable>
2465       <xslo:value-of select="normalize-space($raw_heading)"/>
2466     </z:index>
2467   </xslo:template>
2468   <xslo:template mode="index_data_field" match="marc:datafield[@tag='621']">
2469     <z:index name="Subject:w Subject:p">
2470       <xslo:variable name="raw_heading">
2471         <xslo:for-each select="marc:subfield">
2472           <xslo:if test="position() &gt; 1">
2473             <xslo:value-of select="substring(' ', 1, 1)"/>
2474           </xslo:if>
2475           <xslo:value-of select="."/>
2476         </xslo:for-each>
2477       </xslo:variable>
2478       <xslo:value-of select="normalize-space($raw_heading)"/>
2479     </z:index>
2480   </xslo:template>
2481   <xslo:template mode="index_data_field" match="marc:datafield[@tag='670']">
2482     <z:index name="Subject-precis:w Subject-precis:p">
2483       <xslo:variable name="raw_heading">
2484         <xslo:for-each select="marc:subfield">
2485           <xslo:if test="position() &gt; 1">
2486             <xslo:value-of select="substring(' ', 1, 1)"/>
2487           </xslo:if>
2488           <xslo:value-of select="."/>
2489         </xslo:for-each>
2490       </xslo:variable>
2491       <xslo:value-of select="normalize-space($raw_heading)"/>
2492     </z:index>
2493   </xslo:template>
2494   <xslo:template mode="index_data_field" match="marc:datafield[@tag='680']">
2495     <z:index name="LC-call-number:w LC-call-number:p">
2496       <xslo:variable name="raw_heading">
2497         <xslo:for-each select="marc:subfield">
2498           <xslo:if test="position() &gt; 1">
2499             <xslo:value-of select="substring(' ', 1, 1)"/>
2500           </xslo:if>
2501           <xslo:value-of select="."/>
2502         </xslo:for-each>
2503       </xslo:variable>
2504       <xslo:value-of select="normalize-space($raw_heading)"/>
2505     </z:index>
2506   </xslo:template>
2507   <xslo:template mode="index_data_field" match="marc:datafield[@tag='686']">
2508     <z:index name="Local-classification:w Local-classification:p">
2509       <xslo:variable name="raw_heading">
2510         <xslo:for-each select="marc:subfield">
2511           <xslo:if test="position() &gt; 1">
2512             <xslo:value-of select="substring(' ', 1, 1)"/>
2513           </xslo:if>
2514           <xslo:value-of select="."/>
2515         </xslo:for-each>
2516       </xslo:variable>
2517       <xslo:value-of select="normalize-space($raw_heading)"/>
2518     </z:index>
2519   </xslo:template>
2520   <xslo:template mode="index_data_field" match="marc:datafield[@tag='995']">
2521     <z:index name="item:w">
2522       <xslo:variable name="raw_heading">
2523         <xslo:for-each select="marc:subfield">
2524           <xslo:if test="position() &gt; 1">
2525             <xslo:value-of select="substring(' ', 1, 1)"/>
2526           </xslo:if>
2527           <xslo:value-of select="."/>
2528         </xslo:for-each>
2529       </xslo:variable>
2530       <xslo:value-of select="normalize-space($raw_heading)"/>
2531     </z:index>
2532   </xslo:template>
2533   <xslo:template mode="index_facets" match="marc:datafield[@tag='225']">
2534     <xslo:if test="not(@ind1='z')">
2535       <z:index name="se:0">
2536         <xslo:value-of select="marc:subfield[@code='a']"/>
2537       </z:index>
2538     </xslo:if>
2539   </xslo:template>
2540   <xslo:template mode="index_facets" match="marc:datafield[@tag='500']">
2541     <xslo:if test="not(@ind1='z')">
2542       <z:index name="su-ut:0">
2543         <xslo:value-of select="marc:subfield[@code='a']"/>
2544       </z:index>
2545     </xslo:if>
2546   </xslo:template>
2547   <xslo:template mode="index_facets" match="marc:datafield[@tag='501']">
2548     <xslo:if test="not(@ind1='z')">
2549       <z:index name="su-ut:0">
2550         <xslo:value-of select="marc:subfield[@code='a']"/>
2551       </z:index>
2552     </xslo:if>
2553   </xslo:template>
2554   <xslo:template mode="index_facets" match="marc:datafield[@tag='503']">
2555     <xslo:if test="not(@ind1='z')">
2556       <z:index name="su-ut:0">
2557         <xslo:value-of select="marc:subfield[@code='a']"/>
2558       </z:index>
2559     </xslo:if>
2560   </xslo:template>
2561   <xslo:template mode="index_facets" match="marc:datafield[@tag='600']">
2562     <xslo:if test="not(@ind1='z')">
2563       <z:index name="su-to:0">
2564         <xslo:value-of select="marc:subfield[@code='a']"/>
2565         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2566           <xslo:text>&lt;*&gt;</xslo:text>
2567         </xslo:if>
2568         <xslo:value-of select="marc:subfield[@code='b']"/>
2569       </z:index>
2570     </xslo:if>
2571   </xslo:template>
2572   <xslo:template mode="index_facets" match="marc:datafield[@tag='601']">
2573     <xslo:if test="not(@ind1='z')">
2574       <z:index name="su-to:0">
2575         <xslo:value-of select="marc:subfield[@code='a']"/>
2576         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2577           <xslo:text>&lt;*&gt;</xslo:text>
2578         </xslo:if>
2579         <xslo:value-of select="marc:subfield[@code='b']"/>
2580       </z:index>
2581     </xslo:if>
2582   </xslo:template>
2583   <xslo:template mode="index_facets" match="marc:datafield[@tag='602']">
2584     <xslo:if test="not(@ind1='z')">
2585       <z:index name="su-to:0">
2586         <xslo:value-of select="marc:subfield[@code='a']"/>
2587       </z:index>
2588     </xslo:if>
2589   </xslo:template>
2590   <xslo:template mode="index_facets" match="marc:datafield[@tag='604']">
2591     <xslo:if test="not(@ind1='z')">
2592       <z:index name="su-to:0">
2593         <xslo:value-of select="marc:subfield[@code='a']"/>
2594         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='t']">
2595           <xslo:text>&lt;*&gt;</xslo:text>
2596         </xslo:if>
2597         <xslo:value-of select="marc:subfield[@code='t']"/>
2598       </z:index>
2599     </xslo:if>
2600   </xslo:template>
2601   <xslo:template mode="index_facets" match="marc:datafield[@tag='605']">
2602     <xslo:if test="not(@ind1='z')">
2603       <z:index name="su-to:0">
2604         <xslo:value-of select="marc:subfield[@code='a']"/>
2605       </z:index>
2606     </xslo:if>
2607   </xslo:template>
2608   <xslo:template mode="index_facets" match="marc:datafield[@tag='606']">
2609     <xslo:if test="not(@ind1='z')">
2610       <z:index name="su-to:0">
2611         <xslo:value-of select="marc:subfield[@code='a']"/>
2612         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='x']">
2613           <xslo:text>&lt;*&gt;</xslo:text>
2614         </xslo:if>
2615         <xslo:value-of select="marc:subfield[@code='x']"/>
2616       </z:index>
2617     </xslo:if>
2618   </xslo:template>
2619   <xslo:template mode="index_facets" match="marc:datafield[@tag='607']">
2620     <xslo:if test="not(@ind1='z')">
2621       <z:index name="su-geo:0">
2622         <xslo:value-of select="marc:subfield[@code='a']"/>
2623       </z:index>
2624     </xslo:if>
2625   </xslo:template>
2626   <xslo:template mode="index_facets" match="marc:datafield[@tag='610']">
2627     <xslo:if test="not(@ind1='z')">
2628       <z:index name="su-to:0">
2629         <xslo:value-of select="marc:subfield[@code='a']"/>
2630       </z:index>
2631     </xslo:if>
2632   </xslo:template>
2633   <xslo:template mode="index_facets" match="marc:datafield[@tag='700']">
2634     <xslo:if test="not(@ind1='z')">
2635       <z:index name="au:0">
2636         <xslo:value-of select="marc:subfield[@code='a']"/>
2637         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2638           <xslo:text>&lt;*&gt;</xslo:text>
2639         </xslo:if>
2640         <xslo:value-of select="marc:subfield[@code='b']"/>
2641       </z:index>
2642     </xslo:if>
2643   </xslo:template>
2644   <xslo:template mode="index_facets" match="marc:datafield[@tag='701']">
2645     <xslo:if test="not(@ind1='z')">
2646       <z:index name="au:0">
2647         <xslo:value-of select="marc:subfield[@code='a']"/>
2648         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2649           <xslo:text>&lt;*&gt;</xslo:text>
2650         </xslo:if>
2651         <xslo:value-of select="marc:subfield[@code='b']"/>
2652       </z:index>
2653     </xslo:if>
2654   </xslo:template>
2655   <xslo:template mode="index_facets" match="marc:datafield[@tag='702']">
2656     <xslo:if test="not(@ind1='z')">
2657       <z:index name="au:0">
2658         <xslo:value-of select="marc:subfield[@code='a']"/>
2659         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2660           <xslo:text>&lt;*&gt;</xslo:text>
2661         </xslo:if>
2662         <xslo:value-of select="marc:subfield[@code='b']"/>
2663       </z:index>
2664     </xslo:if>
2665   </xslo:template>
2666   <xslo:template mode="index_facets" match="marc:datafield[@tag='995']">
2667     <xslo:if test="not(@ind1='z')">
2668       <z:index name="homebranch:0">
2669         <xslo:value-of select="marc:subfield[@code='b']"/>
2670       </z:index>
2671       <z:index name="holdingbranch:0">
2672         <xslo:value-of select="marc:subfield[@code='c']"/>
2673       </z:index>
2674       <z:index name="location:0">
2675         <xslo:value-of select="marc:subfield[@code='e']"/>
2676       </z:index>
2677     </xslo:if>
2678   </xslo:template>
2679   <xslo:template mode="index_all" match="text()">
2680     <z:index name="Any:w Any:p">
2681       <xslo:value-of select="."/>
2682     </z:index>
2683   </xslo:template>
2684   <xslo:template name="chopPunctuation">
2685     <xslo:param name="chopString"/>
2686     <xslo:variable name="length" select="string-length($chopString)"/>
2687     <xslo:choose>
2688       <xslo:when test="$length=0"/>
2689       <xslo:when test="contains('-,.:=;!%/', substring($chopString,$length,1))">
2690         <xslo:call-template name="chopPunctuation">
2691           <xslo:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
2692         </xslo:call-template>
2693       </xslo:when>
2694       <xslo:when test="not($chopString)"/>
2695       <xslo:otherwise>
2696         <xslo:value-of select="$chopString"/>
2697       </xslo:otherwise>
2698     </xslo:choose>
2699     <xslo:text/>
2700   </xslo:template>
2701 </xslo:stylesheet>