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