Revert "Bug 9828 : Followup for Queryparser and deletion of useless 6XX$9"
[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('9', @code)">
646         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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('a', @code)">
653         <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:w Author:s">
654           <xslo:value-of select="."/>
655         </z:index>
656       </xslo:if>
657     </xslo:for-each>
658   </xslo:template>
659   <xslo:template mode="index_subfields" match="marc:datafield[@tag='701']">
660     <xslo:for-each select="marc:subfield">
661       <xslo:if test="contains('9', @code)">
662         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
663           <xslo:value-of select="."/>
664         </z:index>
665       </xslo:if>
666     </xslo:for-each>
667   </xslo:template>
668   <xslo:template mode="index_subfields" match="marc:datafield[@tag='702']">
669     <xslo:for-each select="marc:subfield">
670       <xslo:if test="contains('9', @code)">
671         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
672           <xslo:value-of select="."/>
673         </z:index>
674       </xslo:if>
675     </xslo:for-each>
676   </xslo:template>
677   <xslo:template mode="index_subfields" match="marc:datafield[@tag='710']">
678     <xslo:for-each select="marc:subfield">
679       <xslo:if test="contains('9', @code)">
680         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
681           <xslo:value-of select="."/>
682         </z:index>
683       </xslo:if>
684     </xslo:for-each>
685   </xslo:template>
686   <xslo:template mode="index_subfields" match="marc:datafield[@tag='711']">
687     <xslo:for-each select="marc:subfield">
688       <xslo:if test="contains('9', @code)">
689         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
690           <xslo:value-of select="."/>
691         </z:index>
692       </xslo:if>
693     </xslo:for-each>
694   </xslo:template>
695   <xslo:template mode="index_subfields" match="marc:datafield[@tag='712']">
696     <xslo:for-each select="marc:subfield">
697       <xslo:if test="contains('9', @code)">
698         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
699           <xslo:value-of select="."/>
700         </z:index>
701       </xslo:if>
702     </xslo:for-each>
703   </xslo:template>
704   <xslo:template mode="index_subfields" match="marc:datafield[@tag='716']">
705     <xslo:for-each select="marc:subfield">
706       <xslo:if test="contains('9', @code)">
707         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
708           <xslo:value-of select="."/>
709         </z:index>
710       </xslo:if>
711     </xslo:for-each>
712   </xslo:template>
713   <xslo:template mode="index_subfields" match="marc:datafield[@tag='720']">
714     <xslo:for-each select="marc:subfield">
715       <xslo:if test="contains('9', @code)">
716         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
717           <xslo:value-of select="."/>
718         </z:index>
719       </xslo:if>
720     </xslo:for-each>
721   </xslo:template>
722   <xslo:template mode="index_subfields" match="marc:datafield[@tag='721']">
723     <xslo:for-each select="marc:subfield">
724       <xslo:if test="contains('9', @code)">
725         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
726           <xslo:value-of select="."/>
727         </z:index>
728       </xslo:if>
729     </xslo:for-each>
730   </xslo:template>
731   <xslo:template mode="index_subfields" match="marc:datafield[@tag='722']">
732     <xslo:for-each select="marc:subfield">
733       <xslo:if test="contains('9', @code)">
734         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
735           <xslo:value-of select="."/>
736         </z:index>
737       </xslo:if>
738     </xslo:for-each>
739   </xslo:template>
740   <xslo:template mode="index_subfields" match="marc:datafield[@tag='730']">
741     <xslo:for-each select="marc:subfield">
742       <xslo:if test="contains('9', @code)">
743         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
744           <xslo:value-of select="."/>
745         </z:index>
746       </xslo:if>
747     </xslo:for-each>
748   </xslo:template>
749   <xslo:template mode="index_subfields" match="marc:datafield[@tag='208']">
750     <xslo:for-each select="marc:subfield">
751       <xslo:if test="contains('ad', @code)">
752         <z:index name="Material-Type:w Material-Type:p">
753           <xslo:value-of select="."/>
754         </z:index>
755       </xslo:if>
756     </xslo:for-each>
757   </xslo:template>
758   <xslo:template mode="index_subfields" match="marc:datafield[@tag='210']">
759     <xslo:for-each select="marc:subfield">
760       <xslo:if test="contains('c', @code)">
761         <z:index name="Publisher:w Publisher:p">
762           <xslo:value-of select="."/>
763         </z:index>
764       </xslo:if>
765     </xslo:for-each>
766     <xslo:for-each select="marc:subfield">
767       <xslo:if test="contains('d', @code)">
768         <z:index name="pubdate:n pubdate:y">
769           <xslo:value-of select="."/>
770         </z:index>
771       </xslo:if>
772     </xslo:for-each>
773   </xslo:template>
774   <xslo:template mode="index_subfields" match="marc:datafield[@tag='225']">
775     <xslo:for-each select="marc:subfield">
776       <xslo:if test="contains('a', @code)">
777         <z:index name="Title-series:w Title-series:p">
778           <xslo:value-of select="."/>
779         </z:index>
780       </xslo:if>
781     </xslo:for-each>
782     <xslo:for-each select="marc:subfield">
783       <xslo:if test="contains('d', @code)">
784         <z:index name="Title-series:w Title-series:p">
785           <xslo:value-of select="."/>
786         </z:index>
787       </xslo:if>
788     </xslo:for-each>
789     <xslo:for-each select="marc:subfield">
790       <xslo:if test="contains('e', @code)">
791         <z:index name="Title-series:w Title-series:p">
792           <xslo:value-of select="."/>
793         </z:index>
794       </xslo:if>
795     </xslo:for-each>
796     <xslo:for-each select="marc:subfield">
797       <xslo:if test="contains('f', @code)">
798         <z:index name="Author:w Author:p Name-and-title:w Name-and-title:p">
799           <xslo:value-of select="."/>
800         </z:index>
801       </xslo:if>
802     </xslo:for-each>
803     <xslo:for-each select="marc:subfield">
804       <xslo:if test="contains('h', @code)">
805         <z:index name="Title-series:w Title-series:p">
806           <xslo:value-of select="."/>
807         </z:index>
808       </xslo:if>
809     </xslo:for-each>
810     <xslo:for-each select="marc:subfield">
811       <xslo:if test="contains('i', @code)">
812         <z:index name="Title-series:w Title-series:p">
813           <xslo:value-of select="."/>
814         </z:index>
815       </xslo:if>
816     </xslo:for-each>
817     <xslo:for-each select="marc:subfield">
818       <xslo:if test="contains('v', @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('x', @code)">
826         <z:index name="ISSN:w">
827           <xslo:value-of select="."/>
828         </z:index>
829       </xslo:if>
830     </xslo:for-each>
831   </xslo:template>
832   <xslo:template mode="index_subfields" match="marc:datafield[@tag='300']">
833     <xslo:for-each select="marc:subfield">
834       <xslo:if test="contains('a', @code)">
835         <z:index name="Note:w Note:p">
836           <xslo:value-of select="."/>
837         </z:index>
838       </xslo:if>
839     </xslo:for-each>
840   </xslo:template>
841   <xslo:template mode="index_subfields" match="marc:datafield[@tag='301']">
842     <xslo:for-each select="marc:subfield">
843       <xslo:if test="contains('a', @code)">
844         <z:index name="Note:w Note:p">
845           <xslo:value-of select="."/>
846         </z:index>
847       </xslo:if>
848     </xslo:for-each>
849   </xslo:template>
850   <xslo:template mode="index_subfields" match="marc:datafield[@tag='302']">
851     <xslo:for-each select="marc:subfield">
852       <xslo:if test="contains('a', @code)">
853         <z:index name="Note:w Note:p">
854           <xslo:value-of select="."/>
855         </z:index>
856       </xslo:if>
857     </xslo:for-each>
858   </xslo:template>
859   <xslo:template mode="index_subfields" match="marc:datafield[@tag='303']">
860     <xslo:for-each select="marc:subfield">
861       <xslo:if test="contains('a', @code)">
862         <z:index name="Note:w Note:p">
863           <xslo:value-of select="."/>
864         </z:index>
865       </xslo:if>
866     </xslo:for-each>
867   </xslo:template>
868   <xslo:template mode="index_subfields" match="marc:datafield[@tag='304']">
869     <xslo:for-each select="marc:subfield">
870       <xslo:if test="contains('a', @code)">
871         <z:index name="Note:w Note:p Title:w Title:p">
872           <xslo:value-of select="."/>
873         </z:index>
874       </xslo:if>
875     </xslo:for-each>
876   </xslo:template>
877   <xslo:template mode="index_subfields" match="marc:datafield[@tag='305']">
878     <xslo:for-each select="marc:subfield">
879       <xslo:if test="contains('a', @code)">
880         <z:index name="Note:w Note:p">
881           <xslo:value-of select="."/>
882         </z:index>
883       </xslo:if>
884     </xslo:for-each>
885   </xslo:template>
886   <xslo:template mode="index_subfields" match="marc:datafield[@tag='306']">
887     <xslo:for-each select="marc:subfield">
888       <xslo:if test="contains('a', @code)">
889         <z:index name="Note:w Note:p">
890           <xslo:value-of select="."/>
891         </z:index>
892       </xslo:if>
893     </xslo:for-each>
894   </xslo:template>
895   <xslo:template mode="index_subfields" match="marc:datafield[@tag='307']">
896     <xslo:for-each select="marc:subfield">
897       <xslo:if test="contains('a', @code)">
898         <z:index name="Note:w Note:p">
899           <xslo:value-of select="."/>
900         </z:index>
901       </xslo:if>
902     </xslo:for-each>
903   </xslo:template>
904   <xslo:template mode="index_subfields" match="marc:datafield[@tag='308']">
905     <xslo:for-each select="marc:subfield">
906       <xslo:if test="contains('a', @code)">
907         <z:index name="Note:w Note:p">
908           <xslo:value-of select="."/>
909         </z:index>
910       </xslo:if>
911     </xslo:for-each>
912   </xslo:template>
913   <xslo:template mode="index_subfields" match="marc:datafield[@tag='310']">
914     <xslo:for-each select="marc:subfield">
915       <xslo:if test="contains('a', @code)">
916         <z:index name="Note:w Note:p">
917           <xslo:value-of select="."/>
918         </z:index>
919       </xslo:if>
920     </xslo:for-each>
921   </xslo:template>
922   <xslo:template mode="index_subfields" match="marc:datafield[@tag='311']">
923     <xslo:for-each select="marc:subfield">
924       <xslo:if test="contains('a', @code)">
925         <z:index name="Note:w Note:p">
926           <xslo:value-of select="."/>
927         </z:index>
928       </xslo:if>
929     </xslo:for-each>
930   </xslo:template>
931   <xslo:template mode="index_subfields" match="marc:datafield[@tag='312']">
932     <xslo:for-each select="marc:subfield">
933       <xslo:if test="contains('a', @code)">
934         <z:index name="Note:w Note:p">
935           <xslo:value-of select="."/>
936         </z:index>
937       </xslo:if>
938     </xslo:for-each>
939   </xslo:template>
940   <xslo:template mode="index_subfields" match="marc:datafield[@tag='313']">
941     <xslo:for-each select="marc:subfield">
942       <xslo:if test="contains('a', @code)">
943         <z:index name="Note:w Note:p">
944           <xslo:value-of select="."/>
945         </z:index>
946       </xslo:if>
947     </xslo:for-each>
948   </xslo:template>
949   <xslo:template mode="index_subfields" match="marc:datafield[@tag='314']">
950     <xslo:for-each select="marc:subfield">
951       <xslo:if test="contains('a', @code)">
952         <z:index name="Note:w Note:p Author:w Author:p">
953           <xslo:value-of select="."/>
954         </z:index>
955       </xslo:if>
956     </xslo:for-each>
957   </xslo:template>
958   <xslo:template mode="index_subfields" match="marc:datafield[@tag='315']">
959     <xslo:for-each select="marc:subfield">
960       <xslo:if test="contains('a', @code)">
961         <z:index name="Note:w Note:p">
962           <xslo:value-of select="."/>
963         </z:index>
964       </xslo:if>
965     </xslo:for-each>
966   </xslo:template>
967   <xslo:template mode="index_subfields" match="marc:datafield[@tag='316']">
968     <xslo:for-each select="marc:subfield">
969       <xslo:if test="contains('a', @code)">
970         <z:index name="Note:w Note:p">
971           <xslo:value-of select="."/>
972         </z:index>
973       </xslo:if>
974     </xslo:for-each>
975   </xslo:template>
976   <xslo:template mode="index_subfields" match="marc:datafield[@tag='317']">
977     <xslo:for-each select="marc:subfield">
978       <xslo:if test="contains('a', @code)">
979         <z:index name="Note:w Note:p">
980           <xslo:value-of select="."/>
981         </z:index>
982       </xslo:if>
983     </xslo:for-each>
984   </xslo:template>
985   <xslo:template mode="index_subfields" match="marc:datafield[@tag='320']">
986     <xslo:for-each select="marc:subfield">
987       <xslo:if test="contains('a', @code)">
988         <z:index name="Note:w Note:p">
989           <xslo:value-of select="."/>
990         </z:index>
991       </xslo:if>
992     </xslo:for-each>
993   </xslo:template>
994   <xslo:template mode="index_subfields" match="marc:datafield[@tag='321']">
995     <xslo:for-each select="marc:subfield">
996       <xslo:if test="contains('a', @code)">
997         <z:index name="Note:w Note:p">
998           <xslo:value-of select="."/>
999         </z:index>
1000       </xslo:if>
1001     </xslo:for-each>
1002   </xslo:template>
1003   <xslo:template mode="index_subfields" match="marc:datafield[@tag='322']">
1004     <xslo:for-each select="marc:subfield">
1005       <xslo:if test="contains('a', @code)">
1006         <z:index name="Note:w Note:p">
1007           <xslo:value-of select="."/>
1008         </z:index>
1009       </xslo:if>
1010     </xslo:for-each>
1011   </xslo:template>
1012   <xslo:template mode="index_subfields" match="marc:datafield[@tag='323']">
1013     <xslo:for-each select="marc:subfield">
1014       <xslo:if test="contains('a', @code)">
1015         <z:index name="Note:w Note:p">
1016           <xslo:value-of select="."/>
1017         </z:index>
1018       </xslo:if>
1019     </xslo:for-each>
1020   </xslo:template>
1021   <xslo:template mode="index_subfields" match="marc:datafield[@tag='324']">
1022     <xslo:for-each select="marc:subfield">
1023       <xslo:if test="contains('a', @code)">
1024         <z:index name="Note:w Note:p">
1025           <xslo:value-of select="."/>
1026         </z:index>
1027       </xslo:if>
1028     </xslo:for-each>
1029   </xslo:template>
1030   <xslo:template mode="index_subfields" match="marc:datafield[@tag='325']">
1031     <xslo:for-each select="marc:subfield">
1032       <xslo:if test="contains('a', @code)">
1033         <z:index name="Note:w Note:p">
1034           <xslo:value-of select="."/>
1035         </z:index>
1036       </xslo:if>
1037     </xslo:for-each>
1038   </xslo:template>
1039   <xslo:template mode="index_subfields" match="marc:datafield[@tag='326']">
1040     <xslo:for-each select="marc:subfield">
1041       <xslo:if test="contains('a', @code)">
1042         <z:index name="Note:w Note:p">
1043           <xslo:value-of select="."/>
1044         </z:index>
1045       </xslo:if>
1046     </xslo:for-each>
1047   </xslo:template>
1048   <xslo:template mode="index_subfields" match="marc:datafield[@tag='327']">
1049     <xslo:for-each select="marc:subfield">
1050       <xslo:if test="contains('abcdefghi', @code)">
1051         <z:index name="Note:w Note:p Title:w Title:p">
1052           <xslo:value-of select="."/>
1053         </z:index>
1054       </xslo:if>
1055     </xslo:for-each>
1056   </xslo:template>
1057   <xslo:template mode="index_subfields" match="marc:datafield[@tag='328']">
1058     <xslo:for-each select="marc:subfield">
1059       <xslo:if test="contains('abcde', @code)">
1060         <z:index name="Note:w Note:p Dissertation-information:p Dissertation-information:w">
1061           <xslo:value-of select="."/>
1062         </z:index>
1063       </xslo:if>
1064     </xslo:for-each>
1065     <xslo:for-each select="marc:subfield">
1066       <xslo:if test="contains('t', @code)">
1067         <z:index name="Note:w Note:p Dissertation-information:p Dissertation-information:w Title:p Title:w">
1068           <xslo:value-of select="."/>
1069         </z:index>
1070       </xslo:if>
1071     </xslo:for-each>
1072   </xslo:template>
1073   <xslo:template mode="index_subfields" match="marc:datafield[@tag='330']">
1074     <xslo:for-each select="marc:subfield">
1075       <xslo:if test="contains('a', @code)">
1076         <z:index name="Abstract:w Note:w Abstract:p Note:p">
1077           <xslo:value-of select="."/>
1078         </z:index>
1079       </xslo:if>
1080     </xslo:for-each>
1081   </xslo:template>
1082   <xslo:template mode="index_subfields" match="marc:datafield[@tag='332']">
1083     <xslo:for-each select="marc:subfield">
1084       <xslo:if test="contains('a', @code)">
1085         <z:index name="Note:w Note:p">
1086           <xslo:value-of select="."/>
1087         </z:index>
1088       </xslo:if>
1089     </xslo:for-each>
1090   </xslo:template>
1091   <xslo:template mode="index_subfields" match="marc:datafield[@tag='333']">
1092     <xslo:for-each select="marc:subfield">
1093       <xslo:if test="contains('a', @code)">
1094         <z:index name="Note:w Note:p">
1095           <xslo:value-of select="."/>
1096         </z:index>
1097       </xslo:if>
1098     </xslo:for-each>
1099   </xslo:template>
1100   <xslo:template mode="index_subfields" match="marc:datafield[@tag='334']">
1101     <xslo:for-each select="marc:subfield">
1102       <xslo:if test="contains('abcd', @code)">
1103         <z:index name="Note:w Note:p">
1104           <xslo:value-of select="."/>
1105         </z:index>
1106       </xslo:if>
1107     </xslo:for-each>
1108   </xslo:template>
1109   <xslo:template mode="index_subfields" match="marc:datafield[@tag='336']">
1110     <xslo:for-each select="marc:subfield">
1111       <xslo:if test="contains('a', @code)">
1112         <z:index name="Note:w Note:p">
1113           <xslo:value-of select="."/>
1114         </z:index>
1115       </xslo:if>
1116     </xslo:for-each>
1117   </xslo:template>
1118   <xslo:template mode="index_subfields" match="marc:datafield[@tag='337']">
1119     <xslo:for-each select="marc:subfield">
1120       <xslo:if test="contains('a', @code)">
1121         <z:index name="Note:w Note:p">
1122           <xslo:value-of select="."/>
1123         </z:index>
1124       </xslo:if>
1125     </xslo:for-each>
1126   </xslo:template>
1127   <xslo:template mode="index_subfields" match="marc:datafield[@tag='345']">
1128     <xslo:for-each select="marc:subfield">
1129       <xslo:if test="contains('a', @code)">
1130         <z:index name="Note:w Note:p">
1131           <xslo:value-of select="."/>
1132         </z:index>
1133       </xslo:if>
1134     </xslo:for-each>
1135   </xslo:template>
1136   <xslo:template mode="index_subfields" match="marc:datafield[@tag='410']">
1137     <xslo:for-each select="marc:subfield">
1138       <xslo:if test="contains('t', @code)">
1139         <z:index name="Title-series:w Title-series:p">
1140           <xslo:value-of select="."/>
1141         </z:index>
1142       </xslo:if>
1143     </xslo:for-each>
1144   </xslo:template>
1145   <xslo:template mode="index_subfields" match="marc:datafield[@tag='413']">
1146     <xslo:for-each select="marc:subfield">
1147       <xslo:if test="contains('t', @code)">
1148         <z:index name="Title:w Title:p">
1149           <xslo:value-of select="."/>
1150         </z:index>
1151       </xslo:if>
1152     </xslo:for-each>
1153   </xslo:template>
1154   <xslo:template mode="index_subfields" match="marc:datafield[@tag='421']">
1155     <xslo:for-each select="marc:subfield">
1156       <xslo:if test="contains('t', @code)">
1157         <z:index name="Title:w Title:p">
1158           <xslo:value-of select="."/>
1159         </z:index>
1160       </xslo:if>
1161     </xslo:for-each>
1162   </xslo:template>
1163   <xslo:template mode="index_subfields" match="marc:datafield[@tag='422']">
1164     <xslo:for-each select="marc:subfield">
1165       <xslo:if test="contains('t', @code)">
1166         <z:index name="Title:w Title:p">
1167           <xslo:value-of select="."/>
1168         </z:index>
1169       </xslo:if>
1170     </xslo:for-each>
1171   </xslo:template>
1172   <xslo:template mode="index_subfields" match="marc:datafield[@tag='423']">
1173     <xslo:for-each select="marc:subfield">
1174       <xslo:if test="contains('t', @code)">
1175         <z:index name="Title:w Title:p">
1176           <xslo:value-of select="."/>
1177         </z:index>
1178       </xslo:if>
1179     </xslo:for-each>
1180   </xslo:template>
1181   <xslo:template mode="index_subfields" match="marc:datafield[@tag='424']">
1182     <xslo:for-each select="marc:subfield">
1183       <xslo:if test="contains('t', @code)">
1184         <z:index name="Title:w Title:p">
1185           <xslo:value-of select="."/>
1186         </z:index>
1187       </xslo:if>
1188     </xslo:for-each>
1189   </xslo:template>
1190   <xslo:template mode="index_subfields" match="marc:datafield[@tag='425']">
1191     <xslo:for-each select="marc:subfield">
1192       <xslo:if test="contains('t', @code)">
1193         <z:index name="Title:w Title:p">
1194           <xslo:value-of select="."/>
1195         </z:index>
1196       </xslo:if>
1197     </xslo:for-each>
1198   </xslo:template>
1199   <xslo:template mode="index_subfields" match="marc:datafield[@tag='430']">
1200     <xslo:for-each select="marc:subfield">
1201       <xslo:if test="contains('t', @code)">
1202         <z:index name="Title:w Title:p">
1203           <xslo:value-of select="."/>
1204         </z:index>
1205       </xslo:if>
1206     </xslo:for-each>
1207   </xslo:template>
1208   <xslo:template mode="index_subfields" match="marc:datafield[@tag='431']">
1209     <xslo:for-each select="marc:subfield">
1210       <xslo:if test="contains('t', @code)">
1211         <z:index name="Title:w Title:p">
1212           <xslo:value-of select="."/>
1213         </z:index>
1214       </xslo:if>
1215     </xslo:for-each>
1216   </xslo:template>
1217   <xslo:template mode="index_subfields" match="marc:datafield[@tag='432']">
1218     <xslo:for-each select="marc:subfield">
1219       <xslo:if test="contains('t', @code)">
1220         <z:index name="Title:w Title:p">
1221           <xslo:value-of select="."/>
1222         </z:index>
1223       </xslo:if>
1224     </xslo:for-each>
1225   </xslo:template>
1226   <xslo:template mode="index_subfields" match="marc:datafield[@tag='433']">
1227     <xslo:for-each select="marc:subfield">
1228       <xslo:if test="contains('t', @code)">
1229         <z:index name="Title:w Title:p">
1230           <xslo:value-of select="."/>
1231         </z:index>
1232       </xslo:if>
1233     </xslo:for-each>
1234   </xslo:template>
1235   <xslo:template mode="index_subfields" match="marc:datafield[@tag='434']">
1236     <xslo:for-each select="marc:subfield">
1237       <xslo:if test="contains('t', @code)">
1238         <z:index name="Title:w Title:p">
1239           <xslo:value-of select="."/>
1240         </z:index>
1241       </xslo:if>
1242     </xslo:for-each>
1243   </xslo:template>
1244   <xslo:template mode="index_subfields" match="marc:datafield[@tag='435']">
1245     <xslo:for-each select="marc:subfield">
1246       <xslo:if test="contains('t', @code)">
1247         <z:index name="Title:w Title:p">
1248           <xslo:value-of select="."/>
1249         </z:index>
1250       </xslo:if>
1251     </xslo:for-each>
1252   </xslo:template>
1253   <xslo:template mode="index_subfields" match="marc:datafield[@tag='436']">
1254     <xslo:for-each select="marc:subfield">
1255       <xslo:if test="contains('t', @code)">
1256         <z:index name="Title:w Title:p">
1257           <xslo:value-of select="."/>
1258         </z:index>
1259       </xslo:if>
1260     </xslo:for-each>
1261   </xslo:template>
1262   <xslo:template mode="index_subfields" match="marc:datafield[@tag='437']">
1263     <xslo:for-each select="marc:subfield">
1264       <xslo:if test="contains('t', @code)">
1265         <z:index name="Title:w Title:p">
1266           <xslo:value-of select="."/>
1267         </z:index>
1268       </xslo:if>
1269     </xslo:for-each>
1270   </xslo:template>
1271   <xslo:template mode="index_subfields" match="marc:datafield[@tag='440']">
1272     <xslo:for-each select="marc:subfield">
1273       <xslo:if test="contains('t', @code)">
1274         <z:index name="Title:w Title:p">
1275           <xslo:value-of select="."/>
1276         </z:index>
1277       </xslo:if>
1278     </xslo:for-each>
1279   </xslo:template>
1280   <xslo:template mode="index_subfields" match="marc:datafield[@tag='441']">
1281     <xslo:for-each select="marc:subfield">
1282       <xslo:if test="contains('t', @code)">
1283         <z:index name="Title:w Title:p">
1284           <xslo:value-of select="."/>
1285         </z:index>
1286       </xslo:if>
1287     </xslo:for-each>
1288   </xslo:template>
1289   <xslo:template mode="index_subfields" match="marc:datafield[@tag='442']">
1290     <xslo:for-each select="marc:subfield">
1291       <xslo:if test="contains('t', @code)">
1292         <z:index name="Title:w Title:p">
1293           <xslo:value-of select="."/>
1294         </z:index>
1295       </xslo:if>
1296     </xslo:for-each>
1297   </xslo:template>
1298   <xslo:template mode="index_subfields" match="marc:datafield[@tag='443']">
1299     <xslo:for-each select="marc:subfield">
1300       <xslo:if test="contains('t', @code)">
1301         <z:index name="Title:w Title:p">
1302           <xslo:value-of select="."/>
1303         </z:index>
1304       </xslo:if>
1305     </xslo:for-each>
1306   </xslo:template>
1307   <xslo:template mode="index_subfields" match="marc:datafield[@tag='444']">
1308     <xslo:for-each select="marc:subfield">
1309       <xslo:if test="contains('t', @code)">
1310         <z:index name="Title:w Title:p">
1311           <xslo:value-of select="."/>
1312         </z:index>
1313       </xslo:if>
1314     </xslo:for-each>
1315   </xslo:template>
1316   <xslo:template mode="index_subfields" match="marc:datafield[@tag='445']">
1317     <xslo:for-each select="marc:subfield">
1318       <xslo:if test="contains('t', @code)">
1319         <z:index name="Title:w Title:p">
1320           <xslo:value-of select="."/>
1321         </z:index>
1322       </xslo:if>
1323     </xslo:for-each>
1324   </xslo:template>
1325   <xslo:template mode="index_subfields" match="marc:datafield[@tag='446']">
1326     <xslo:for-each select="marc:subfield">
1327       <xslo:if test="contains('t', @code)">
1328         <z:index name="Title:w Title:p">
1329           <xslo:value-of select="."/>
1330         </z:index>
1331       </xslo:if>
1332     </xslo:for-each>
1333   </xslo:template>
1334   <xslo:template mode="index_subfields" match="marc:datafield[@tag='447']">
1335     <xslo:for-each select="marc:subfield">
1336       <xslo:if test="contains('t', @code)">
1337         <z:index name="Title:w Title:p">
1338           <xslo:value-of select="."/>
1339         </z:index>
1340       </xslo:if>
1341     </xslo:for-each>
1342   </xslo:template>
1343   <xslo:template mode="index_subfields" match="marc:datafield[@tag='448']">
1344     <xslo:for-each select="marc:subfield">
1345       <xslo:if test="contains('t', @code)">
1346         <z:index name="Title:w Title:p">
1347           <xslo:value-of select="."/>
1348         </z:index>
1349       </xslo:if>
1350     </xslo:for-each>
1351   </xslo:template>
1352   <xslo:template mode="index_subfields" match="marc:datafield[@tag='451']">
1353     <xslo:for-each select="marc:subfield">
1354       <xslo:if test="contains('t', @code)">
1355         <z:index name="Title:w Title:p">
1356           <xslo:value-of select="."/>
1357         </z:index>
1358       </xslo:if>
1359     </xslo:for-each>
1360   </xslo:template>
1361   <xslo:template mode="index_subfields" match="marc:datafield[@tag='452']">
1362     <xslo:for-each select="marc:subfield">
1363       <xslo:if test="contains('t', @code)">
1364         <z:index name="Title:w Title:p">
1365           <xslo:value-of select="."/>
1366         </z:index>
1367       </xslo:if>
1368     </xslo:for-each>
1369   </xslo:template>
1370   <xslo:template mode="index_subfields" match="marc:datafield[@tag='453']">
1371     <xslo:for-each select="marc:subfield">
1372       <xslo:if test="contains('t', @code)">
1373         <z:index name="Title:w Title:p">
1374           <xslo:value-of select="."/>
1375         </z:index>
1376       </xslo:if>
1377     </xslo:for-each>
1378   </xslo:template>
1379   <xslo:template mode="index_subfields" match="marc:datafield[@tag='454']">
1380     <xslo:for-each select="marc:subfield">
1381       <xslo:if test="contains('t', @code)">
1382         <z:index name="Title:w Title:p">
1383           <xslo:value-of select="."/>
1384         </z:index>
1385       </xslo:if>
1386     </xslo:for-each>
1387   </xslo:template>
1388   <xslo:template mode="index_subfields" match="marc:datafield[@tag='455']">
1389     <xslo:for-each select="marc:subfield">
1390       <xslo:if test="contains('t', @code)">
1391         <z:index name="Title:w Title:p">
1392           <xslo:value-of select="."/>
1393         </z:index>
1394       </xslo:if>
1395     </xslo:for-each>
1396   </xslo:template>
1397   <xslo:template mode="index_subfields" match="marc:datafield[@tag='456']">
1398     <xslo:for-each select="marc:subfield">
1399       <xslo:if test="contains('t', @code)">
1400         <z:index name="Title:w Title:p">
1401           <xslo:value-of select="."/>
1402         </z:index>
1403       </xslo:if>
1404     </xslo:for-each>
1405   </xslo:template>
1406   <xslo:template mode="index_subfields" match="marc:datafield[@tag='461']">
1407     <xslo:for-each select="marc:subfield">
1408       <xslo:if test="contains('t', @code)">
1409         <z:index name="Title:w Title:p Host-item:w Host-item:p">
1410           <xslo:value-of select="."/>
1411         </z:index>
1412       </xslo:if>
1413     </xslo:for-each>
1414   </xslo:template>
1415   <xslo:template mode="index_subfields" match="marc:datafield[@tag='462']">
1416     <xslo:for-each select="marc:subfield">
1417       <xslo:if test="contains('t', @code)">
1418         <z:index name="Title:w Title:p">
1419           <xslo:value-of select="."/>
1420         </z:index>
1421       </xslo:if>
1422     </xslo:for-each>
1423   </xslo:template>
1424   <xslo:template mode="index_subfields" match="marc:datafield[@tag='463']">
1425     <xslo:for-each select="marc:subfield">
1426       <xslo:if test="contains('t', @code)">
1427         <z:index name="Title:w Title:p">
1428           <xslo:value-of select="."/>
1429         </z:index>
1430       </xslo:if>
1431     </xslo:for-each>
1432   </xslo:template>
1433   <xslo:template mode="index_subfields" match="marc:datafield[@tag='464']">
1434     <xslo:for-each select="marc:subfield">
1435       <xslo:if test="contains('t', @code)">
1436         <z:index name="Title:w Title:p Host-item:w Host-item:p">
1437           <xslo:value-of select="."/>
1438         </z:index>
1439       </xslo:if>
1440     </xslo:for-each>
1441   </xslo:template>
1442   <xslo:template mode="index_subfields" match="marc:datafield[@tag='470']">
1443     <xslo:for-each select="marc:subfield">
1444       <xslo:if test="contains('t', @code)">
1445         <z:index name="Title:w Title:p">
1446           <xslo:value-of select="."/>
1447         </z:index>
1448       </xslo:if>
1449     </xslo:for-each>
1450   </xslo:template>
1451   <xslo:template mode="index_subfields" match="marc:datafield[@tag='481']">
1452     <xslo:for-each select="marc:subfield">
1453       <xslo:if test="contains('t', @code)">
1454         <z:index name="Title:w Title:p">
1455           <xslo:value-of select="."/>
1456         </z:index>
1457       </xslo:if>
1458     </xslo:for-each>
1459   </xslo:template>
1460   <xslo:template mode="index_subfields" match="marc:datafield[@tag='482']">
1461     <xslo:for-each select="marc:subfield">
1462       <xslo:if test="contains('t', @code)">
1463         <z:index name="Title:w Title:p">
1464           <xslo:value-of select="."/>
1465         </z:index>
1466       </xslo:if>
1467     </xslo:for-each>
1468   </xslo:template>
1469   <xslo:template mode="index_subfields" match="marc:datafield[@tag='488']">
1470     <xslo:for-each select="marc:subfield">
1471       <xslo:if test="contains('t', @code)">
1472         <z:index name="Title:w Title:p">
1473           <xslo:value-of select="."/>
1474         </z:index>
1475       </xslo:if>
1476     </xslo:for-each>
1477   </xslo:template>
1478   <xslo:template mode="index_subfields" match="marc:datafield[@tag='500']">
1479     <xslo:for-each select="marc:subfield">
1480       <xslo:if test="contains('9', @code)">
1481         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1482           <xslo:value-of select="."/>
1483         </z:index>
1484       </xslo:if>
1485     </xslo:for-each>
1486   </xslo:template>
1487   <xslo:template mode="index_subfields" match="marc:datafield[@tag='501']">
1488     <xslo:for-each select="marc:subfield">
1489       <xslo:if test="contains('9', @code)">
1490         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1491           <xslo:value-of select="."/>
1492         </z:index>
1493       </xslo:if>
1494     </xslo:for-each>
1495   </xslo:template>
1496   <xslo:template mode="index_subfields" match="marc:datafield[@tag='503']">
1497     <xslo:for-each select="marc:subfield">
1498       <xslo:if test="contains('9', @code)">
1499         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1500           <xslo:value-of select="."/>
1501         </z:index>
1502       </xslo:if>
1503     </xslo:for-each>
1504   </xslo:template>
1505   <xslo:template mode="index_subfields" match="marc:datafield[@tag='510']">
1506     <xslo:for-each select="marc:subfield">
1507       <xslo:if test="contains('9', @code)">
1508         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1509           <xslo:value-of select="."/>
1510         </z:index>
1511       </xslo:if>
1512     </xslo:for-each>
1513   </xslo:template>
1514   <xslo:template mode="index_subfields" match="marc:datafield[@tag='512']">
1515     <xslo:for-each select="marc:subfield">
1516       <xslo:if test="contains('9', @code)">
1517         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1518           <xslo:value-of select="."/>
1519         </z:index>
1520       </xslo:if>
1521     </xslo:for-each>
1522   </xslo:template>
1523   <xslo:template mode="index_subfields" match="marc:datafield[@tag='513']">
1524     <xslo:for-each select="marc:subfield">
1525       <xslo:if test="contains('9', @code)">
1526         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1527           <xslo:value-of select="."/>
1528         </z:index>
1529       </xslo:if>
1530     </xslo:for-each>
1531   </xslo:template>
1532   <xslo:template mode="index_subfields" match="marc:datafield[@tag='514']">
1533     <xslo:for-each select="marc:subfield">
1534       <xslo:if test="contains('9', @code)">
1535         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1536           <xslo:value-of select="."/>
1537         </z:index>
1538       </xslo:if>
1539     </xslo:for-each>
1540   </xslo:template>
1541   <xslo:template mode="index_subfields" match="marc:datafield[@tag='515']">
1542     <xslo:for-each select="marc:subfield">
1543       <xslo:if test="contains('9', @code)">
1544         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1545           <xslo:value-of select="."/>
1546         </z:index>
1547       </xslo:if>
1548     </xslo:for-each>
1549   </xslo:template>
1550   <xslo:template mode="index_subfields" match="marc:datafield[@tag='516']">
1551     <xslo:for-each select="marc:subfield">
1552       <xslo:if test="contains('9', @code)">
1553         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1554           <xslo:value-of select="."/>
1555         </z:index>
1556       </xslo:if>
1557     </xslo:for-each>
1558   </xslo:template>
1559   <xslo:template mode="index_subfields" match="marc:datafield[@tag='517']">
1560     <xslo:for-each select="marc:subfield">
1561       <xslo:if test="contains('9', @code)">
1562         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1563           <xslo:value-of select="."/>
1564         </z:index>
1565       </xslo:if>
1566     </xslo:for-each>
1567   </xslo:template>
1568   <xslo:template mode="index_subfields" match="marc:datafield[@tag='518']">
1569     <xslo:for-each select="marc:subfield">
1570       <xslo:if test="contains('9', @code)">
1571         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1572           <xslo:value-of select="."/>
1573         </z:index>
1574       </xslo:if>
1575     </xslo:for-each>
1576   </xslo:template>
1577   <xslo:template mode="index_subfields" match="marc:datafield[@tag='519']">
1578     <xslo:for-each select="marc:subfield">
1579       <xslo:if test="contains('9', @code)">
1580         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1581           <xslo:value-of select="."/>
1582         </z:index>
1583       </xslo:if>
1584     </xslo:for-each>
1585   </xslo:template>
1586   <xslo:template mode="index_subfields" match="marc:datafield[@tag='520']">
1587     <xslo:for-each select="marc:subfield">
1588       <xslo:if test="contains('9', @code)">
1589         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1590           <xslo:value-of select="."/>
1591         </z:index>
1592       </xslo:if>
1593     </xslo:for-each>
1594   </xslo:template>
1595   <xslo:template mode="index_subfields" match="marc:datafield[@tag='530']">
1596     <xslo:for-each select="marc:subfield">
1597       <xslo:if test="contains('9', @code)">
1598         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1599           <xslo:value-of select="."/>
1600         </z:index>
1601       </xslo:if>
1602     </xslo:for-each>
1603   </xslo:template>
1604   <xslo:template mode="index_subfields" match="marc:datafield[@tag='531']">
1605     <xslo:for-each select="marc:subfield">
1606       <xslo:if test="contains('9', @code)">
1607         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1608           <xslo:value-of select="."/>
1609         </z:index>
1610       </xslo:if>
1611     </xslo:for-each>
1612   </xslo:template>
1613   <xslo:template mode="index_subfields" match="marc:datafield[@tag='532']">
1614     <xslo:for-each select="marc:subfield">
1615       <xslo:if test="contains('9', @code)">
1616         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1617           <xslo:value-of select="."/>
1618         </z:index>
1619       </xslo:if>
1620     </xslo:for-each>
1621   </xslo:template>
1622   <xslo:template mode="index_subfields" match="marc:datafield[@tag='540']">
1623     <xslo:for-each select="marc:subfield">
1624       <xslo:if test="contains('9', @code)">
1625         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1626           <xslo:value-of select="."/>
1627         </z:index>
1628       </xslo:if>
1629     </xslo:for-each>
1630   </xslo:template>
1631   <xslo:template mode="index_subfields" match="marc:datafield[@tag='541']">
1632     <xslo:for-each select="marc:subfield">
1633       <xslo:if test="contains('9', @code)">
1634         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1635           <xslo:value-of select="."/>
1636         </z:index>
1637       </xslo:if>
1638     </xslo:for-each>
1639   </xslo:template>
1640   <xslo:template mode="index_subfields" match="marc:datafield[@tag='545']">
1641     <xslo:for-each select="marc:subfield">
1642       <xslo:if test="contains('9', @code)">
1643         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1644           <xslo:value-of select="."/>
1645         </z:index>
1646       </xslo:if>
1647     </xslo:for-each>
1648   </xslo:template>
1649   <xslo:template mode="index_subfields" match="marc:datafield[@tag='560']">
1650     <xslo:for-each select="marc:subfield">
1651       <xslo:if test="contains('9', @code)">
1652         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1653           <xslo:value-of select="."/>
1654         </z:index>
1655       </xslo:if>
1656     </xslo:for-each>
1657   </xslo:template>
1658   <xslo:template mode="index_subfields" match="marc:datafield[@tag='600']">
1659     <xslo:for-each select="marc:subfield">
1660       <xslo:if test="contains('9', @code)">
1661         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1662           <xslo:value-of select="."/>
1663         </z:index>
1664       </xslo:if>
1665     </xslo:for-each>
1666     <xslo:for-each select="marc:subfield">
1667       <xslo:if test="contains('abdgt', @code)">
1668         <z:index name="Personal-name:w Personal-name:p Subject-name-personal:w Subject-name-personal:p Subject:w Subject:p">
1669           <xslo:value-of select="."/>
1670         </z:index>
1671       </xslo:if>
1672     </xslo:for-each>
1673     <xslo:for-each select="marc:subfield">
1674       <xslo:if test="contains('j', @code)">
1675         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-name-personal:w Subject-name-personal:p">
1676           <xslo:value-of select="."/>
1677         </z:index>
1678       </xslo:if>
1679     </xslo:for-each>
1680     <xslo:for-each select="marc:subfield">
1681       <xslo:if test="contains('x', @code)">
1682         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-personal:w Subject-name-personal:p">
1683           <xslo:value-of select="."/>
1684         </z:index>
1685       </xslo:if>
1686     </xslo:for-each>
1687     <xslo:for-each select="marc:subfield">
1688       <xslo:if test="contains('y', @code)">
1689         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-name-personal:w Subject-name-personal:p">
1690           <xslo:value-of select="."/>
1691         </z:index>
1692       </xslo:if>
1693     </xslo:for-each>
1694     <xslo:for-each select="marc:subfield">
1695       <xslo:if test="contains('z', @code)">
1696         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-name-personal:w Subject-name-personal:p">
1697           <xslo:value-of select="."/>
1698         </z:index>
1699       </xslo:if>
1700     </xslo:for-each>
1701   </xslo:template>
1702   <xslo:template mode="index_subfields" match="marc:datafield[@tag='601']">
1703     <xslo:for-each select="marc:subfield">
1704       <xslo:if test="contains('9', @code)">
1705         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1706           <xslo:value-of select="."/>
1707         </z:index>
1708       </xslo:if>
1709     </xslo:for-each>
1710     <xslo:for-each select="marc:subfield">
1711       <xslo:if test="contains('a', @code)">
1712         <z:index name="Corporate-name:w Corporate-name:p Conference-name:w Conference-name:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p Subject:w Subject:p">
1713           <xslo:value-of select="."/>
1714         </z:index>
1715       </xslo:if>
1716     </xslo:for-each>
1717     <xslo:for-each select="marc:subfield">
1718       <xslo:if test="contains('j', @code)">
1719         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate: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('x', @code)">
1726         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p">
1727           <xslo:value-of select="."/>
1728         </z:index>
1729       </xslo:if>
1730     </xslo:for-each>
1731     <xslo:for-each select="marc:subfield">
1732       <xslo:if test="contains('y', @code)">
1733         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p">
1734           <xslo:value-of select="."/>
1735         </z:index>
1736       </xslo:if>
1737     </xslo:for-each>
1738     <xslo:for-each select="marc:subfield">
1739       <xslo:if test="contains('z', @code)">
1740         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-name-conference:w Subject-name-conference:p Subject-name-corporate:w Subject-name-corporate:p">
1741           <xslo:value-of select="."/>
1742         </z:index>
1743       </xslo:if>
1744     </xslo:for-each>
1745   </xslo:template>
1746   <xslo:template mode="index_subfields" match="marc:datafield[@tag='602']">
1747     <xslo:for-each select="marc:subfield">
1748       <xslo:if test="contains('9', @code)">
1749         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1750           <xslo:value-of select="."/>
1751         </z:index>
1752       </xslo:if>
1753     </xslo:for-each>
1754     <xslo:for-each select="marc:subfield">
1755       <xslo:if test="contains('at', @code)">
1756         <z:index name="Personal-name:w Personal-name:p Subject-name-personal:w Subject-name-personal:p Subject:w Subject:p">
1757           <xslo:value-of select="."/>
1758         </z:index>
1759       </xslo:if>
1760     </xslo:for-each>
1761     <xslo:for-each select="marc:subfield">
1762       <xslo:if test="contains('j', @code)">
1763         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-name-personal:w Subject-name-personal:p">
1764           <xslo:value-of select="."/>
1765         </z:index>
1766       </xslo:if>
1767     </xslo:for-each>
1768     <xslo:for-each select="marc:subfield">
1769       <xslo:if test="contains('x', @code)">
1770         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-personal:w Subject-name-personal:p">
1771           <xslo:value-of select="."/>
1772         </z:index>
1773       </xslo:if>
1774     </xslo:for-each>
1775     <xslo:for-each select="marc:subfield">
1776       <xslo:if test="contains('y', @code)">
1777         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-name-personal:w Subject-name-personal:p">
1778           <xslo:value-of select="."/>
1779         </z:index>
1780       </xslo:if>
1781     </xslo:for-each>
1782     <xslo:for-each select="marc:subfield">
1783       <xslo:if test="contains('z', @code)">
1784         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-name-personal:w Subject-name-personal:p">
1785           <xslo:value-of select="."/>
1786         </z:index>
1787       </xslo:if>
1788     </xslo:for-each>
1789   </xslo:template>
1790   <xslo:template mode="index_subfields" match="marc:datafield[@tag='604']">
1791     <xslo:for-each select="marc:subfield">
1792       <xslo:if test="contains('9', @code)">
1793         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1794           <xslo:value-of select="."/>
1795         </z:index>
1796       </xslo:if>
1797     </xslo:for-each>
1798     <xslo:for-each select="marc:subfield">
1799       <xslo:if test="contains('at', @code)">
1800         <z:index name="Name-and-title:w Name-and-title:p Subject-title:w Subject-title:p Personal-name:w Personal-name:p Subject-name-personal:w Subject-name-personal:p Subject:w Subject:p">
1801           <xslo:value-of select="."/>
1802         </z:index>
1803       </xslo:if>
1804     </xslo:for-each>
1805     <xslo:for-each select="marc:subfield">
1806       <xslo:if test="contains('t', @code)">
1807         <z:index name="Name-and-title:w Name-and-title:p Subject-title:w Subject-title:p Subject-name-personal:w Subject-name-personal:p Subject:w Subject:p">
1808           <xslo:value-of select="."/>
1809         </z:index>
1810       </xslo:if>
1811     </xslo:for-each>
1812     <xslo:for-each select="marc:subfield">
1813       <xslo:if test="contains('j', @code)">
1814         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-title:w Subject-title:p">
1815           <xslo:value-of select="."/>
1816         </z:index>
1817       </xslo:if>
1818     </xslo:for-each>
1819     <xslo:for-each select="marc:subfield">
1820       <xslo:if test="contains('x', @code)">
1821         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-title:w Subject-title:p">
1822           <xslo:value-of select="."/>
1823         </z:index>
1824       </xslo:if>
1825     </xslo:for-each>
1826     <xslo:for-each select="marc:subfield">
1827       <xslo:if test="contains('y', @code)">
1828         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-title:w Subject-title:p">
1829           <xslo:value-of select="."/>
1830         </z:index>
1831       </xslo:if>
1832     </xslo:for-each>
1833     <xslo:for-each select="marc:subfield">
1834       <xslo:if test="contains('z', @code)">
1835         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-title:w Subject-title:p">
1836           <xslo:value-of select="."/>
1837         </z:index>
1838       </xslo:if>
1839     </xslo:for-each>
1840   </xslo:template>
1841   <xslo:template mode="index_subfields" match="marc:datafield[@tag='605']">
1842     <xslo:for-each select="marc:subfield">
1843       <xslo:if test="contains('9', @code)">
1844         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1845           <xslo:value-of select="."/>
1846         </z:index>
1847       </xslo:if>
1848     </xslo:for-each>
1849     <xslo:for-each select="marc:subfield">
1850       <xslo:if test="contains('ahiklmnqrsuw', @code)">
1851         <z:index name="Subject-title:w Subject-title:p Subject:w Subject:p">
1852           <xslo:value-of select="."/>
1853         </z:index>
1854       </xslo:if>
1855     </xslo:for-each>
1856     <xslo:for-each select="marc:subfield">
1857       <xslo:if test="contains('j', @code)">
1858         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-title:w Subject-title:p">
1859           <xslo:value-of select="."/>
1860         </z:index>
1861       </xslo:if>
1862     </xslo:for-each>
1863     <xslo:for-each select="marc:subfield">
1864       <xslo:if test="contains('x', @code)">
1865         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-title:w Subject-title:p">
1866           <xslo:value-of select="."/>
1867         </z:index>
1868       </xslo:if>
1869     </xslo:for-each>
1870     <xslo:for-each select="marc:subfield">
1871       <xslo:if test="contains('y', @code)">
1872         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-title:w Subject-title:p">
1873           <xslo:value-of select="."/>
1874         </z:index>
1875       </xslo:if>
1876     </xslo:for-each>
1877     <xslo:for-each select="marc:subfield">
1878       <xslo:if test="contains('z', @code)">
1879         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-title:w Subject-title:p">
1880           <xslo:value-of select="."/>
1881         </z:index>
1882       </xslo:if>
1883     </xslo:for-each>
1884   </xslo:template>
1885   <xslo:template mode="index_subfields" match="marc:datafield[@tag='606']">
1886     <xslo:for-each select="marc:subfield">
1887       <xslo:if test="contains('9', @code)">
1888         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1889           <xslo:value-of select="."/>
1890         </z:index>
1891       </xslo:if>
1892     </xslo:for-each>
1893     <xslo:for-each select="marc:subfield">
1894       <xslo:if test="contains('a', @code)">
1895         <z:index name="Subject-topical:w Subject-topical:p Subject:w Subject:p">
1896           <xslo:value-of select="."/>
1897         </z:index>
1898       </xslo:if>
1899     </xslo:for-each>
1900     <xslo:for-each select="marc:subfield">
1901       <xslo:if test="contains('j', @code)">
1902         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-topical:w Subject-topical:p">
1903           <xslo:value-of select="."/>
1904         </z:index>
1905       </xslo:if>
1906     </xslo:for-each>
1907     <xslo:for-each select="marc:subfield">
1908       <xslo:if test="contains('x', @code)">
1909         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-topical:w Subject-topical:p">
1910           <xslo:value-of select="."/>
1911         </z:index>
1912       </xslo:if>
1913     </xslo:for-each>
1914     <xslo:for-each select="marc:subfield">
1915       <xslo:if test="contains('y', @code)">
1916         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-topical:w Subject-topical:p">
1917           <xslo:value-of select="."/>
1918         </z:index>
1919       </xslo:if>
1920     </xslo:for-each>
1921     <xslo:for-each select="marc:subfield">
1922       <xslo:if test="contains('z', @code)">
1923         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-topical:w Subject-topical:p">
1924           <xslo:value-of select="."/>
1925         </z:index>
1926       </xslo:if>
1927     </xslo:for-each>
1928   </xslo:template>
1929   <xslo:template mode="index_subfields" match="marc:datafield[@tag='607']">
1930     <xslo:for-each select="marc:subfield">
1931       <xslo:if test="contains('9', @code)">
1932         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1933           <xslo:value-of select="."/>
1934         </z:index>
1935       </xslo:if>
1936     </xslo:for-each>
1937     <xslo:for-each select="marc:subfield">
1938       <xslo:if test="contains('a', @code)">
1939         <z:index name="Name-geographic:w Name-geographic:p Subject-name-geographical:w Subject-name-geographical:p Subject:w Subject:p">
1940           <xslo:value-of select="."/>
1941         </z:index>
1942       </xslo:if>
1943     </xslo:for-each>
1944     <xslo:for-each select="marc:subfield">
1945       <xslo:if test="contains('j', @code)">
1946         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p Subject-name-geographical:w Subject-name-geographical:p">
1947           <xslo:value-of select="."/>
1948         </z:index>
1949       </xslo:if>
1950     </xslo:for-each>
1951     <xslo:for-each select="marc:subfield">
1952       <xslo:if test="contains('x', @code)">
1953         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p">
1954           <xslo:value-of select="."/>
1955         </z:index>
1956       </xslo:if>
1957     </xslo:for-each>
1958     <xslo:for-each select="marc:subfield">
1959       <xslo:if test="contains('y', @code)">
1960         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p">
1961           <xslo:value-of select="."/>
1962         </z:index>
1963       </xslo:if>
1964     </xslo:for-each>
1965     <xslo:for-each select="marc:subfield">
1966       <xslo:if test="contains('z', @code)">
1967         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-name-geographical:w Subject-name-geographical:p">
1968           <xslo:value-of select="."/>
1969         </z:index>
1970       </xslo:if>
1971     </xslo:for-each>
1972   </xslo:template>
1973   <xslo:template mode="index_subfields" match="marc:datafield[@tag='608']">
1974     <xslo:for-each select="marc:subfield">
1975       <xslo:if test="contains('9', @code)">
1976         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1977           <xslo:value-of select="."/>
1978         </z:index>
1979       </xslo:if>
1980     </xslo:for-each>
1981     <xslo:for-each select="marc:subfield">
1982       <xslo:if test="contains('a', @code)">
1983         <z:index name="Subject-genre-form:w Subject-genre-form:p Subject:w Subject:p">
1984           <xslo:value-of select="."/>
1985         </z:index>
1986       </xslo:if>
1987     </xslo:for-each>
1988     <xslo:for-each select="marc:subfield">
1989       <xslo:if test="contains('j', @code)">
1990         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p">
1991           <xslo:value-of select="."/>
1992         </z:index>
1993       </xslo:if>
1994     </xslo:for-each>
1995     <xslo:for-each select="marc:subfield">
1996       <xslo:if test="contains('x', @code)">
1997         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p">
1998           <xslo:value-of select="."/>
1999         </z:index>
2000       </xslo:if>
2001     </xslo:for-each>
2002     <xslo:for-each select="marc:subfield">
2003       <xslo:if test="contains('y', @code)">
2004         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p Subject-genre-form:w Subject-genre-form:p">
2005           <xslo:value-of select="."/>
2006         </z:index>
2007       </xslo:if>
2008     </xslo:for-each>
2009     <xslo:for-each select="marc:subfield">
2010       <xslo:if test="contains('z', @code)">
2011         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:p Subject-genre-form:w Subject-genre-form:p">
2012           <xslo:value-of select="."/>
2013         </z:index>
2014       </xslo:if>
2015     </xslo:for-each>
2016   </xslo:template>
2017   <xslo:template mode="index_subfields" match="marc:datafield[@tag='610']">
2018     <xslo:for-each select="marc:subfield">
2019       <xslo:if test="contains('9', @code)">
2020         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2021           <xslo:value-of select="."/>
2022         </z:index>
2023       </xslo:if>
2024     </xslo:for-each>
2025     <xslo:for-each select="marc:subfield">
2026       <xslo:if test="contains('a', @code)">
2027         <z:index name="Subject:w Subject:p">
2028           <xslo:value-of select="."/>
2029         </z:index>
2030       </xslo:if>
2031     </xslo:for-each>
2032   </xslo:template>
2033   <xslo:template mode="index_subfields" match="marc:datafield[@tag='615']">
2034     <xslo:for-each select="marc:subfield">
2035       <xslo:if test="contains('9', @code)">
2036         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2037           <xslo:value-of select="."/>
2038         </z:index>
2039       </xslo:if>
2040     </xslo:for-each>
2041     <xslo:for-each select="marc:subfield">
2042       <xslo:if test="contains('axnm', @code)">
2043         <z:index name="Subject:w Subject:p">
2044           <xslo:value-of select="."/>
2045         </z:index>
2046       </xslo:if>
2047     </xslo:for-each>
2048   </xslo:template>
2049   <xslo:template mode="index_subfields" match="marc:datafield[@tag='616']">
2050     <xslo:for-each select="marc:subfield">
2051       <xslo:if test="contains('9', @code)">
2052         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2053           <xslo:value-of select="."/>
2054         </z:index>
2055       </xslo:if>
2056     </xslo:for-each>
2057     <xslo:for-each select="marc:subfield">
2058       <xslo:if test="contains('a', @code)">
2059         <z:index name="Subject:w Subject:p">
2060           <xslo:value-of select="."/>
2061         </z:index>
2062       </xslo:if>
2063     </xslo:for-each>
2064     <xslo:for-each select="marc:subfield">
2065       <xslo:if test="contains('j', @code)">
2066         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-genre-form:w Subject-genre-form:p">
2067           <xslo:value-of select="."/>
2068         </z:index>
2069       </xslo:if>
2070     </xslo:for-each>
2071     <xslo:for-each select="marc:subfield">
2072       <xslo:if test="contains('x', @code)">
2073         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p">
2074           <xslo:value-of select="."/>
2075         </z:index>
2076       </xslo:if>
2077     </xslo:for-each>
2078     <xslo:for-each select="marc:subfield">
2079       <xslo:if test="contains('y', @code)">
2080         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-name-geographical:w Subject-name-geographical:p">
2081           <xslo:value-of select="."/>
2082         </z:index>
2083       </xslo:if>
2084     </xslo:for-each>
2085     <xslo:for-each select="marc:subfield">
2086       <xslo:if test="contains('z', @code)">
2087         <z:index name="Subject:w Subject:p Subject-subdivision:w Subject-subdivision:p Subject-chronological:w Subject-chronological:w">
2088           <xslo:value-of select="."/>
2089         </z:index>
2090       </xslo:if>
2091     </xslo:for-each>
2092   </xslo:template>
2093   <xslo:template mode="index_subfields" match="marc:datafield[@tag='617']">
2094     <xslo:for-each select="marc:subfield">
2095       <xslo:if test="contains('9', @code)">
2096         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2097           <xslo:value-of select="."/>
2098         </z:index>
2099       </xslo:if>
2100     </xslo:for-each>
2101     <xslo:for-each select="marc:subfield">
2102       <xslo:if test="contains('abcdefghiklmno', @code)">
2103         <z:index name="Subject:w Subject:p">
2104           <xslo:value-of select="."/>
2105         </z:index>
2106       </xslo:if>
2107     </xslo:for-each>
2108   </xslo:template>
2109   <xslo:template mode="index_subfields" match="marc:datafield[@tag='620']">
2110     <xslo:for-each select="marc:subfield">
2111       <xslo:if test="contains('9', @code)">
2112         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2113           <xslo:value-of select="."/>
2114         </z:index>
2115       </xslo:if>
2116     </xslo:for-each>
2117     <xslo:for-each select="marc:subfield">
2118       <xslo:if test="contains('abcdefghiklmno', @code)">
2119         <z:index name="Subject:w Subject:p">
2120           <xslo:value-of select="."/>
2121         </z:index>
2122       </xslo:if>
2123     </xslo:for-each>
2124   </xslo:template>
2125   <xslo:template mode="index_subfields" match="marc:datafield[@tag='621']">
2126     <xslo:for-each select="marc:subfield">
2127       <xslo:if test="contains('9', @code)">
2128         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2129           <xslo:value-of select="."/>
2130         </z:index>
2131       </xslo:if>
2132     </xslo:for-each>
2133     <xslo:for-each select="marc:subfield">
2134       <xslo:if test="contains('abcdefghiklmno', @code)">
2135         <z:index name="Subject:w Subject:p">
2136           <xslo:value-of select="."/>
2137         </z:index>
2138       </xslo:if>
2139     </xslo:for-each>
2140   </xslo:template>
2141   <xslo:template mode="index_subfields" match="marc:datafield[@tag='603']">
2142     <xslo:for-each select="marc:subfield">
2143       <xslo:if test="contains('9', @code)">
2144         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2145           <xslo:value-of select="."/>
2146         </z:index>
2147       </xslo:if>
2148     </xslo:for-each>
2149   </xslo:template>
2150   <xslo:template mode="index_subfields" match="marc:datafield[@tag='630']">
2151     <xslo:for-each select="marc:subfield">
2152       <xslo:if test="contains('9', @code)">
2153         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2154           <xslo:value-of select="."/>
2155         </z:index>
2156       </xslo:if>
2157     </xslo:for-each>
2158   </xslo:template>
2159   <xslo:template mode="index_subfields" match="marc:datafield[@tag='631']">
2160     <xslo:for-each select="marc:subfield">
2161       <xslo:if test="contains('9', @code)">
2162         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2163           <xslo:value-of select="."/>
2164         </z:index>
2165       </xslo:if>
2166     </xslo:for-each>
2167   </xslo:template>
2168   <xslo:template mode="index_subfields" match="marc:datafield[@tag='632']">
2169     <xslo:for-each select="marc:subfield">
2170       <xslo:if test="contains('9', @code)">
2171         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2172           <xslo:value-of select="."/>
2173         </z:index>
2174       </xslo:if>
2175     </xslo:for-each>
2176   </xslo:template>
2177   <xslo:template mode="index_subfields" match="marc:datafield[@tag='633']">
2178     <xslo:for-each select="marc:subfield">
2179       <xslo:if test="contains('9', @code)">
2180         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2181           <xslo:value-of select="."/>
2182         </z:index>
2183       </xslo:if>
2184     </xslo:for-each>
2185   </xslo:template>
2186   <xslo:template mode="index_subfields" match="marc:datafield[@tag='634']">
2187     <xslo:for-each select="marc:subfield">
2188       <xslo:if test="contains('9', @code)">
2189         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2190           <xslo:value-of select="."/>
2191         </z:index>
2192       </xslo:if>
2193     </xslo:for-each>
2194   </xslo:template>
2195   <xslo:template mode="index_subfields" match="marc:datafield[@tag='635']">
2196     <xslo:for-each select="marc:subfield">
2197       <xslo:if test="contains('9', @code)">
2198         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2199           <xslo:value-of select="."/>
2200         </z:index>
2201       </xslo:if>
2202     </xslo:for-each>
2203   </xslo:template>
2204   <xslo:template mode="index_subfields" match="marc:datafield[@tag='636']">
2205     <xslo:for-each select="marc:subfield">
2206       <xslo:if test="contains('9', @code)">
2207         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2208           <xslo:value-of select="."/>
2209         </z:index>
2210       </xslo:if>
2211     </xslo:for-each>
2212   </xslo:template>
2213   <xslo:template mode="index_subfields" match="marc:datafield[@tag='660']">
2214     <xslo:for-each select="marc:subfield">
2215       <xslo:if test="contains('a', @code)">
2216         <z:index name="Subject:w Subject:p">
2217           <xslo:value-of select="."/>
2218         </z:index>
2219       </xslo:if>
2220     </xslo:for-each>
2221   </xslo:template>
2222   <xslo:template mode="index_subfields" match="marc:datafield[@tag='661']">
2223     <xslo:for-each select="marc:subfield">
2224       <xslo:if test="contains('a', @code)">
2225         <z:index name="Subject:w Subject:p">
2226           <xslo:value-of select="."/>
2227         </z:index>
2228       </xslo:if>
2229     </xslo:for-each>
2230   </xslo:template>
2231   <xslo:template mode="index_subfields" match="marc:datafield[@tag='675']">
2232     <xslo:for-each select="marc:subfield">
2233       <xslo:if test="contains('a', @code)">
2234         <z:index name="UDC-classification:w UDC-classification:p UDC-classification:s">
2235           <xslo:value-of select="."/>
2236         </z:index>
2237       </xslo:if>
2238     </xslo:for-each>
2239   </xslo:template>
2240   <xslo:template mode="index_subfields" match="marc:datafield[@tag='676']">
2241     <xslo:for-each select="marc:subfield">
2242       <xslo:if test="contains('a', @code)">
2243         <z:index name="Dewey-classification:w Dewey-classification:p Dewey-classification:s">
2244           <xslo:value-of select="."/>
2245         </z:index>
2246       </xslo:if>
2247     </xslo:for-each>
2248   </xslo:template>
2249   <xslo:template mode="index_subfields" match="marc:datafield[@tag='680']">
2250     <xslo:for-each select="marc:subfield">
2251       <xslo:if test="contains('b', @code)">
2252         <z:index name="LC-call-number:s">
2253           <xslo:value-of select="."/>
2254         </z:index>
2255       </xslo:if>
2256     </xslo:for-each>
2257   </xslo:template>
2258   <xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
2259     <xslo:for-each select="marc:subfield">
2260       <xslo:if test="contains('0', @code)">
2261         <z:index name="totalissues:n totalissues:s">
2262           <xslo:value-of select="."/>
2263         </z:index>
2264       </xslo:if>
2265     </xslo:for-each>
2266   </xslo:template>
2267   <xslo:template mode="index_data_field" match="marc:datafield[@tag='700']">
2268     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
2269       <xslo:variable name="raw_heading">
2270         <xslo:for-each select="marc:subfield">
2271           <xslo:if test="position() &gt; 1">
2272             <xslo:value-of select="substring(' ', 1, 1)"/>
2273           </xslo:if>
2274           <xslo:value-of select="."/>
2275         </xslo:for-each>
2276       </xslo:variable>
2277       <xslo:value-of select="normalize-space($raw_heading)"/>
2278     </z:index>
2279   </xslo:template>
2280   <xslo:template mode="index_data_field" match="marc:datafield[@tag='701']">
2281     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
2282       <xslo:variable name="raw_heading">
2283         <xslo:for-each select="marc:subfield">
2284           <xslo:if test="position() &gt; 1">
2285             <xslo:value-of select="substring(' ', 1, 1)"/>
2286           </xslo:if>
2287           <xslo:value-of select="."/>
2288         </xslo:for-each>
2289       </xslo:variable>
2290       <xslo:value-of select="normalize-space($raw_heading)"/>
2291     </z:index>
2292   </xslo:template>
2293   <xslo:template mode="index_data_field" match="marc:datafield[@tag='702']">
2294     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
2295       <xslo:variable name="raw_heading">
2296         <xslo:for-each select="marc:subfield">
2297           <xslo:if test="position() &gt; 1">
2298             <xslo:value-of select="substring(' ', 1, 1)"/>
2299           </xslo:if>
2300           <xslo:value-of select="."/>
2301         </xslo:for-each>
2302       </xslo:variable>
2303       <xslo:value-of select="normalize-space($raw_heading)"/>
2304     </z:index>
2305   </xslo:template>
2306   <xslo:template mode="index_data_field" match="marc:datafield[@tag='710']">
2307     <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">
2308       <xslo:variable name="raw_heading">
2309         <xslo:for-each select="marc:subfield">
2310           <xslo:if test="position() &gt; 1">
2311             <xslo:value-of select="substring(' ', 1, 1)"/>
2312           </xslo:if>
2313           <xslo:value-of select="."/>
2314         </xslo:for-each>
2315       </xslo:variable>
2316       <xslo:value-of select="normalize-space($raw_heading)"/>
2317     </z:index>
2318   </xslo:template>
2319   <xslo:template mode="index_data_field" match="marc:datafield[@tag='711']">
2320     <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">
2321       <xslo:variable name="raw_heading">
2322         <xslo:for-each select="marc:subfield">
2323           <xslo:if test="position() &gt; 1">
2324             <xslo:value-of select="substring(' ', 1, 1)"/>
2325           </xslo:if>
2326           <xslo:value-of select="."/>
2327         </xslo:for-each>
2328       </xslo:variable>
2329       <xslo:value-of select="normalize-space($raw_heading)"/>
2330     </z:index>
2331   </xslo:template>
2332   <xslo:template mode="index_data_field" match="marc:datafield[@tag='712']">
2333     <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">
2334       <xslo:variable name="raw_heading">
2335         <xslo:for-each select="marc:subfield">
2336           <xslo:if test="position() &gt; 1">
2337             <xslo:value-of select="substring(' ', 1, 1)"/>
2338           </xslo:if>
2339           <xslo:value-of select="."/>
2340         </xslo:for-each>
2341       </xslo:variable>
2342       <xslo:value-of select="normalize-space($raw_heading)"/>
2343     </z:index>
2344   </xslo:template>
2345   <xslo:template mode="index_data_field" match="marc:datafield[@tag='716']">
2346     <z:index name="Author:w Author:p">
2347       <xslo:variable name="raw_heading">
2348         <xslo:for-each select="marc:subfield">
2349           <xslo:if test="position() &gt; 1">
2350             <xslo:value-of select="substring(' ', 1, 1)"/>
2351           </xslo:if>
2352           <xslo:value-of select="."/>
2353         </xslo:for-each>
2354       </xslo:variable>
2355       <xslo:value-of select="normalize-space($raw_heading)"/>
2356     </z:index>
2357   </xslo:template>
2358   <xslo:template mode="index_data_field" match="marc:datafield[@tag='720']">
2359     <z:index name="Author:w Author:p">
2360       <xslo:variable name="raw_heading">
2361         <xslo:for-each select="marc:subfield">
2362           <xslo:if test="position() &gt; 1">
2363             <xslo:value-of select="substring(' ', 1, 1)"/>
2364           </xslo:if>
2365           <xslo:value-of select="."/>
2366         </xslo:for-each>
2367       </xslo:variable>
2368       <xslo:value-of select="normalize-space($raw_heading)"/>
2369     </z:index>
2370   </xslo:template>
2371   <xslo:template mode="index_data_field" match="marc:datafield[@tag='721']">
2372     <z:index name="Author:w Author:p">
2373       <xslo:variable name="raw_heading">
2374         <xslo:for-each select="marc:subfield">
2375           <xslo:if test="position() &gt; 1">
2376             <xslo:value-of select="substring(' ', 1, 1)"/>
2377           </xslo:if>
2378           <xslo:value-of select="."/>
2379         </xslo:for-each>
2380       </xslo:variable>
2381       <xslo:value-of select="normalize-space($raw_heading)"/>
2382     </z:index>
2383   </xslo:template>
2384   <xslo:template mode="index_data_field" match="marc:datafield[@tag='722']">
2385     <z:index name="Author:w Author:p">
2386       <xslo:variable name="raw_heading">
2387         <xslo:for-each select="marc:subfield">
2388           <xslo:if test="position() &gt; 1">
2389             <xslo:value-of select="substring(' ', 1, 1)"/>
2390           </xslo:if>
2391           <xslo:value-of select="."/>
2392         </xslo:for-each>
2393       </xslo:variable>
2394       <xslo:value-of select="normalize-space($raw_heading)"/>
2395     </z:index>
2396   </xslo:template>
2397   <xslo:template mode="index_data_field" match="marc:datafield[@tag='730']">
2398     <z:index name="Author:w Author:p">
2399       <xslo:variable name="raw_heading">
2400         <xslo:for-each select="marc:subfield">
2401           <xslo:if test="position() &gt; 1">
2402             <xslo:value-of select="substring(' ', 1, 1)"/>
2403           </xslo:if>
2404           <xslo:value-of select="."/>
2405         </xslo:for-each>
2406       </xslo:variable>
2407       <xslo:value-of select="normalize-space($raw_heading)"/>
2408     </z:index>
2409   </xslo:template>
2410   <xslo:template mode="index_data_field" match="marc:datafield[@tag='205']">
2411     <z:index name="Title:w Title:p">
2412       <xslo:variable name="raw_heading">
2413         <xslo:for-each select="marc:subfield">
2414           <xslo:if test="position() &gt; 1">
2415             <xslo:value-of select="substring(' ', 1, 1)"/>
2416           </xslo:if>
2417           <xslo:value-of select="."/>
2418         </xslo:for-each>
2419       </xslo:variable>
2420       <xslo:value-of select="normalize-space($raw_heading)"/>
2421     </z:index>
2422   </xslo:template>
2423   <xslo:template mode="index_data_field" match="marc:datafield[@tag='500']">
2424     <z:index name="Title:w Title:p">
2425       <xslo:variable name="raw_heading">
2426         <xslo:for-each select="marc:subfield">
2427           <xslo:if test="position() &gt; 1">
2428             <xslo:value-of select="substring(' ', 1, 1)"/>
2429           </xslo:if>
2430           <xslo:value-of select="."/>
2431         </xslo:for-each>
2432       </xslo:variable>
2433       <xslo:value-of select="normalize-space($raw_heading)"/>
2434     </z:index>
2435   </xslo:template>
2436   <xslo:template mode="index_data_field" match="marc:datafield[@tag='501']">
2437     <z:index name="Title:w Title:p">
2438       <xslo:variable name="raw_heading">
2439         <xslo:for-each select="marc:subfield">
2440           <xslo:if test="position() &gt; 1">
2441             <xslo:value-of select="substring(' ', 1, 1)"/>
2442           </xslo:if>
2443           <xslo:value-of select="."/>
2444         </xslo:for-each>
2445       </xslo:variable>
2446       <xslo:value-of select="normalize-space($raw_heading)"/>
2447     </z:index>
2448   </xslo:template>
2449   <xslo:template mode="index_data_field" match="marc:datafield[@tag='503']">
2450     <z:index name="Title:w Title:p">
2451       <xslo:variable name="raw_heading">
2452         <xslo:for-each select="marc:subfield">
2453           <xslo:if test="position() &gt; 1">
2454             <xslo:value-of select="substring(' ', 1, 1)"/>
2455           </xslo:if>
2456           <xslo:value-of select="."/>
2457         </xslo:for-each>
2458       </xslo:variable>
2459       <xslo:value-of select="normalize-space($raw_heading)"/>
2460     </z:index>
2461   </xslo:template>
2462   <xslo:template mode="index_data_field" match="marc:datafield[@tag='510']">
2463     <z:index name="Title:w Title:p">
2464       <xslo:variable name="raw_heading">
2465         <xslo:for-each select="marc:subfield">
2466           <xslo:if test="position() &gt; 1">
2467             <xslo:value-of select="substring(' ', 1, 1)"/>
2468           </xslo:if>
2469           <xslo:value-of select="."/>
2470         </xslo:for-each>
2471       </xslo:variable>
2472       <xslo:value-of select="normalize-space($raw_heading)"/>
2473     </z:index>
2474   </xslo:template>
2475   <xslo:template mode="index_data_field" match="marc:datafield[@tag='512']">
2476     <z:index name="Title:w Title:p">
2477       <xslo:variable name="raw_heading">
2478         <xslo:for-each select="marc:subfield">
2479           <xslo:if test="position() &gt; 1">
2480             <xslo:value-of select="substring(' ', 1, 1)"/>
2481           </xslo:if>
2482           <xslo:value-of select="."/>
2483         </xslo:for-each>
2484       </xslo:variable>
2485       <xslo:value-of select="normalize-space($raw_heading)"/>
2486     </z:index>
2487   </xslo:template>
2488   <xslo:template mode="index_data_field" match="marc:datafield[@tag='513']">
2489     <z:index name="Title:w Title:p">
2490       <xslo:variable name="raw_heading">
2491         <xslo:for-each select="marc:subfield">
2492           <xslo:if test="position() &gt; 1">
2493             <xslo:value-of select="substring(' ', 1, 1)"/>
2494           </xslo:if>
2495           <xslo:value-of select="."/>
2496         </xslo:for-each>
2497       </xslo:variable>
2498       <xslo:value-of select="normalize-space($raw_heading)"/>
2499     </z:index>
2500   </xslo:template>
2501   <xslo:template mode="index_data_field" match="marc:datafield[@tag='514']">
2502     <z:index name="Title:w Title:p">
2503       <xslo:variable name="raw_heading">
2504         <xslo:for-each select="marc:subfield">
2505           <xslo:if test="position() &gt; 1">
2506             <xslo:value-of select="substring(' ', 1, 1)"/>
2507           </xslo:if>
2508           <xslo:value-of select="."/>
2509         </xslo:for-each>
2510       </xslo:variable>
2511       <xslo:value-of select="normalize-space($raw_heading)"/>
2512     </z:index>
2513   </xslo:template>
2514   <xslo:template mode="index_data_field" match="marc:datafield[@tag='515']">
2515     <z:index name="Title:w Title:p">
2516       <xslo:variable name="raw_heading">
2517         <xslo:for-each select="marc:subfield">
2518           <xslo:if test="position() &gt; 1">
2519             <xslo:value-of select="substring(' ', 1, 1)"/>
2520           </xslo:if>
2521           <xslo:value-of select="."/>
2522         </xslo:for-each>
2523       </xslo:variable>
2524       <xslo:value-of select="normalize-space($raw_heading)"/>
2525     </z:index>
2526   </xslo:template>
2527   <xslo:template mode="index_data_field" match="marc:datafield[@tag='516']">
2528     <z:index name="Title:w Title:p">
2529       <xslo:variable name="raw_heading">
2530         <xslo:for-each select="marc:subfield">
2531           <xslo:if test="position() &gt; 1">
2532             <xslo:value-of select="substring(' ', 1, 1)"/>
2533           </xslo:if>
2534           <xslo:value-of select="."/>
2535         </xslo:for-each>
2536       </xslo:variable>
2537       <xslo:value-of select="normalize-space($raw_heading)"/>
2538     </z:index>
2539   </xslo:template>
2540   <xslo:template mode="index_data_field" match="marc:datafield[@tag='517']">
2541     <z:index name="Title:w Title:p">
2542       <xslo:variable name="raw_heading">
2543         <xslo:for-each select="marc:subfield">
2544           <xslo:if test="position() &gt; 1">
2545             <xslo:value-of select="substring(' ', 1, 1)"/>
2546           </xslo:if>
2547           <xslo:value-of select="."/>
2548         </xslo:for-each>
2549       </xslo:variable>
2550       <xslo:value-of select="normalize-space($raw_heading)"/>
2551     </z:index>
2552   </xslo:template>
2553   <xslo:template mode="index_data_field" match="marc:datafield[@tag='518']">
2554     <z:index name="Title:w Title:p">
2555       <xslo:variable name="raw_heading">
2556         <xslo:for-each select="marc:subfield">
2557           <xslo:if test="position() &gt; 1">
2558             <xslo:value-of select="substring(' ', 1, 1)"/>
2559           </xslo:if>
2560           <xslo:value-of select="."/>
2561         </xslo:for-each>
2562       </xslo:variable>
2563       <xslo:value-of select="normalize-space($raw_heading)"/>
2564     </z:index>
2565   </xslo:template>
2566   <xslo:template mode="index_data_field" match="marc:datafield[@tag='519']">
2567     <z:index name="Title:w Title:p">
2568       <xslo:variable name="raw_heading">
2569         <xslo:for-each select="marc:subfield">
2570           <xslo:if test="position() &gt; 1">
2571             <xslo:value-of select="substring(' ', 1, 1)"/>
2572           </xslo:if>
2573           <xslo:value-of select="."/>
2574         </xslo:for-each>
2575       </xslo:variable>
2576       <xslo:value-of select="normalize-space($raw_heading)"/>
2577     </z:index>
2578   </xslo:template>
2579   <xslo:template mode="index_data_field" match="marc:datafield[@tag='520']">
2580     <z:index name="Title:w Title:p">
2581       <xslo:variable name="raw_heading">
2582         <xslo:for-each select="marc:subfield">
2583           <xslo:if test="position() &gt; 1">
2584             <xslo:value-of select="substring(' ', 1, 1)"/>
2585           </xslo:if>
2586           <xslo:value-of select="."/>
2587         </xslo:for-each>
2588       </xslo:variable>
2589       <xslo:value-of select="normalize-space($raw_heading)"/>
2590     </z:index>
2591   </xslo:template>
2592   <xslo:template mode="index_data_field" match="marc:datafield[@tag='530']">
2593     <z:index name="Title:w Title:p">
2594       <xslo:variable name="raw_heading">
2595         <xslo:for-each select="marc:subfield">
2596           <xslo:if test="position() &gt; 1">
2597             <xslo:value-of select="substring(' ', 1, 1)"/>
2598           </xslo:if>
2599           <xslo:value-of select="."/>
2600         </xslo:for-each>
2601       </xslo:variable>
2602       <xslo:value-of select="normalize-space($raw_heading)"/>
2603     </z:index>
2604   </xslo:template>
2605   <xslo:template mode="index_data_field" match="marc:datafield[@tag='531']">
2606     <z:index name="Title:w Title:p">
2607       <xslo:variable name="raw_heading">
2608         <xslo:for-each select="marc:subfield">
2609           <xslo:if test="position() &gt; 1">
2610             <xslo:value-of select="substring(' ', 1, 1)"/>
2611           </xslo:if>
2612           <xslo:value-of select="."/>
2613         </xslo:for-each>
2614       </xslo:variable>
2615       <xslo:value-of select="normalize-space($raw_heading)"/>
2616     </z:index>
2617   </xslo:template>
2618   <xslo:template mode="index_data_field" match="marc:datafield[@tag='532']">
2619     <z:index name="Title:w Title:p">
2620       <xslo:variable name="raw_heading">
2621         <xslo:for-each select="marc:subfield">
2622           <xslo:if test="position() &gt; 1">
2623             <xslo:value-of select="substring(' ', 1, 1)"/>
2624           </xslo:if>
2625           <xslo:value-of select="."/>
2626         </xslo:for-each>
2627       </xslo:variable>
2628       <xslo:value-of select="normalize-space($raw_heading)"/>
2629     </z:index>
2630   </xslo:template>
2631   <xslo:template mode="index_data_field" match="marc:datafield[@tag='540']">
2632     <z:index name="Title:w Title:p">
2633       <xslo:variable name="raw_heading">
2634         <xslo:for-each select="marc:subfield">
2635           <xslo:if test="position() &gt; 1">
2636             <xslo:value-of select="substring(' ', 1, 1)"/>
2637           </xslo:if>
2638           <xslo:value-of select="."/>
2639         </xslo:for-each>
2640       </xslo:variable>
2641       <xslo:value-of select="normalize-space($raw_heading)"/>
2642     </z:index>
2643   </xslo:template>
2644   <xslo:template mode="index_data_field" match="marc:datafield[@tag='541']">
2645     <z:index name="Title:w Title:p">
2646       <xslo:variable name="raw_heading">
2647         <xslo:for-each select="marc:subfield">
2648           <xslo:if test="position() &gt; 1">
2649             <xslo:value-of select="substring(' ', 1, 1)"/>
2650           </xslo:if>
2651           <xslo:value-of select="."/>
2652         </xslo:for-each>
2653       </xslo:variable>
2654       <xslo:value-of select="normalize-space($raw_heading)"/>
2655     </z:index>
2656   </xslo:template>
2657   <xslo:template mode="index_data_field" match="marc:datafield[@tag='545']">
2658     <z:index name="Title:w Title:p">
2659       <xslo:variable name="raw_heading">
2660         <xslo:for-each select="marc:subfield">
2661           <xslo:if test="position() &gt; 1">
2662             <xslo:value-of select="substring(' ', 1, 1)"/>
2663           </xslo:if>
2664           <xslo:value-of select="."/>
2665         </xslo:for-each>
2666       </xslo:variable>
2667       <xslo:value-of select="normalize-space($raw_heading)"/>
2668     </z:index>
2669   </xslo:template>
2670   <xslo:template mode="index_data_field" match="marc:datafield[@tag='560']">
2671     <z:index name="Title:w Title:p">
2672       <xslo:variable name="raw_heading">
2673         <xslo:for-each select="marc:subfield">
2674           <xslo:if test="position() &gt; 1">
2675             <xslo:value-of select="substring(' ', 1, 1)"/>
2676           </xslo:if>
2677           <xslo:value-of select="."/>
2678         </xslo:for-each>
2679       </xslo:variable>
2680       <xslo:value-of select="normalize-space($raw_heading)"/>
2681     </z:index>
2682   </xslo:template>
2683   <xslo:template mode="index_data_field" match="marc:datafield[@tag='670']">
2684     <z:index name="Subject-precis:w Subject-precis:p">
2685       <xslo:variable name="raw_heading">
2686         <xslo:for-each select="marc:subfield">
2687           <xslo:if test="position() &gt; 1">
2688             <xslo:value-of select="substring(' ', 1, 1)"/>
2689           </xslo:if>
2690           <xslo:value-of select="."/>
2691         </xslo:for-each>
2692       </xslo:variable>
2693       <xslo:value-of select="normalize-space($raw_heading)"/>
2694     </z:index>
2695   </xslo:template>
2696   <xslo:template mode="index_data_field" match="marc:datafield[@tag='680']">
2697     <z:index name="LC-call-number:w LC-call-number:p">
2698       <xslo:variable name="raw_heading">
2699         <xslo:for-each select="marc:subfield">
2700           <xslo:if test="position() &gt; 1">
2701             <xslo:value-of select="substring(' ', 1, 1)"/>
2702           </xslo:if>
2703           <xslo:value-of select="."/>
2704         </xslo:for-each>
2705       </xslo:variable>
2706       <xslo:value-of select="normalize-space($raw_heading)"/>
2707     </z:index>
2708   </xslo:template>
2709   <xslo:template mode="index_data_field" match="marc:datafield[@tag='686']">
2710     <z:index name="Local-classification:w Local-classification:p">
2711       <xslo:variable name="raw_heading">
2712         <xslo:for-each select="marc:subfield">
2713           <xslo:if test="position() &gt; 1">
2714             <xslo:value-of select="substring(' ', 1, 1)"/>
2715           </xslo:if>
2716           <xslo:value-of select="."/>
2717         </xslo:for-each>
2718       </xslo:variable>
2719       <xslo:value-of select="normalize-space($raw_heading)"/>
2720     </z:index>
2721   </xslo:template>
2722   <xslo:template mode="index_data_field" match="marc:datafield[@tag='995']">
2723     <z:index name="item:w">
2724       <xslo:variable name="raw_heading">
2725         <xslo:for-each select="marc:subfield">
2726           <xslo:if test="position() &gt; 1">
2727             <xslo:value-of select="substring(' ', 1, 1)"/>
2728           </xslo:if>
2729           <xslo:value-of select="."/>
2730         </xslo:for-each>
2731       </xslo:variable>
2732       <xslo:value-of select="normalize-space($raw_heading)"/>
2733     </z:index>
2734   </xslo:template>
2735   <xslo:template mode="index_facets" match="marc:datafield[@tag='225']">
2736     <xslo:if test="not(@ind1='z')">
2737       <z:index name="se:0">
2738         <xslo:value-of select="marc:subfield[@code='a']"/>
2739       </z:index>
2740     </xslo:if>
2741   </xslo:template>
2742   <xslo:template mode="index_facets" match="marc:datafield[@tag='500']">
2743     <xslo:if test="not(@ind1='z')">
2744       <z:index name="su-ut:0">
2745         <xslo:value-of select="marc:subfield[@code='a']"/>
2746       </z:index>
2747     </xslo:if>
2748   </xslo:template>
2749   <xslo:template mode="index_facets" match="marc:datafield[@tag='501']">
2750     <xslo:if test="not(@ind1='z')">
2751       <z:index name="su-ut:0">
2752         <xslo:value-of select="marc:subfield[@code='a']"/>
2753       </z:index>
2754     </xslo:if>
2755   </xslo:template>
2756   <xslo:template mode="index_facets" match="marc:datafield[@tag='503']">
2757     <xslo:if test="not(@ind1='z')">
2758       <z:index name="su-ut:0">
2759         <xslo:value-of select="marc:subfield[@code='a']"/>
2760       </z:index>
2761     </xslo:if>
2762   </xslo:template>
2763   <xslo:template mode="index_facets" match="marc:datafield[@tag='600']">
2764     <xslo:if test="not(@ind1='z')">
2765       <z:index name="su-to:0">
2766         <xslo:value-of select="marc:subfield[@code='a']"/>
2767         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2768           <xslo:text>&lt;*&gt;</xslo:text>
2769         </xslo:if>
2770         <xslo:value-of select="marc:subfield[@code='b']"/>
2771       </z:index>
2772     </xslo:if>
2773   </xslo:template>
2774   <xslo:template mode="index_facets" match="marc:datafield[@tag='601']">
2775     <xslo:if test="not(@ind1='z')">
2776       <z:index name="su-to:0">
2777         <xslo:value-of select="marc:subfield[@code='a']"/>
2778         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2779           <xslo:text>&lt;*&gt;</xslo:text>
2780         </xslo:if>
2781         <xslo:value-of select="marc:subfield[@code='b']"/>
2782       </z:index>
2783     </xslo:if>
2784   </xslo:template>
2785   <xslo:template mode="index_facets" match="marc:datafield[@tag='602']">
2786     <xslo:if test="not(@ind1='z')">
2787       <z:index name="su-to:0">
2788         <xslo:value-of select="marc:subfield[@code='a']"/>
2789       </z:index>
2790     </xslo:if>
2791   </xslo:template>
2792   <xslo:template mode="index_facets" match="marc:datafield[@tag='604']">
2793     <xslo:if test="not(@ind1='z')">
2794       <z:index name="su-to:0">
2795         <xslo:value-of select="marc:subfield[@code='a']"/>
2796         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='t']">
2797           <xslo:text>&lt;*&gt;</xslo:text>
2798         </xslo:if>
2799         <xslo:value-of select="marc:subfield[@code='t']"/>
2800       </z:index>
2801     </xslo:if>
2802   </xslo:template>
2803   <xslo:template mode="index_facets" match="marc:datafield[@tag='605']">
2804     <xslo:if test="not(@ind1='z')">
2805       <z:index name="su-to:0">
2806         <xslo:value-of select="marc:subfield[@code='a']"/>
2807       </z:index>
2808     </xslo:if>
2809   </xslo:template>
2810   <xslo:template mode="index_facets" match="marc:datafield[@tag='606']">
2811     <xslo:if test="not(@ind1='z')">
2812       <z:index name="su-to:0">
2813         <xslo:value-of select="marc:subfield[@code='a']"/>
2814         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='x']">
2815           <xslo:text>&lt;*&gt;</xslo:text>
2816         </xslo:if>
2817         <xslo:value-of select="marc:subfield[@code='x']"/>
2818       </z:index>
2819     </xslo:if>
2820   </xslo:template>
2821   <xslo:template mode="index_facets" match="marc:datafield[@tag='607']">
2822     <xslo:if test="not(@ind1='z')">
2823       <z:index name="su-geo:0">
2824         <xslo:value-of select="marc:subfield[@code='a']"/>
2825       </z:index>
2826     </xslo:if>
2827   </xslo:template>
2828   <xslo:template mode="index_facets" match="marc:datafield[@tag='610']">
2829     <xslo:if test="not(@ind1='z')">
2830       <z:index name="su-to:0">
2831         <xslo:value-of select="marc:subfield[@code='a']"/>
2832       </z:index>
2833     </xslo:if>
2834   </xslo:template>
2835   <xslo:template mode="index_facets" match="marc:datafield[@tag='700']">
2836     <xslo:if test="not(@ind1='z')">
2837       <z:index name="au:0">
2838         <xslo:value-of select="marc:subfield[@code='a']"/>
2839         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2840           <xslo:text>&lt;*&gt;</xslo:text>
2841         </xslo:if>
2842         <xslo:value-of select="marc:subfield[@code='b']"/>
2843       </z:index>
2844     </xslo:if>
2845   </xslo:template>
2846   <xslo:template mode="index_facets" match="marc:datafield[@tag='701']">
2847     <xslo:if test="not(@ind1='z')">
2848       <z:index name="au:0">
2849         <xslo:value-of select="marc:subfield[@code='a']"/>
2850         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2851           <xslo:text>&lt;*&gt;</xslo:text>
2852         </xslo:if>
2853         <xslo:value-of select="marc:subfield[@code='b']"/>
2854       </z:index>
2855     </xslo:if>
2856   </xslo:template>
2857   <xslo:template mode="index_facets" match="marc:datafield[@tag='702']">
2858     <xslo:if test="not(@ind1='z')">
2859       <z:index name="au:0">
2860         <xslo:value-of select="marc:subfield[@code='a']"/>
2861         <xslo:if test="marc:subfield[@code='a'] and marc:subfield[@code='b']">
2862           <xslo:text>&lt;*&gt;</xslo:text>
2863         </xslo:if>
2864         <xslo:value-of select="marc:subfield[@code='b']"/>
2865       </z:index>
2866     </xslo:if>
2867   </xslo:template>
2868   <xslo:template mode="index_facets" match="marc:datafield[@tag='995']">
2869     <xslo:if test="not(@ind1='z')">
2870       <z:index name="homebranch:0">
2871         <xslo:value-of select="marc:subfield[@code='a']"/>
2872       </z:index>
2873       <z:index name="holdingbranch:0">
2874         <xslo:value-of select="marc:subfield[@code='b']"/>
2875       </z:index>
2876       <z:index name="location:0">
2877         <xslo:value-of select="marc:subfield[@code='e']"/>
2878       </z:index>
2879     </xslo:if>
2880   </xslo:template>
2881   <xslo:template mode="index_all" match="text()">
2882     <z:index name="Any:w Any:p">
2883       <xslo:value-of select="."/>
2884     </z:index>
2885   </xslo:template>
2886   <xslo:template name="chopPunctuation">
2887     <xslo:param name="chopString"/>
2888     <xslo:variable name="length" select="string-length($chopString)"/>
2889     <xslo:choose>
2890       <xslo:when test="$length=0"/>
2891       <xslo:when test="contains('-,.:=;!%/', substring($chopString,$length,1))">
2892         <xslo:call-template name="chopPunctuation">
2893           <xslo:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
2894         </xslo:call-template>
2895       </xslo:when>
2896       <xslo:when test="not($chopString)"/>
2897       <xslo:otherwise>
2898         <xslo:value-of select="$chopString"/>
2899       </xslo:otherwise>
2900     </xslo:choose>
2901     <xslo:text/>
2902   </xslo:template>
2903 </xslo:stylesheet>