Bug 8992: Add 7..$3 to the Indentifier-standard index
[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:for-each select="marc:subfield">
1793       <xslo:if test="contains('9', @code)">
1794         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1795           <xslo:value-of select="."/>
1796         </z:index>
1797       </xslo:if>
1798     </xslo:for-each>
1799   </xslo:template>
1800   <xslo:template mode="index_subfields" match="marc:datafield[@tag='615']">
1801     <xslo:for-each select="marc:subfield">
1802       <xslo:if test="contains('9', @code)">
1803         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1804           <xslo:value-of select="."/>
1805         </z:index>
1806       </xslo:if>
1807     </xslo:for-each>
1808   </xslo:template>
1809   <xslo:template mode="index_subfields" match="marc:datafield[@tag='616']">
1810     <xslo:for-each select="marc:subfield">
1811       <xslo:if test="contains('9', @code)">
1812         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1813           <xslo:value-of select="."/>
1814         </z:index>
1815       </xslo:if>
1816     </xslo:for-each>
1817   </xslo:template>
1818   <xslo:template mode="index_subfields" match="marc:datafield[@tag='617']">
1819     <xslo:for-each select="marc:subfield">
1820       <xslo:if test="contains('9', @code)">
1821         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1822           <xslo:value-of select="."/>
1823         </z:index>
1824       </xslo:if>
1825     </xslo:for-each>
1826   </xslo:template>
1827   <xslo:template mode="index_subfields" match="marc:datafield[@tag='620']">
1828     <xslo:for-each select="marc:subfield">
1829       <xslo:if test="contains('9', @code)">
1830         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1831           <xslo:value-of select="."/>
1832         </z:index>
1833       </xslo:if>
1834     </xslo:for-each>
1835   </xslo:template>
1836   <xslo:template mode="index_subfields" match="marc:datafield[@tag='621']">
1837     <xslo:for-each select="marc:subfield">
1838       <xslo:if test="contains('9', @code)">
1839         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1840           <xslo:value-of select="."/>
1841         </z:index>
1842       </xslo:if>
1843     </xslo:for-each>
1844   </xslo:template>
1845   <xslo:template mode="index_subfields" match="marc:datafield[@tag='675']">
1846     <xslo:for-each select="marc:subfield">
1847       <xslo:if test="contains('a', @code)">
1848         <z:index name="UDC-classification:w UDC-classification:p UDC-classification:s">
1849           <xslo:value-of select="."/>
1850         </z:index>
1851       </xslo:if>
1852     </xslo:for-each>
1853   </xslo:template>
1854   <xslo:template mode="index_subfields" match="marc:datafield[@tag='676']">
1855     <xslo:for-each select="marc:subfield">
1856       <xslo:if test="contains('a', @code)">
1857         <z:index name="Dewey-classification:w Dewey-classification:p Dewey-classification:s">
1858           <xslo:value-of select="."/>
1859         </z:index>
1860       </xslo:if>
1861     </xslo:for-each>
1862   </xslo:template>
1863   <xslo:template mode="index_subfields" match="marc:datafield[@tag='680']">
1864     <xslo:for-each select="marc:subfield">
1865       <xslo:if test="contains('b', @code)">
1866         <z:index name="LC-call-number:s">
1867           <xslo:value-of select="."/>
1868         </z:index>
1869       </xslo:if>
1870     </xslo:for-each>
1871   </xslo:template>
1872   <xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
1873     <xslo:for-each select="marc:subfield">
1874       <xslo:if test="contains('0', @code)">
1875         <z:index name="totalissues:n totalissues:s">
1876           <xslo:value-of select="."/>
1877         </z:index>
1878       </xslo:if>
1879     </xslo:for-each>
1880   </xslo:template>
1881   <xslo:template mode="index_data_field" match="marc:datafield[@tag='700']">
1882     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1883       <xslo:variable name="raw_heading">
1884         <xslo:for-each select="marc:subfield">
1885           <xslo:if test="position() &gt; 1">
1886             <xslo:value-of select="substring(' ', 1, 1)"/>
1887           </xslo:if>
1888           <xslo:value-of select="."/>
1889         </xslo:for-each>
1890       </xslo:variable>
1891       <xslo:value-of select="normalize-space($raw_heading)"/>
1892     </z:index>
1893   </xslo:template>
1894   <xslo:template mode="index_data_field" match="marc:datafield[@tag='701']">
1895     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1896       <xslo:variable name="raw_heading">
1897         <xslo:for-each select="marc:subfield">
1898           <xslo:if test="position() &gt; 1">
1899             <xslo:value-of select="substring(' ', 1, 1)"/>
1900           </xslo:if>
1901           <xslo:value-of select="."/>
1902         </xslo:for-each>
1903       </xslo:variable>
1904       <xslo:value-of select="normalize-space($raw_heading)"/>
1905     </z:index>
1906   </xslo:template>
1907   <xslo:template mode="index_data_field" match="marc:datafield[@tag='702']">
1908     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1909       <xslo:variable name="raw_heading">
1910         <xslo:for-each select="marc:subfield">
1911           <xslo:if test="position() &gt; 1">
1912             <xslo:value-of select="substring(' ', 1, 1)"/>
1913           </xslo:if>
1914           <xslo:value-of select="."/>
1915         </xslo:for-each>
1916       </xslo:variable>
1917       <xslo:value-of select="normalize-space($raw_heading)"/>
1918     </z:index>
1919   </xslo:template>
1920   <xslo:template mode="index_data_field" match="marc:datafield[@tag='710']">
1921     <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">
1922       <xslo:variable name="raw_heading">
1923         <xslo:for-each select="marc:subfield">
1924           <xslo:if test="position() &gt; 1">
1925             <xslo:value-of select="substring(' ', 1, 1)"/>
1926           </xslo:if>
1927           <xslo:value-of select="."/>
1928         </xslo:for-each>
1929       </xslo:variable>
1930       <xslo:value-of select="normalize-space($raw_heading)"/>
1931     </z:index>
1932   </xslo:template>
1933   <xslo:template mode="index_data_field" match="marc:datafield[@tag='711']">
1934     <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">
1935       <xslo:variable name="raw_heading">
1936         <xslo:for-each select="marc:subfield">
1937           <xslo:if test="position() &gt; 1">
1938             <xslo:value-of select="substring(' ', 1, 1)"/>
1939           </xslo:if>
1940           <xslo:value-of select="."/>
1941         </xslo:for-each>
1942       </xslo:variable>
1943       <xslo:value-of select="normalize-space($raw_heading)"/>
1944     </z:index>
1945   </xslo:template>
1946   <xslo:template mode="index_data_field" match="marc:datafield[@tag='712']">
1947     <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">
1948       <xslo:variable name="raw_heading">
1949         <xslo:for-each select="marc:subfield">
1950           <xslo:if test="position() &gt; 1">
1951             <xslo:value-of select="substring(' ', 1, 1)"/>
1952           </xslo:if>
1953           <xslo:value-of select="."/>
1954         </xslo:for-each>
1955       </xslo:variable>
1956       <xslo:value-of select="normalize-space($raw_heading)"/>
1957     </z:index>
1958   </xslo:template>
1959   <xslo:template mode="index_data_field" match="marc:datafield[@tag='716']">
1960     <z:index name="Author:w Author:p">
1961       <xslo:variable name="raw_heading">
1962         <xslo:for-each select="marc:subfield">
1963           <xslo:if test="position() &gt; 1">
1964             <xslo:value-of select="substring(' ', 1, 1)"/>
1965           </xslo:if>
1966           <xslo:value-of select="."/>
1967         </xslo:for-each>
1968       </xslo:variable>
1969       <xslo:value-of select="normalize-space($raw_heading)"/>
1970     </z:index>
1971   </xslo:template>
1972   <xslo:template mode="index_data_field" match="marc:datafield[@tag='720']">
1973     <z:index name="Author:w Author:p">
1974       <xslo:variable name="raw_heading">
1975         <xslo:for-each select="marc:subfield">
1976           <xslo:if test="position() &gt; 1">
1977             <xslo:value-of select="substring(' ', 1, 1)"/>
1978           </xslo:if>
1979           <xslo:value-of select="."/>
1980         </xslo:for-each>
1981       </xslo:variable>
1982       <xslo:value-of select="normalize-space($raw_heading)"/>
1983     </z:index>
1984   </xslo:template>
1985   <xslo:template mode="index_data_field" match="marc:datafield[@tag='721']">
1986     <z:index name="Author:w Author:p">
1987       <xslo:variable name="raw_heading">
1988         <xslo:for-each select="marc:subfield">
1989           <xslo:if test="position() &gt; 1">
1990             <xslo:value-of select="substring(' ', 1, 1)"/>
1991           </xslo:if>
1992           <xslo:value-of select="."/>
1993         </xslo:for-each>
1994       </xslo:variable>
1995       <xslo:value-of select="normalize-space($raw_heading)"/>
1996     </z:index>
1997   </xslo:template>
1998   <xslo:template mode="index_data_field" match="marc:datafield[@tag='722']">
1999     <z:index name="Author:w Author:p">
2000       <xslo:variable name="raw_heading">
2001         <xslo:for-each select="marc:subfield">
2002           <xslo:if test="position() &gt; 1">
2003             <xslo:value-of select="substring(' ', 1, 1)"/>
2004           </xslo:if>
2005           <xslo:value-of select="."/>
2006         </xslo:for-each>
2007       </xslo:variable>
2008       <xslo:value-of select="normalize-space($raw_heading)"/>
2009     </z:index>
2010   </xslo:template>
2011   <xslo:template mode="index_data_field" match="marc:datafield[@tag='730']">
2012     <z:index name="Author:w Author:p">
2013       <xslo:variable name="raw_heading">
2014         <xslo:for-each select="marc:subfield">
2015           <xslo:if test="position() &gt; 1">
2016             <xslo:value-of select="substring(' ', 1, 1)"/>
2017           </xslo:if>
2018           <xslo:value-of select="."/>
2019         </xslo:for-each>
2020       </xslo:variable>
2021       <xslo:value-of select="normalize-space($raw_heading)"/>
2022     </z:index>
2023   </xslo:template>
2024   <xslo:template mode="index_data_field" match="marc:datafield[@tag='205']">
2025     <z:index name="Title:w Title:p">
2026       <xslo:variable name="raw_heading">
2027         <xslo:for-each select="marc:subfield">
2028           <xslo:if test="position() &gt; 1">
2029             <xslo:value-of select="substring(' ', 1, 1)"/>
2030           </xslo:if>
2031           <xslo:value-of select="."/>
2032         </xslo:for-each>
2033       </xslo:variable>
2034       <xslo:value-of select="normalize-space($raw_heading)"/>
2035     </z:index>
2036   </xslo:template>
2037   <xslo:template mode="index_data_field" match="marc:datafield[@tag='500']">
2038     <z:index name="Title:w Title:p">
2039       <xslo:variable name="raw_heading">
2040         <xslo:for-each select="marc:subfield">
2041           <xslo:if test="position() &gt; 1">
2042             <xslo:value-of select="substring(' ', 1, 1)"/>
2043           </xslo:if>
2044           <xslo:value-of select="."/>
2045         </xslo:for-each>
2046       </xslo:variable>
2047       <xslo:value-of select="normalize-space($raw_heading)"/>
2048     </z:index>
2049   </xslo:template>
2050   <xslo:template mode="index_data_field" match="marc:datafield[@tag='501']">
2051     <z:index name="Title:w Title:p">
2052       <xslo:variable name="raw_heading">
2053         <xslo:for-each select="marc:subfield">
2054           <xslo:if test="position() &gt; 1">
2055             <xslo:value-of select="substring(' ', 1, 1)"/>
2056           </xslo:if>
2057           <xslo:value-of select="."/>
2058         </xslo:for-each>
2059       </xslo:variable>
2060       <xslo:value-of select="normalize-space($raw_heading)"/>
2061     </z:index>
2062   </xslo:template>
2063   <xslo:template mode="index_data_field" match="marc:datafield[@tag='503']">
2064     <z:index name="Title:w Title:p">
2065       <xslo:variable name="raw_heading">
2066         <xslo:for-each select="marc:subfield">
2067           <xslo:if test="position() &gt; 1">
2068             <xslo:value-of select="substring(' ', 1, 1)"/>
2069           </xslo:if>
2070           <xslo:value-of select="."/>
2071         </xslo:for-each>
2072       </xslo:variable>
2073       <xslo:value-of select="normalize-space($raw_heading)"/>
2074     </z:index>
2075   </xslo:template>
2076   <xslo:template mode="index_data_field" match="marc:datafield[@tag='510']">
2077     <z:index name="Title:w Title:p">
2078       <xslo:variable name="raw_heading">
2079         <xslo:for-each select="marc:subfield">
2080           <xslo:if test="position() &gt; 1">
2081             <xslo:value-of select="substring(' ', 1, 1)"/>
2082           </xslo:if>
2083           <xslo:value-of select="."/>
2084         </xslo:for-each>
2085       </xslo:variable>
2086       <xslo:value-of select="normalize-space($raw_heading)"/>
2087     </z:index>
2088   </xslo:template>
2089   <xslo:template mode="index_data_field" match="marc:datafield[@tag='512']">
2090     <z:index name="Title:w Title:p">
2091       <xslo:variable name="raw_heading">
2092         <xslo:for-each select="marc:subfield">
2093           <xslo:if test="position() &gt; 1">
2094             <xslo:value-of select="substring(' ', 1, 1)"/>
2095           </xslo:if>
2096           <xslo:value-of select="."/>
2097         </xslo:for-each>
2098       </xslo:variable>
2099       <xslo:value-of select="normalize-space($raw_heading)"/>
2100     </z:index>
2101   </xslo:template>
2102   <xslo:template mode="index_data_field" match="marc:datafield[@tag='513']">
2103     <z:index name="Title:w Title:p">
2104       <xslo:variable name="raw_heading">
2105         <xslo:for-each select="marc:subfield">
2106           <xslo:if test="position() &gt; 1">
2107             <xslo:value-of select="substring(' ', 1, 1)"/>
2108           </xslo:if>
2109           <xslo:value-of select="."/>
2110         </xslo:for-each>
2111       </xslo:variable>
2112       <xslo:value-of select="normalize-space($raw_heading)"/>
2113     </z:index>
2114   </xslo:template>
2115   <xslo:template mode="index_data_field" match="marc:datafield[@tag='514']">
2116     <z:index name="Title:w Title:p">
2117       <xslo:variable name="raw_heading">
2118         <xslo:for-each select="marc:subfield">
2119           <xslo:if test="position() &gt; 1">
2120             <xslo:value-of select="substring(' ', 1, 1)"/>
2121           </xslo:if>
2122           <xslo:value-of select="."/>
2123         </xslo:for-each>
2124       </xslo:variable>
2125       <xslo:value-of select="normalize-space($raw_heading)"/>
2126     </z:index>
2127   </xslo:template>
2128   <xslo:template mode="index_data_field" match="marc:datafield[@tag='515']">
2129     <z:index name="Title:w Title:p">
2130       <xslo:variable name="raw_heading">
2131         <xslo:for-each select="marc:subfield">
2132           <xslo:if test="position() &gt; 1">
2133             <xslo:value-of select="substring(' ', 1, 1)"/>
2134           </xslo:if>
2135           <xslo:value-of select="."/>
2136         </xslo:for-each>
2137       </xslo:variable>
2138       <xslo:value-of select="normalize-space($raw_heading)"/>
2139     </z:index>
2140   </xslo:template>
2141   <xslo:template mode="index_data_field" match="marc:datafield[@tag='516']">
2142     <z:index name="Title:w Title:p">
2143       <xslo:variable name="raw_heading">
2144         <xslo:for-each select="marc:subfield">
2145           <xslo:if test="position() &gt; 1">
2146             <xslo:value-of select="substring(' ', 1, 1)"/>
2147           </xslo:if>
2148           <xslo:value-of select="."/>
2149         </xslo:for-each>
2150       </xslo:variable>
2151       <xslo:value-of select="normalize-space($raw_heading)"/>
2152     </z:index>
2153   </xslo:template>
2154   <xslo:template mode="index_data_field" match="marc:datafield[@tag='517']">
2155     <z:index name="Title:w Title:p">
2156       <xslo:variable name="raw_heading">
2157         <xslo:for-each select="marc:subfield">
2158           <xslo:if test="position() &gt; 1">
2159             <xslo:value-of select="substring(' ', 1, 1)"/>
2160           </xslo:if>
2161           <xslo:value-of select="."/>
2162         </xslo:for-each>
2163       </xslo:variable>
2164       <xslo:value-of select="normalize-space($raw_heading)"/>
2165     </z:index>
2166   </xslo:template>
2167   <xslo:template mode="index_data_field" match="marc:datafield[@tag='518']">
2168     <z:index name="Title:w Title:p">
2169       <xslo:variable name="raw_heading">
2170         <xslo:for-each select="marc:subfield">
2171           <xslo:if test="position() &gt; 1">
2172             <xslo:value-of select="substring(' ', 1, 1)"/>
2173           </xslo:if>
2174           <xslo:value-of select="."/>
2175         </xslo:for-each>
2176       </xslo:variable>
2177       <xslo:value-of select="normalize-space($raw_heading)"/>
2178     </z:index>
2179   </xslo:template>
2180   <xslo:template mode="index_data_field" match="marc:datafield[@tag='519']">
2181     <z:index name="Title:w Title:p">
2182       <xslo:variable name="raw_heading">
2183         <xslo:for-each select="marc:subfield">
2184           <xslo:if test="position() &gt; 1">
2185             <xslo:value-of select="substring(' ', 1, 1)"/>
2186           </xslo:if>
2187           <xslo:value-of select="."/>
2188         </xslo:for-each>
2189       </xslo:variable>
2190       <xslo:value-of select="normalize-space($raw_heading)"/>
2191     </z:index>
2192   </xslo:template>
2193   <xslo:template mode="index_data_field" match="marc:datafield[@tag='520']">
2194     <z:index name="Title:w Title:p">
2195       <xslo:variable name="raw_heading">
2196         <xslo:for-each select="marc:subfield">
2197           <xslo:if test="position() &gt; 1">
2198             <xslo:value-of select="substring(' ', 1, 1)"/>
2199           </xslo:if>
2200           <xslo:value-of select="."/>
2201         </xslo:for-each>
2202       </xslo:variable>
2203       <xslo:value-of select="normalize-space($raw_heading)"/>
2204     </z:index>
2205   </xslo:template>
2206   <xslo:template mode="index_data_field" match="marc:datafield[@tag='530']">
2207     <z:index name="Title:w Title:p">
2208       <xslo:variable name="raw_heading">
2209         <xslo:for-each select="marc:subfield">
2210           <xslo:if test="position() &gt; 1">
2211             <xslo:value-of select="substring(' ', 1, 1)"/>
2212           </xslo:if>
2213           <xslo:value-of select="."/>
2214         </xslo:for-each>
2215       </xslo:variable>
2216       <xslo:value-of select="normalize-space($raw_heading)"/>
2217     </z:index>
2218   </xslo:template>
2219   <xslo:template mode="index_data_field" match="marc:datafield[@tag='531']">
2220     <z:index name="Title:w Title:p">
2221       <xslo:variable name="raw_heading">
2222         <xslo:for-each select="marc:subfield">
2223           <xslo:if test="position() &gt; 1">
2224             <xslo:value-of select="substring(' ', 1, 1)"/>
2225           </xslo:if>
2226           <xslo:value-of select="."/>
2227         </xslo:for-each>
2228       </xslo:variable>
2229       <xslo:value-of select="normalize-space($raw_heading)"/>
2230     </z:index>
2231   </xslo:template>
2232   <xslo:template mode="index_data_field" match="marc:datafield[@tag='532']">
2233     <z:index name="Title:w Title:p">
2234       <xslo:variable name="raw_heading">
2235         <xslo:for-each select="marc:subfield">
2236           <xslo:if test="position() &gt; 1">
2237             <xslo:value-of select="substring(' ', 1, 1)"/>
2238           </xslo:if>
2239           <xslo:value-of select="."/>
2240         </xslo:for-each>
2241       </xslo:variable>
2242       <xslo:value-of select="normalize-space($raw_heading)"/>
2243     </z:index>
2244   </xslo:template>
2245   <xslo:template mode="index_data_field" match="marc:datafield[@tag='540']">
2246     <z:index name="Title:w Title:p">
2247       <xslo:variable name="raw_heading">
2248         <xslo:for-each select="marc:subfield">
2249           <xslo:if test="position() &gt; 1">
2250             <xslo:value-of select="substring(' ', 1, 1)"/>
2251           </xslo:if>
2252           <xslo:value-of select="."/>
2253         </xslo:for-each>
2254       </xslo:variable>
2255       <xslo:value-of select="normalize-space($raw_heading)"/>
2256     </z:index>
2257   </xslo:template>
2258   <xslo:template mode="index_data_field" match="marc:datafield[@tag='541']">
2259     <z:index name="Title:w Title:p">
2260       <xslo:variable name="raw_heading">
2261         <xslo:for-each select="marc:subfield">
2262           <xslo:if test="position() &gt; 1">
2263             <xslo:value-of select="substring(' ', 1, 1)"/>
2264           </xslo:if>
2265           <xslo:value-of select="."/>
2266         </xslo:for-each>
2267       </xslo:variable>
2268       <xslo:value-of select="normalize-space($raw_heading)"/>
2269     </z:index>
2270   </xslo:template>
2271   <xslo:template mode="index_data_field" match="marc:datafield[@tag='545']">
2272     <z:index name="Title:w Title:p">
2273       <xslo:variable name="raw_heading">
2274         <xslo:for-each select="marc:subfield">
2275           <xslo:if test="position() &gt; 1">
2276             <xslo:value-of select="substring(' ', 1, 1)"/>
2277           </xslo:if>
2278           <xslo:value-of select="."/>
2279         </xslo:for-each>
2280       </xslo:variable>
2281       <xslo:value-of select="normalize-space($raw_heading)"/>
2282     </z:index>
2283   </xslo:template>
2284   <xslo:template mode="index_data_field" match="marc:datafield[@tag='560']">
2285     <z:index name="Title:w Title:p">
2286       <xslo:variable name="raw_heading">
2287         <xslo:for-each select="marc:subfield">
2288           <xslo:if test="position() &gt; 1">
2289             <xslo:value-of select="substring(' ', 1, 1)"/>
2290           </xslo:if>
2291           <xslo:value-of select="."/>
2292         </xslo:for-each>
2293       </xslo:variable>
2294       <xslo:value-of select="normalize-space($raw_heading)"/>
2295     </z:index>
2296   </xslo:template>
2297   <xslo:template mode="index_data_field" match="marc:datafield[@tag='600']">
2298     <z:index name="Subject:w Subject:p">
2299       <xslo:variable name="raw_heading">
2300         <xslo:for-each select="marc:subfield">
2301           <xslo:if test="position() &gt; 1">
2302             <xslo:value-of select="substring(' ', 1, 1)"/>
2303           </xslo:if>
2304           <xslo:value-of select="."/>
2305         </xslo:for-each>
2306       </xslo:variable>
2307       <xslo:value-of select="normalize-space($raw_heading)"/>
2308     </z:index>
2309   </xslo:template>
2310   <xslo:template mode="index_data_field" match="marc:datafield[@tag='601']">
2311     <z:index name="Subject:w Subject:p">
2312       <xslo:variable name="raw_heading">
2313         <xslo:for-each select="marc:subfield">
2314           <xslo:if test="position() &gt; 1">
2315             <xslo:value-of select="substring(' ', 1, 1)"/>
2316           </xslo:if>
2317           <xslo:value-of select="."/>
2318         </xslo:for-each>
2319       </xslo:variable>
2320       <xslo:value-of select="normalize-space($raw_heading)"/>
2321     </z:index>
2322   </xslo:template>
2323   <xslo:template mode="index_data_field" match="marc:datafield[@tag='602']">
2324     <z:index name="Subject:w Subject:p">
2325       <xslo:variable name="raw_heading">
2326         <xslo:for-each select="marc:subfield">
2327           <xslo:if test="position() &gt; 1">
2328             <xslo:value-of select="substring(' ', 1, 1)"/>
2329           </xslo:if>
2330           <xslo:value-of select="."/>
2331         </xslo:for-each>
2332       </xslo:variable>
2333       <xslo:value-of select="normalize-space($raw_heading)"/>
2334     </z:index>
2335   </xslo:template>
2336   <xslo:template mode="index_data_field" match="marc:datafield[@tag='604']">
2337     <z:index name="Subject:w Subject:p">
2338       <xslo:variable name="raw_heading">
2339         <xslo:for-each select="marc:subfield">
2340           <xslo:if test="position() &gt; 1">
2341             <xslo:value-of select="substring(' ', 1, 1)"/>
2342           </xslo:if>
2343           <xslo:value-of select="."/>
2344         </xslo:for-each>
2345       </xslo:variable>
2346       <xslo:value-of select="normalize-space($raw_heading)"/>
2347     </z:index>
2348   </xslo:template>
2349   <xslo:template mode="index_data_field" match="marc:datafield[@tag='605']">
2350     <z:index name="Subject:w Subject:p">
2351       <xslo:variable name="raw_heading">
2352         <xslo:for-each select="marc:subfield">
2353           <xslo:if test="position() &gt; 1">
2354             <xslo:value-of select="substring(' ', 1, 1)"/>
2355           </xslo:if>
2356           <xslo:value-of select="."/>
2357         </xslo:for-each>
2358       </xslo:variable>
2359       <xslo:value-of select="normalize-space($raw_heading)"/>
2360     </z:index>
2361   </xslo:template>
2362   <xslo:template mode="index_data_field" match="marc:datafield[@tag='606']">
2363     <z:index name="Subject:w Subject:p">
2364       <xslo:variable name="raw_heading">
2365         <xslo:for-each select="marc:subfield">
2366           <xslo:if test="position() &gt; 1">
2367             <xslo:value-of select="substring(' ', 1, 1)"/>
2368           </xslo:if>
2369           <xslo:value-of select="."/>
2370         </xslo:for-each>
2371       </xslo:variable>
2372       <xslo:value-of select="normalize-space($raw_heading)"/>
2373     </z:index>
2374   </xslo:template>
2375   <xslo:template mode="index_data_field" match="marc:datafield[@tag='607']">
2376     <z:index name="Subject:w Subject:p">
2377       <xslo:variable name="raw_heading">
2378         <xslo:for-each select="marc:subfield">
2379           <xslo:if test="position() &gt; 1">
2380             <xslo:value-of select="substring(' ', 1, 1)"/>
2381           </xslo:if>
2382           <xslo:value-of select="."/>
2383         </xslo:for-each>
2384       </xslo:variable>
2385       <xslo:value-of select="normalize-space($raw_heading)"/>
2386     </z:index>
2387   </xslo:template>
2388   <xslo:template mode="index_data_field" match="marc:datafield[@tag='608']">
2389     <z:index name="Subject:w Subject:p">
2390       <xslo:variable name="raw_heading">
2391         <xslo:for-each select="marc:subfield">
2392           <xslo:if test="position() &gt; 1">
2393             <xslo:value-of select="substring(' ', 1, 1)"/>
2394           </xslo:if>
2395           <xslo:value-of select="."/>
2396         </xslo:for-each>
2397       </xslo:variable>
2398       <xslo:value-of select="normalize-space($raw_heading)"/>
2399     </z:index>
2400   </xslo:template>
2401   <xslo:template mode="index_data_field" match="marc:datafield[@tag='610']">
2402     <z:index name="Subject:w Subject:p">
2403       <xslo:variable name="raw_heading">
2404         <xslo:for-each select="marc:subfield">
2405           <xslo:if test="position() &gt; 1">
2406             <xslo:value-of select="substring(' ', 1, 1)"/>
2407           </xslo:if>
2408           <xslo:value-of select="."/>
2409         </xslo:for-each>
2410       </xslo:variable>
2411       <xslo:value-of select="normalize-space($raw_heading)"/>
2412     </z:index>
2413   </xslo:template>
2414   <xslo:template mode="index_data_field" match="marc:datafield[@tag='615']">
2415     <z:index name="Subject:w Subject:p">
2416       <xslo:variable name="raw_heading">
2417         <xslo:for-each select="marc:subfield">
2418           <xslo:if test="position() &gt; 1">
2419             <xslo:value-of select="substring(' ', 1, 1)"/>
2420           </xslo:if>
2421           <xslo:value-of select="."/>
2422         </xslo:for-each>
2423       </xslo:variable>
2424       <xslo:value-of select="normalize-space($raw_heading)"/>
2425     </z:index>
2426   </xslo:template>
2427   <xslo:template mode="index_data_field" match="marc:datafield[@tag='616']">
2428     <z:index name="Subject:w Subject:p">
2429       <xslo:variable name="raw_heading">
2430         <xslo:for-each select="marc:subfield">
2431           <xslo:if test="position() &gt; 1">
2432             <xslo:value-of select="substring(' ', 1, 1)"/>
2433           </xslo:if>
2434           <xslo:value-of select="."/>
2435         </xslo:for-each>
2436       </xslo:variable>
2437       <xslo:value-of select="normalize-space($raw_heading)"/>
2438     </z:index>
2439   </xslo:template>
2440   <xslo:template mode="index_data_field" match="marc:datafield[@tag='617']">
2441     <z:index name="Subject:w Subject:p">
2442       <xslo:variable name="raw_heading">
2443         <xslo:for-each select="marc:subfield">
2444           <xslo:if test="position() &gt; 1">
2445             <xslo:value-of select="substring(' ', 1, 1)"/>
2446           </xslo:if>
2447           <xslo:value-of select="."/>
2448         </xslo:for-each>
2449       </xslo:variable>
2450       <xslo:value-of select="normalize-space($raw_heading)"/>
2451     </z:index>
2452   </xslo:template>
2453   <xslo:template mode="index_data_field" match="marc:datafield[@tag='620']">
2454     <z:index name="Subject:w Subject:p">
2455       <xslo:variable name="raw_heading">
2456         <xslo:for-each select="marc:subfield">
2457           <xslo:if test="position() &gt; 1">
2458             <xslo:value-of select="substring(' ', 1, 1)"/>
2459           </xslo:if>
2460           <xslo:value-of select="."/>
2461         </xslo:for-each>
2462       </xslo:variable>
2463       <xslo:value-of select="normalize-space($raw_heading)"/>
2464     </z:index>
2465   </xslo:template>
2466   <xslo:template mode="index_data_field" match="marc:datafield[@tag='621']">
2467     <z:index name="Subject:w Subject:p">
2468       <xslo:variable name="raw_heading">
2469         <xslo:for-each select="marc:subfield">
2470           <xslo:if test="position() &gt; 1">
2471             <xslo:value-of select="substring(' ', 1, 1)"/>
2472           </xslo:if>
2473           <xslo:value-of select="."/>
2474         </xslo:for-each>
2475       </xslo:variable>
2476       <xslo:value-of select="normalize-space($raw_heading)"/>
2477     </z:index>
2478   </xslo:template>
2479   <xslo:template mode="index_data_field" match="marc:datafield[@tag='670']">
2480     <z:index name="Subject-precis:w Subject-precis:p">
2481       <xslo:variable name="raw_heading">
2482         <xslo:for-each select="marc:subfield">
2483           <xslo:if test="position() &gt; 1">
2484             <xslo:value-of select="substring(' ', 1, 1)"/>
2485           </xslo:if>
2486           <xslo:value-of select="."/>
2487         </xslo:for-each>
2488       </xslo:variable>
2489       <xslo:value-of select="normalize-space($raw_heading)"/>
2490     </z:index>
2491   </xslo:template>
2492   <xslo:template mode="index_data_field" match="marc:datafield[@tag='680']">
2493     <z:index name="LC-call-number:w LC-call-number:p">
2494       <xslo:variable name="raw_heading">
2495         <xslo:for-each select="marc:subfield">
2496           <xslo:if test="position() &gt; 1">
2497             <xslo:value-of select="substring(' ', 1, 1)"/>
2498           </xslo:if>
2499           <xslo:value-of select="."/>
2500         </xslo:for-each>
2501       </xslo:variable>
2502       <xslo:value-of select="normalize-space($raw_heading)"/>
2503     </z:index>
2504   </xslo:template>
2505   <xslo:template mode="index_data_field" match="marc:datafield[@tag='686']">
2506     <z:index name="Local-classification:w Local-classification:p">
2507       <xslo:variable name="raw_heading">
2508         <xslo:for-each select="marc:subfield">
2509           <xslo:if test="position() &gt; 1">
2510             <xslo:value-of select="substring(' ', 1, 1)"/>
2511           </xslo:if>
2512           <xslo:value-of select="."/>
2513         </xslo:for-each>
2514       </xslo:variable>
2515       <xslo:value-of select="normalize-space($raw_heading)"/>
2516     </z:index>
2517   </xslo:template>
2518   <xslo:template mode="index_data_field" match="marc:datafield[@tag='995']">
2519     <z:index name="item:w">
2520       <xslo:variable name="raw_heading">
2521         <xslo:for-each select="marc:subfield">
2522           <xslo:if test="position() &gt; 1">
2523             <xslo:value-of select="substring(' ', 1, 1)"/>
2524           </xslo:if>
2525           <xslo:value-of select="."/>
2526         </xslo:for-each>
2527       </xslo:variable>
2528       <xslo:value-of select="normalize-space($raw_heading)"/>
2529     </z:index>
2530   </xslo:template>
2531   <xslo:template mode="index_facets" match="marc:datafield[@tag='225']">
2532     <xslo:if test="not(@ind1='z')">
2533       <z:index name="se:0">
2534         <xslo:value-of select="marc:subfield[@code='a']"/>
2535       </z:index>
2536     </xslo:if>
2537   </xslo:template>
2538   <xslo:template mode="index_facets" match="marc:datafield[@tag='500']">
2539     <xslo:if test="not(@ind1='z')">
2540       <z:index name="su-ut:0">
2541         <xslo:value-of select="marc:subfield[@code='a']"/>
2542       </z:index>
2543     </xslo:if>
2544   </xslo:template>
2545   <xslo:template mode="index_facets" match="marc:datafield[@tag='501']">
2546     <xslo:if test="not(@ind1='z')">
2547       <z:index name="su-ut:0">
2548         <xslo:value-of select="marc:subfield[@code='a']"/>
2549       </z:index>
2550     </xslo:if>
2551   </xslo:template>
2552   <xslo:template mode="index_facets" match="marc:datafield[@tag='503']">
2553     <xslo:if test="not(@ind1='z')">
2554       <z:index name="su-ut:0">
2555         <xslo:value-of select="marc:subfield[@code='a']"/>
2556       </z:index>
2557     </xslo:if>
2558   </xslo:template>
2559   <xslo:template mode="index_facets" match="marc:datafield[@tag='600']">
2560     <xslo:if test="not(@ind1='z')">
2561       <z:index name="su-to:0">
2562         <xslo:value-of select="marc:subfield[@code='a']"/>
2563         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2564           <xslo:text>&lt;*&gt;</xslo:text>
2565         </xslo:if>
2566         <xslo:value-of select="marc:subfield[@code='b']"/>
2567       </z:index>
2568     </xslo:if>
2569   </xslo:template>
2570   <xslo:template mode="index_facets" match="marc:datafield[@tag='601']">
2571     <xslo:if test="not(@ind1='z')">
2572       <z:index name="su-to:0">
2573         <xslo:value-of select="marc:subfield[@code='a']"/>
2574         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2575           <xslo:text>&lt;*&gt;</xslo:text>
2576         </xslo:if>
2577         <xslo:value-of select="marc:subfield[@code='b']"/>
2578       </z:index>
2579     </xslo:if>
2580   </xslo:template>
2581   <xslo:template mode="index_facets" match="marc:datafield[@tag='602']">
2582     <xslo:if test="not(@ind1='z')">
2583       <z:index name="su-to:0">
2584         <xslo:value-of select="marc:subfield[@code='a']"/>
2585       </z:index>
2586     </xslo:if>
2587   </xslo:template>
2588   <xslo:template mode="index_facets" match="marc:datafield[@tag='604']">
2589     <xslo:if test="not(@ind1='z')">
2590       <z:index name="su-to:0">
2591         <xslo:value-of select="marc:subfield[@code='a']"/>
2592         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='t']">
2593           <xslo:text>&lt;*&gt;</xslo:text>
2594         </xslo:if>
2595         <xslo:value-of select="marc:subfield[@code='t']"/>
2596       </z:index>
2597     </xslo:if>
2598   </xslo:template>
2599   <xslo:template mode="index_facets" match="marc:datafield[@tag='605']">
2600     <xslo:if test="not(@ind1='z')">
2601       <z:index name="su-to:0">
2602         <xslo:value-of select="marc:subfield[@code='a']"/>
2603       </z:index>
2604     </xslo:if>
2605   </xslo:template>
2606   <xslo:template mode="index_facets" match="marc:datafield[@tag='606']">
2607     <xslo:if test="not(@ind1='z')">
2608       <z:index name="su-to:0">
2609         <xslo:value-of select="marc:subfield[@code='a']"/>
2610         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='x']">
2611           <xslo:text>&lt;*&gt;</xslo:text>
2612         </xslo:if>
2613         <xslo:value-of select="marc:subfield[@code='x']"/>
2614       </z:index>
2615     </xslo:if>
2616   </xslo:template>
2617   <xslo:template mode="index_facets" match="marc:datafield[@tag='607']">
2618     <xslo:if test="not(@ind1='z')">
2619       <z:index name="su-geo:0">
2620         <xslo:value-of select="marc:subfield[@code='a']"/>
2621       </z:index>
2622     </xslo:if>
2623   </xslo:template>
2624   <xslo:template mode="index_facets" match="marc:datafield[@tag='610']">
2625     <xslo:if test="not(@ind1='z')">
2626       <z:index name="su-to:0">
2627         <xslo:value-of select="marc:subfield[@code='a']"/>
2628       </z:index>
2629     </xslo:if>
2630   </xslo:template>
2631   <xslo:template mode="index_facets" match="marc:datafield[@tag='700']">
2632     <xslo:if test="not(@ind1='z')">
2633       <z:index name="au:0">
2634         <xslo:value-of select="marc:subfield[@code='a']"/>
2635         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2636           <xslo:text>&lt;*&gt;</xslo:text>
2637         </xslo:if>
2638         <xslo:value-of select="marc:subfield[@code='b']"/>
2639       </z:index>
2640     </xslo:if>
2641   </xslo:template>
2642   <xslo:template mode="index_facets" match="marc:datafield[@tag='701']">
2643     <xslo:if test="not(@ind1='z')">
2644       <z:index name="au:0">
2645         <xslo:value-of select="marc:subfield[@code='a']"/>
2646         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2647           <xslo:text>&lt;*&gt;</xslo:text>
2648         </xslo:if>
2649         <xslo:value-of select="marc:subfield[@code='b']"/>
2650       </z:index>
2651     </xslo:if>
2652   </xslo:template>
2653   <xslo:template mode="index_facets" match="marc:datafield[@tag='702']">
2654     <xslo:if test="not(@ind1='z')">
2655       <z:index name="au:0">
2656         <xslo:value-of select="marc:subfield[@code='a']"/>
2657         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2658           <xslo:text>&lt;*&gt;</xslo:text>
2659         </xslo:if>
2660         <xslo:value-of select="marc:subfield[@code='b']"/>
2661       </z:index>
2662     </xslo:if>
2663   </xslo:template>
2664   <xslo:template mode="index_facets" match="marc:datafield[@tag='995']">
2665     <xslo:if test="not(@ind1='z')">
2666       <z:index name="homebranch:0">
2667         <xslo:value-of select="marc:subfield[@code='b']"/>
2668       </z:index>
2669       <z:index name="holdingbranch:0">
2670         <xslo:value-of select="marc:subfield[@code='c']"/>
2671       </z:index>
2672       <z:index name="location:0">
2673         <xslo:value-of select="marc:subfield[@code='e']"/>
2674       </z:index>
2675     </xslo:if>
2676   </xslo:template>
2677   <xslo:template mode="index_all" match="text()">
2678     <z:index name="Any:w Any:p">
2679       <xslo:value-of select="."/>
2680     </z:index>
2681   </xslo:template>
2682   <xslo:template name="chopPunctuation">
2683     <xslo:param name="chopString"/>
2684     <xslo:variable name="length" select="string-length($chopString)"/>
2685     <xslo:choose>
2686       <xslo:when test="$length=0"/>
2687       <xslo:when test="contains('-,.:=;!%/', substring($chopString,$length,1))">
2688         <xslo:call-template name="chopPunctuation">
2689           <xslo:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
2690         </xslo:call-template>
2691       </xslo:when>
2692       <xslo:when test="not($chopString)"/>
2693       <xslo:otherwise>
2694         <xslo:value-of select="$chopString"/>
2695       </xslo:otherwise>
2696     </xslo:choose>
2697     <xslo:text/>
2698   </xslo:template>
2699 </xslo:stylesheet>