Bug 9830: Fix some indexes in UNIMARC item indexing
[koha-ffzg.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_heading"/>
16   <xslo:template match="text()" mode="index_heading_conditional"/>
17   <xslo:template match="text()" mode="index_match_heading"/>
18   <xslo:template match="text()" mode="index_subject_thesaurus"/>
19   <xslo:template match="/">
20     <xslo:if test="marc:collection">
21       <collection>
22         <xslo:apply-templates select="marc:collection/marc:record"/>
23       </collection>
24     </xslo:if>
25     <xslo:if test="marc:record">
26       <xslo:apply-templates select="marc:record"/>
27     </xslo:if>
28   </xslo:template>
29   <xslo:template match="marc:record">
30     <xslo:variable name="idfield" select="normalize-space(marc:controlfield[@tag='001'])"/>
31     <z:record type="update">
32       <xslo:attribute name="z:id">
33         <xslo:value-of select="$idfield"/>
34       </xslo:attribute>
35       <xslo:apply-templates/>
36       <xslo:apply-templates mode="index_subfields"/>
37       <xslo:apply-templates mode="index_data_field"/>
38       <xslo:apply-templates mode="index_heading"/>
39       <xslo:apply-templates mode="index_heading_conditional"/>
40       <xslo:apply-templates mode="index_match_heading"/>
41       <xslo:apply-templates mode="index_subject_thesaurus"/>
42       <xslo:apply-templates mode="index_all"/>
43     </z:record>
44   </xslo:template>
45   <xslo:template match="marc:controlfield[@tag='001']">
46     <z:index name="Local-number:w">
47       <xslo:value-of select="."/>
48     </z:index>
49     <z:index name="Local-number:n">
50       <xslo:value-of select="."/>
51     </z:index>
52   </xslo:template>
53   <xslo:template match="marc:controlfield[@tag='009']">
54     <z:index name="Identifier-standard:w">
55       <xslo:value-of select="."/>
56     </z:index>
57     <z:index name="Identifier-standard:n">
58       <xslo:value-of select="."/>
59     </z:index>
60   </xslo:template>
61   <xslo:template mode="index_subfields" match="marc:datafield[@tag='090']">
62     <xslo:for-each select="marc:subfield">
63       <xslo:if test="contains('9', @code)">
64         <z:index name="Local-number:w Local-number:n">
65           <xslo:value-of select="."/>
66         </z:index>
67       </xslo:if>
68     </xslo:for-each>
69   </xslo:template>
70   <xslo:template mode="index_subfields" match="marc:datafield[@tag='099']">
71     <xslo:for-each select="marc:subfield">
72       <xslo:if test="contains('c', @code)">
73         <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">
74           <xslo:value-of select="."/>
75         </z:index>
76       </xslo:if>
77     </xslo:for-each>
78     <xslo:for-each select="marc:subfield">
79       <xslo:if test="contains('d', @code)">
80         <z:index name="Date/time-last-modified:s Date/time-last-modified:n Date/time-last-modified:y">
81           <xslo:value-of select="."/>
82         </z:index>
83       </xslo:if>
84     </xslo:for-each>
85     <xslo:for-each select="marc:subfield">
86       <xslo:if test="contains('t', @code)">
87         <z:index name="ccode:w">
88           <xslo:value-of select="."/>
89         </z:index>
90       </xslo:if>
91     </xslo:for-each>
92   </xslo:template>
93   <xslo:template mode="index_subfields" match="marc:datafield[@tag='010']">
94     <xslo:for-each select="marc:subfield">
95       <xslo:if test="contains('a', @code)">
96         <z:index name="ISBN:w">
97           <xslo:value-of select="."/>
98         </z:index>
99       </xslo:if>
100     </xslo:for-each>
101     <xslo:for-each select="marc:subfield">
102       <xslo:if test="contains('z', @code)">
103         <z:index name="ISBN:w Identifier-standard:w">
104           <xslo:value-of select="."/>
105         </z:index>
106       </xslo:if>
107     </xslo:for-each>
108   </xslo:template>
109   <xslo:template mode="index_subfields" match="marc:datafield[@tag='011']">
110     <xslo:for-each select="marc:subfield">
111       <xslo:if test="contains('a', @code)">
112         <z:index name="ISSN:w Identifier-standard:w">
113           <xslo:value-of select="."/>
114         </z:index>
115       </xslo:if>
116     </xslo:for-each>
117     <xslo:for-each select="marc:subfield">
118       <xslo:if test="contains('y', @code)">
119         <z:index name="ISSN:w Identifier-standard:w">
120           <xslo:value-of select="."/>
121         </z:index>
122       </xslo:if>
123     </xslo:for-each>
124     <xslo:for-each select="marc:subfield">
125       <xslo:if test="contains('z', @code)">
126         <z:index name="ISSN:w Identifier-standard:w">
127           <xslo:value-of select="."/>
128         </z:index>
129       </xslo:if>
130     </xslo:for-each>
131     <xslo:for-each select="marc:subfield">
132       <xslo:if test="contains('f', @code)">
133         <z:index name="Identifier-standard:w">
134           <xslo:value-of select="."/>
135         </z:index>
136       </xslo:if>
137     </xslo:for-each>
138     <xslo:for-each select="marc:subfield">
139       <xslo:if test="contains('g', @code)">
140         <z:index name="Identifier-standard:w">
141           <xslo:value-of select="."/>
142         </z:index>
143       </xslo:if>
144     </xslo:for-each>
145   </xslo:template>
146   <xslo:template mode="index_subfields" match="marc:datafield[@tag='012']">
147     <xslo:for-each select="marc:subfield">
148       <xslo:if test="contains('a', @code)">
149         <z:index name="Identifier-standard:w">
150           <xslo:value-of select="."/>
151         </z:index>
152       </xslo:if>
153     </xslo:for-each>
154   </xslo:template>
155   <xslo:template mode="index_subfields" match="marc:datafield[@tag='013']">
156     <xslo:for-each select="marc:subfield">
157       <xslo:if test="contains('a', @code)">
158         <z:index name="Identifier-standard:w">
159           <xslo:value-of select="."/>
160         </z:index>
161       </xslo:if>
162     </xslo:for-each>
163     <xslo:for-each select="marc:subfield">
164       <xslo:if test="contains('z', @code)">
165         <z:index name="Identifier-standard:w">
166           <xslo:value-of select="."/>
167         </z:index>
168       </xslo:if>
169     </xslo:for-each>
170   </xslo:template>
171   <xslo:template mode="index_subfields" match="marc:datafield[@tag='014']">
172     <xslo:for-each select="marc:subfield">
173       <xslo:if test="contains('a', @code)">
174         <z:index name="Identifier-standard:w">
175           <xslo:value-of select="."/>
176         </z:index>
177       </xslo:if>
178     </xslo:for-each>
179     <xslo:for-each select="marc:subfield">
180       <xslo:if test="contains('z', @code)">
181         <z:index name="Identifier-standard:w">
182           <xslo:value-of select="."/>
183         </z:index>
184       </xslo:if>
185     </xslo:for-each>
186   </xslo:template>
187   <xslo:template mode="index_subfields" match="marc:datafield[@tag='015']">
188     <xslo:for-each select="marc:subfield">
189       <xslo:if test="contains('a', @code)">
190         <z:index name="Identifier-standard:w">
191           <xslo:value-of select="."/>
192         </z:index>
193       </xslo:if>
194     </xslo:for-each>
195     <xslo:for-each select="marc:subfield">
196       <xslo:if test="contains('z', @code)">
197         <z:index name="Identifier-standard:w">
198           <xslo:value-of select="."/>
199         </z:index>
200       </xslo:if>
201     </xslo:for-each>
202   </xslo:template>
203   <xslo:template mode="index_subfields" match="marc:datafield[@tag='016']">
204     <xslo:for-each select="marc:subfield">
205       <xslo:if test="contains('a', @code)">
206         <z:index name="Identifier-standard:w">
207           <xslo:value-of select="."/>
208         </z:index>
209       </xslo:if>
210     </xslo:for-each>
211     <xslo:for-each select="marc:subfield">
212       <xslo:if test="contains('z', @code)">
213         <z:index name="Identifier-standard:w">
214           <xslo:value-of select="."/>
215         </z:index>
216       </xslo:if>
217     </xslo:for-each>
218   </xslo:template>
219   <xslo:template mode="index_subfields" match="marc:datafield[@tag='017']">
220     <xslo:for-each select="marc:subfield">
221       <xslo:if test="contains('a', @code)">
222         <z:index name="Identifier-standard:w">
223           <xslo:value-of select="."/>
224         </z:index>
225       </xslo:if>
226     </xslo:for-each>
227     <xslo:for-each select="marc:subfield">
228       <xslo:if test="contains('z', @code)">
229         <z:index name="Identifier-standard:w">
230           <xslo:value-of select="."/>
231         </z:index>
232       </xslo:if>
233     </xslo:for-each>
234   </xslo:template>
235   <xslo:template mode="index_subfields" match="marc:datafield[@tag='040']">
236     <xslo:for-each select="marc:subfield">
237       <xslo:if test="contains('a', @code)">
238         <z:index name="Identifier-standard:w">
239           <xslo:value-of select="."/>
240         </z:index>
241       </xslo:if>
242     </xslo:for-each>
243     <xslo:for-each select="marc:subfield">
244       <xslo:if test="contains('z', @code)">
245         <z:index name="Identifier-standard:w">
246           <xslo:value-of select="."/>
247         </z:index>
248       </xslo:if>
249     </xslo:for-each>
250   </xslo:template>
251   <xslo:template mode="index_subfields" match="marc:datafield[@tag='071']">
252     <xslo:for-each select="marc:subfield">
253       <xslo:if test="contains('a', @code)">
254         <z:index name="Identifier-publisher-for-music:w Identifier-standard:w">
255           <xslo:value-of select="."/>
256         </z:index>
257       </xslo:if>
258     </xslo:for-each>
259     <xslo:for-each select="marc:subfield">
260       <xslo:if test="contains('z', @code)">
261         <z:index name="Identifier-publisher-for-music:w Identifier-standard:w">
262           <xslo:value-of select="."/>
263         </z:index>
264       </xslo:if>
265     </xslo:for-each>
266     <xslo:for-each select="marc:subfield">
267       <xslo:if test="contains('b', @code)">
268         <z:index name="Publisher:w Publisher:p">
269           <xslo:value-of select="."/>
270         </z:index>
271       </xslo:if>
272     </xslo:for-each>
273   </xslo:template>
274   <xslo:template mode="index_subfields" match="marc:datafield[@tag='072']">
275     <xslo:for-each select="marc:subfield">
276       <xslo:if test="contains('a', @code)">
277         <z:index name="UPC:w Identifier-standard:w">
278           <xslo:value-of select="."/>
279         </z:index>
280       </xslo:if>
281     </xslo:for-each>
282     <xslo:for-each select="marc:subfield">
283       <xslo:if test="contains('z', @code)">
284         <z:index name="UPC:w Identifier-standard:w">
285           <xslo:value-of select="."/>
286         </z:index>
287       </xslo:if>
288     </xslo:for-each>
289   </xslo:template>
290   <xslo:template mode="index_subfields" match="marc:datafield[@tag='073']">
291     <xslo:for-each select="marc:subfield">
292       <xslo:if test="contains('a', @code)">
293         <z:index name="EAN:w Identifier-standard:w">
294           <xslo:value-of select="."/>
295         </z:index>
296       </xslo:if>
297     </xslo:for-each>
298     <xslo:for-each select="marc:subfield">
299       <xslo:if test="contains('z', @code)">
300         <z:index name="EAN:w Identifier-standard:w">
301           <xslo:value-of select="."/>
302         </z:index>
303       </xslo:if>
304     </xslo:for-each>
305   </xslo:template>
306   <xslo:template mode="index_subfields" match="marc:datafield[@tag='200']">
307     <xslo:for-each select="marc:subfield">
308       <xslo:if test="contains('b', @code)">
309         <z:index name="itemtype:w itemtype:p itype:w itype:p Material-type:w Material-type:p">
310           <xslo:value-of select="."/>
311         </z:index>
312       </xslo:if>
313     </xslo:for-each>
314     <xslo:for-each select="marc:subfield">
315       <xslo:if test="contains('f', @code)">
316         <z:index name="Author:w Author:p">
317           <xslo:value-of select="."/>
318         </z:index>
319       </xslo:if>
320     </xslo:for-each>
321     <xslo:for-each select="marc:subfield">
322       <xslo:if test="contains('g', @code)">
323         <z:index name="Author:w Author:p">
324           <xslo:value-of select="."/>
325         </z:index>
326       </xslo:if>
327     </xslo:for-each>
328     <xslo:for-each select="marc:subfield">
329       <xslo:if test="contains('a', @code)">
330         <z:index name="Title:w Title:p Title:s Title-cover:w Title-cover:p Title-cover:s">
331           <xslo:value-of select="."/>
332         </z:index>
333       </xslo:if>
334     </xslo:for-each>
335     <xslo:for-each select="marc:subfield">
336       <xslo:if test="contains('c', @code)">
337         <z:index name="Title:w Title:p">
338           <xslo:value-of select="."/>
339         </z:index>
340       </xslo:if>
341     </xslo:for-each>
342     <xslo:for-each select="marc:subfield">
343       <xslo:if test="contains('d', @code)">
344         <z:index name="Title:w Title:p">
345           <xslo:value-of select="."/>
346         </z:index>
347       </xslo:if>
348     </xslo:for-each>
349     <xslo:for-each select="marc:subfield">
350       <xslo:if test="contains('e', @code)">
351         <z:index name="Title:w Title:p Title-cover:w Title-cover:p">
352           <xslo:value-of select="."/>
353         </z:index>
354       </xslo:if>
355     </xslo:for-each>
356     <xslo:for-each select="marc:subfield">
357       <xslo:if test="contains('i', @code)">
358         <z:index name="Title:w Title:p Title-cover:w Title-cover:p">
359           <xslo:value-of select="."/>
360         </z:index>
361       </xslo:if>
362     </xslo:for-each>
363   </xslo:template>
364   <xslo:template mode="index_subfields" match="marc:datafield[@tag='995']">
365     <xslo:for-each select="marc:subfield">
366       <xslo:if test="contains('r', @code)">
367         <z:index name="itemtype:w itemtype:p itype:w itype:p">
368           <xslo:value-of select="."/>
369         </z:index>
370       </xslo:if>
371     </xslo:for-each>
372     <xslo:for-each select="marc:subfield">
373       <xslo:if test="contains('1', @code)">
374         <z:index name="damaged:w damaged:n item:w">
375           <xslo:value-of select="."/>
376         </z:index>
377       </xslo:if>
378     </xslo:for-each>
379     <xslo:for-each select="marc:subfield">
380       <xslo:if test="contains('2', @code)">
381         <z:index name="lost:w lost:n item:w">
382           <xslo:value-of select="."/>
383         </z:index>
384       </xslo:if>
385     </xslo:for-each>
386     <xslo:for-each select="marc:subfield">
387       <xslo:if test="contains('3', @code)">
388         <z:index name="withdrawn:w withdrawn:n item:w">
389           <xslo:value-of select="."/>
390         </z:index>
391       </xslo:if>
392     </xslo:for-each>
393     <xslo:for-each select="marc:subfield">
394       <xslo:if test="contains('a', @code)">
395         <z:index name="homebranch:w Host-item:w item:w">
396           <xslo:value-of select="."/>
397         </z:index>
398       </xslo:if>
399     </xslo:for-each>
400     <xslo:for-each select="marc:subfield">
401       <xslo:if test="contains('b', @code)">
402         <z:index name="homebranch:w Host-item:w item:w">
403           <xslo:value-of select="."/>
404         </z:index>
405       </xslo:if>
406     </xslo:for-each>
407     <xslo:for-each select="marc:subfield">
408       <xslo:if test="contains('c', @code)">
409         <z:index name="holdingbranch:w Record-Source:w item:w">
410           <xslo:value-of select="."/>
411         </z:index>
412       </xslo:if>
413     </xslo:for-each>
414     <xslo:for-each select="marc:subfield">
415       <xslo:if test="contains('d', @code)">
416         <z:index name="holdingbranch:w Record-Source:w item:w">
417           <xslo:value-of select="."/>
418         </z:index>
419       </xslo:if>
420     </xslo:for-each>
421     <xslo:for-each select="marc:subfield">
422       <xslo:if test="contains('e', @code)">
423         <z:index name="location:w location:p item:w">
424           <xslo:value-of select="."/>
425         </z:index>
426       </xslo:if>
427     </xslo:for-each>
428     <xslo:for-each select="marc:subfield">
429       <xslo:if test="contains('f', @code)">
430         <z:index name="barcode:w barcode:p item:w">
431           <xslo:value-of select="."/>
432         </z:index>
433       </xslo:if>
434     </xslo:for-each>
435     <xslo:for-each select="marc:subfield">
436       <xslo:if test="contains('h', @code)">
437         <z:index name="ccode:w ccode:p item:w">
438           <xslo:value-of select="."/>
439         </z:index>
440       </xslo:if>
441     </xslo:for-each>
442     <xslo:for-each select="marc:subfield">
443       <xslo:if test="contains('j', @code)">
444         <z:index name="LC-card-number:s item:w">
445           <xslo:value-of select="."/>
446         </z:index>
447       </xslo:if>
448     </xslo:for-each>
449     <xslo:for-each select="marc:subfield">
450       <xslo:if test="contains('k', @code)">
451         <z:index name="Call-Number:w Local-classification:w lcn:w Call-Number:p Local-classification:p lcn:p item:w Local-classification:s">
452           <xslo:value-of select="."/>
453         </z:index>
454       </xslo:if>
455     </xslo:for-each>
456     <xslo:for-each select="marc:subfield">
457       <xslo:if test="contains('n', @code)">
458         <z:index name="onloan:d onloan:n onloan:s onloan:w item:w">
459           <xslo:value-of select="."/>
460         </z:index>
461       </xslo:if>
462     </xslo:for-each>
463     <xslo:for-each select="marc:subfield">
464       <xslo:if test="contains('u', @code)">
465         <z:index name="Note:w Note:p item:w">
466           <xslo:value-of select="."/>
467         </z:index>
468       </xslo:if>
469     </xslo:for-each>
470   </xslo:template>
471   <xslo:template mode="index_subfields" match="marc:datafield[@tag='100']">
472     <xslo:for-each select="marc:subfield">
473       <xslo:if test="contains('a', @code)">
474         <z:index name="tpubdate:s">
475           <xslo:value-of select="substring(., 9, 1)"/>
476         </z:index>
477       </xslo:if>
478     </xslo:for-each>
479     <xslo:for-each select="marc:subfield">
480       <xslo:if test="contains('a', @code)">
481         <z:index name="ta:w">
482           <xslo:value-of select="substring(., 18, 1)"/>
483         </z:index>
484       </xslo:if>
485     </xslo:for-each>
486     <xslo:for-each select="marc:subfield">
487       <xslo:if test="contains('a', @code)">
488         <z:index name="ta:w">
489           <xslo:value-of select="substring(., 19, 1)"/>
490         </z:index>
491       </xslo:if>
492     </xslo:for-each>
493     <xslo:for-each select="marc:subfield">
494       <xslo:if test="contains('a', @code)">
495         <z:index name="ta:w">
496           <xslo:value-of select="substring(., 20, 1)"/>
497         </z:index>
498       </xslo:if>
499     </xslo:for-each>
500     <xslo:for-each select="marc:subfield">
501       <xslo:if test="contains('a', @code)">
502         <z:index name="Modified-code:n">
503           <xslo:value-of select="substring(., 22, 1)"/>
504         </z:index>
505       </xslo:if>
506     </xslo:for-each>
507     <xslo:for-each select="marc:subfield">
508       <xslo:if test="contains('a', @code)">
509         <z:index name="char-encoding:n">
510           <xslo:value-of select="substring(., 27, 2)"/>
511         </z:index>
512       </xslo:if>
513     </xslo:for-each>
514     <xslo:for-each select="marc:subfield">
515       <xslo:if test="contains('a', @code)">
516         <z:index name="char-encoding:n">
517           <xslo:value-of select="substring(., 29, 2)"/>
518         </z:index>
519       </xslo:if>
520     </xslo:for-each>
521     <xslo:for-each select="marc:subfield">
522       <xslo:if test="contains('a', @code)">
523         <z:index name="char-encoding:n">
524           <xslo:value-of select="substring(., 31, 2)"/>
525         </z:index>
526       </xslo:if>
527     </xslo:for-each>
528     <xslo:for-each select="marc:subfield">
529       <xslo:if test="contains('a', @code)">
530         <z:index name="script-Title:n">
531           <xslo:value-of select="substring(., 35, 2)"/>
532         </z:index>
533       </xslo:if>
534     </xslo:for-each>
535   </xslo:template>
536   <xslo:template mode="index_subfields" match="marc:datafield[@tag='101']">
537     <xslo:for-each select="marc:subfield">
538       <xslo:if test="contains('a', @code)">
539         <z:index name="ln:w">
540           <xslo:value-of select="."/>
541         </z:index>
542       </xslo:if>
543     </xslo:for-each>
544   </xslo:template>
545   <xslo:template mode="index_subfields" match="marc:datafield[@tag='102']">
546     <xslo:for-each select="marc:subfield">
547       <xslo:if test="contains('a', @code)">
548         <z:index name="Country-publication:w">
549           <xslo:value-of select="."/>
550         </z:index>
551       </xslo:if>
552     </xslo:for-each>
553   </xslo:template>
554   <xslo:template mode="index_subfields" match="marc:datafield[@tag='105']">
555     <xslo:for-each select="marc:subfield">
556       <xslo:if test="contains('a', @code)">
557         <z:index name="ff8-18-21:w">
558           <xslo:value-of select="substring(., 1, 1)"/>
559         </z:index>
560       </xslo:if>
561     </xslo:for-each>
562     <xslo:for-each select="marc:subfield">
563       <xslo:if test="contains('a', @code)">
564         <z:index name="ff8-18-21:w">
565           <xslo:value-of select="substring(., 2, 1)"/>
566         </z:index>
567       </xslo:if>
568     </xslo:for-each>
569     <xslo:for-each select="marc:subfield">
570       <xslo:if test="contains('a', @code)">
571         <z:index name="ff8-18-21:w">
572           <xslo:value-of select="substring(., 3, 1)"/>
573         </z:index>
574       </xslo:if>
575     </xslo:for-each>
576     <xslo:for-each select="marc:subfield">
577       <xslo:if test="contains('a', @code)">
578         <z:index name="ff8-18-21:w">
579           <xslo:value-of select="substring(., 4, 1)"/>
580         </z:index>
581       </xslo:if>
582     </xslo:for-each>
583     <xslo:for-each select="marc:subfield">
584       <xslo:if test="contains('a', @code)">
585         <z:index name="ctype:w">
586           <xslo:value-of select="substring(., 5, 1)"/>
587         </z:index>
588       </xslo:if>
589     </xslo:for-each>
590     <xslo:for-each select="marc:subfield">
591       <xslo:if test="contains('a', @code)">
592         <z:index name="ctype:w">
593           <xslo:value-of select="substring(., 6, 1)"/>
594         </z:index>
595       </xslo:if>
596     </xslo:for-each>
597     <xslo:for-each select="marc:subfield">
598       <xslo:if test="contains('a', @code)">
599         <z:index name="ctype:w">
600           <xslo:value-of select="substring(., 7, 1)"/>
601         </z:index>
602       </xslo:if>
603     </xslo:for-each>
604     <xslo:for-each select="marc:subfield">
605       <xslo:if test="contains('a', @code)">
606         <z:index name="ctype:w">
607           <xslo:value-of select="substring(., 8, 1)"/>
608         </z:index>
609       </xslo:if>
610     </xslo:for-each>
611     <xslo:for-each select="marc:subfield">
612       <xslo:if test="contains('a', @code)">
613         <z:index name="ff8-29:w">
614           <xslo:value-of select="substring(., 9, 1)"/>
615         </z:index>
616       </xslo:if>
617     </xslo:for-each>
618     <xslo:for-each select="marc:subfield">
619       <xslo:if test="contains('a', @code)">
620         <z:index name="ff8-30:w">
621           <xslo:value-of select="substring(., 10, 1)"/>
622         </z:index>
623       </xslo:if>
624     </xslo:for-each>
625     <xslo:for-each select="marc:subfield">
626       <xslo:if test="contains('a', @code)">
627         <z:index name="ff8-31:w">
628           <xslo:value-of select="substring(., 11, 1)"/>
629         </z:index>
630       </xslo:if>
631     </xslo:for-each>
632     <xslo:for-each select="marc:subfield">
633       <xslo:if test="contains('a', @code)">
634         <z:index name="lf:w">
635           <xslo:value-of select="substring(., 12, 1)"/>
636         </z:index>
637       </xslo:if>
638     </xslo:for-each>
639     <xslo:for-each select="marc:subfield">
640       <xslo:if test="contains('a', @code)">
641         <z:index name="bio:w">
642           <xslo:value-of select="substring(., 13, 1)"/>
643         </z:index>
644       </xslo:if>
645     </xslo:for-each>
646   </xslo:template>
647   <xslo:template mode="index_subfields" match="marc:datafield[@tag='106']">
648     <xslo:for-each select="marc:subfield">
649       <xslo:if test="contains('a', @code)">
650         <z:index name="ff8-23:w ff8-23:p">
651           <xslo:value-of select="."/>
652         </z:index>
653       </xslo:if>
654     </xslo:for-each>
655   </xslo:template>
656   <xslo:template mode="index_subfields" match="marc:datafield[@tag='110']">
657     <xslo:for-each select="marc:subfield">
658       <xslo:if test="contains('a', @code)">
659         <z:index name="ff8-21:w">
660           <xslo:value-of select="substring(., 1, 1)"/>
661         </z:index>
662       </xslo:if>
663     </xslo:for-each>
664     <xslo:for-each select="marc:subfield">
665       <xslo:if test="contains('a', @code)">
666         <z:index name="ff8-18:w">
667           <xslo:value-of select="substring(., 2, 1)"/>
668         </z:index>
669       </xslo:if>
670     </xslo:for-each>
671     <xslo:for-each select="marc:subfield">
672       <xslo:if test="contains('a', @code)">
673         <z:index name="ff8-19:w">
674           <xslo:value-of select="substring(., 3, 1)"/>
675         </z:index>
676       </xslo:if>
677     </xslo:for-each>
678     <xslo:for-each select="marc:subfield">
679       <xslo:if test="contains('a', @code)">
680         <z:index name="ctype:w">
681           <xslo:value-of select="substring(., 4, 1)"/>
682         </z:index>
683       </xslo:if>
684     </xslo:for-each>
685     <xslo:for-each select="marc:subfield">
686       <xslo:if test="contains('a', @code)">
687         <z:index name="ctype:w">
688           <xslo:value-of select="substring(., 5, 1)"/>
689         </z:index>
690       </xslo:if>
691     </xslo:for-each>
692     <xslo:for-each select="marc:subfield">
693       <xslo:if test="contains('a', @code)">
694         <z:index name="ff8-29:w">
695           <xslo:value-of select="substring(., 8, 1)"/>
696         </z:index>
697       </xslo:if>
698     </xslo:for-each>
699     <xslo:for-each select="marc:subfield">
700       <xslo:if test="contains('a', @code)">
701         <z:index name="Title-page-availability:w">
702           <xslo:value-of select="substring(., 9, 1)"/>
703         </z:index>
704       </xslo:if>
705     </xslo:for-each>
706     <xslo:for-each select="marc:subfield">
707       <xslo:if test="contains('a', @code)">
708         <z:index name="ff8-31:w">
709           <xslo:value-of select="substring(., 10, 1)"/>
710         </z:index>
711       </xslo:if>
712     </xslo:for-each>
713     <xslo:for-each select="marc:subfield">
714       <xslo:if test="contains('a', @code)">
715         <z:index name="Cumulative-index-availability:w">
716           <xslo:value-of select="substring(., 11, 1)"/>
717         </z:index>
718       </xslo:if>
719     </xslo:for-each>
720   </xslo:template>
721   <xslo:template mode="index_subfields" match="marc:datafield[@tag='115']">
722     <xslo:for-each select="marc:subfield">
723       <xslo:if test="contains('a', @code)">
724         <z:index name="Video-mt:w">
725           <xslo:value-of select="substring(., 1, 1)"/>
726         </z:index>
727       </xslo:if>
728     </xslo:for-each>
729   </xslo:template>
730   <xslo:template mode="index_subfields" match="marc:datafield[@tag='116']">
731     <xslo:for-each select="marc:subfield">
732       <xslo:if test="contains('a', @code)">
733         <z:index name="Graphics-type:w">
734           <xslo:value-of select="substring(., 1, 1)"/>
735         </z:index>
736       </xslo:if>
737     </xslo:for-each>
738     <xslo:for-each select="marc:subfield">
739       <xslo:if test="contains('a', @code)">
740         <z:index name="Graphics-support:w">
741           <xslo:value-of select="substring(., 2, 1)"/>
742         </z:index>
743       </xslo:if>
744     </xslo:for-each>
745     <xslo:for-each select="marc:subfield">
746       <xslo:if test="contains('a', @code)">
747         <z:index name="Graphics-support:w">
748           <xslo:value-of select="substring(., 3, 1)"/>
749         </z:index>
750       </xslo:if>
751     </xslo:for-each>
752   </xslo:template>
753   <xslo:template mode="index_subfields" match="marc:datafield[@tag='700']">
754     <xslo:for-each select="marc:subfield">
755       <xslo:if test="contains('9', @code)">
756         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
757           <xslo:value-of select="."/>
758         </z:index>
759       </xslo:if>
760     </xslo:for-each>
761     <xslo:for-each select="marc:subfield">
762       <xslo:if test="contains('a', @code)">
763         <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:w Author:s">
764           <xslo:value-of select="."/>
765         </z:index>
766       </xslo:if>
767     </xslo:for-each>
768   </xslo:template>
769   <xslo:template mode="index_subfields" match="marc:datafield[@tag='701']">
770     <xslo:for-each select="marc:subfield">
771       <xslo:if test="contains('9', @code)">
772         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
773           <xslo:value-of select="."/>
774         </z:index>
775       </xslo:if>
776     </xslo:for-each>
777   </xslo:template>
778   <xslo:template mode="index_subfields" match="marc:datafield[@tag='702']">
779     <xslo:for-each select="marc:subfield">
780       <xslo:if test="contains('9', @code)">
781         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
782           <xslo:value-of select="."/>
783         </z:index>
784       </xslo:if>
785     </xslo:for-each>
786   </xslo:template>
787   <xslo:template mode="index_subfields" match="marc:datafield[@tag='710']">
788     <xslo:for-each select="marc:subfield">
789       <xslo:if test="contains('9', @code)">
790         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
791           <xslo:value-of select="."/>
792         </z:index>
793       </xslo:if>
794     </xslo:for-each>
795   </xslo:template>
796   <xslo:template mode="index_subfields" match="marc:datafield[@tag='711']">
797     <xslo:for-each select="marc:subfield">
798       <xslo:if test="contains('9', @code)">
799         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
800           <xslo:value-of select="."/>
801         </z:index>
802       </xslo:if>
803     </xslo:for-each>
804   </xslo:template>
805   <xslo:template mode="index_subfields" match="marc:datafield[@tag='712']">
806     <xslo:for-each select="marc:subfield">
807       <xslo:if test="contains('9', @code)">
808         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
809           <xslo:value-of select="."/>
810         </z:index>
811       </xslo:if>
812     </xslo:for-each>
813   </xslo:template>
814   <xslo:template mode="index_subfields" match="marc:datafield[@tag='716']">
815     <xslo:for-each select="marc:subfield">
816       <xslo:if test="contains('9', @code)">
817         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
818           <xslo:value-of select="."/>
819         </z:index>
820       </xslo:if>
821     </xslo:for-each>
822   </xslo:template>
823   <xslo:template mode="index_subfields" match="marc:datafield[@tag='720']">
824     <xslo:for-each select="marc:subfield">
825       <xslo:if test="contains('9', @code)">
826         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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='721']">
833     <xslo:for-each select="marc:subfield">
834       <xslo:if test="contains('9', @code)">
835         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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='722']">
842     <xslo:for-each select="marc:subfield">
843       <xslo:if test="contains('9', @code)">
844         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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='730']">
851     <xslo:for-each select="marc:subfield">
852       <xslo:if test="contains('9', @code)">
853         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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='230']">
860     <xslo:for-each select="marc:subfield">
861       <xslo:if test="contains('a', @code)">
862         <z:index name="Electronic-ressource:w">
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='210']">
869     <xslo:for-each select="marc:subfield">
870       <xslo:if test="contains('a', @code)">
871         <z:index name="pl:w pl:p">
872           <xslo:value-of select="."/>
873         </z:index>
874       </xslo:if>
875     </xslo:for-each>
876     <xslo:for-each select="marc:subfield">
877       <xslo:if test="contains('c', @code)">
878         <z:index name="Publisher:w Publisher:p">
879           <xslo:value-of select="."/>
880         </z:index>
881       </xslo:if>
882     </xslo:for-each>
883     <xslo:for-each select="marc:subfield">
884       <xslo:if test="contains('d', @code)">
885         <z:index name="pubdate:n pubdate:y pubdate:s">
886           <xslo:value-of select="."/>
887         </z:index>
888       </xslo:if>
889     </xslo:for-each>
890   </xslo:template>
891   <xslo:template mode="index_subfields" match="marc:datafield[@tag='225']">
892     <xslo:for-each select="marc:subfield">
893       <xslo:if test="contains('a', @code)">
894         <z:index name="Title-series:w Title-series:p">
895           <xslo:value-of select="."/>
896         </z:index>
897       </xslo:if>
898     </xslo:for-each>
899     <xslo:for-each select="marc:subfield">
900       <xslo:if test="contains('d', @code)">
901         <z:index name="Title-series:w Title-series:p">
902           <xslo:value-of select="."/>
903         </z:index>
904       </xslo:if>
905     </xslo:for-each>
906     <xslo:for-each select="marc:subfield">
907       <xslo:if test="contains('e', @code)">
908         <z:index name="Title-series:w Title-series:p">
909           <xslo:value-of select="."/>
910         </z:index>
911       </xslo:if>
912     </xslo:for-each>
913     <xslo:for-each select="marc:subfield">
914       <xslo:if test="contains('f', @code)">
915         <z:index name="Author:w Author:p Name-and-title:w Name-and-title:p">
916           <xslo:value-of select="."/>
917         </z:index>
918       </xslo:if>
919     </xslo:for-each>
920     <xslo:for-each select="marc:subfield">
921       <xslo:if test="contains('h', @code)">
922         <z:index name="Title-series:w Title-series:p">
923           <xslo:value-of select="."/>
924         </z:index>
925       </xslo:if>
926     </xslo:for-each>
927     <xslo:for-each select="marc:subfield">
928       <xslo:if test="contains('i', @code)">
929         <z:index name="Title-series:w Title-series:p">
930           <xslo:value-of select="."/>
931         </z:index>
932       </xslo:if>
933     </xslo:for-each>
934     <xslo:for-each select="marc:subfield">
935       <xslo:if test="contains('v', @code)">
936         <z:index name="Title-series:w Title-series:p">
937           <xslo:value-of select="."/>
938         </z:index>
939       </xslo:if>
940     </xslo:for-each>
941     <xslo:for-each select="marc:subfield">
942       <xslo:if test="contains('x', @code)">
943         <z:index name="ISSN:w">
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='300']">
950     <xslo:for-each select="marc:subfield">
951       <xslo:if test="contains('a', @code)">
952         <z:index name="Note:w Note: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='301']">
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='302']">
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='303']">
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='304']">
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='305']">
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='306']">
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='307']">
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='310']">
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='311']">
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='312']">
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='313']">
1049     <xslo:for-each select="marc:subfield">
1050       <xslo:if test="contains('a', @code)">
1051         <z:index name="Note:w Note: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='314']">
1058     <xslo:for-each select="marc:subfield">
1059       <xslo:if test="contains('a', @code)">
1060         <z:index name="Note:w Note:p">
1061           <xslo:value-of select="."/>
1062         </z:index>
1063       </xslo:if>
1064     </xslo:for-each>
1065   </xslo:template>
1066   <xslo:template mode="index_subfields" match="marc:datafield[@tag='315']">
1067     <xslo:for-each select="marc:subfield">
1068       <xslo:if test="contains('a', @code)">
1069         <z:index name="Note:w Note:p">
1070           <xslo:value-of select="."/>
1071         </z:index>
1072       </xslo:if>
1073     </xslo:for-each>
1074   </xslo:template>
1075   <xslo:template mode="index_subfields" match="marc:datafield[@tag='316']">
1076     <xslo:for-each select="marc:subfield">
1077       <xslo:if test="contains('a', @code)">
1078         <z:index name="Note:w Note:p">
1079           <xslo:value-of select="."/>
1080         </z:index>
1081       </xslo:if>
1082     </xslo:for-each>
1083   </xslo:template>
1084   <xslo:template mode="index_subfields" match="marc:datafield[@tag='317']">
1085     <xslo:for-each select="marc:subfield">
1086       <xslo:if test="contains('a', @code)">
1087         <z:index name="Note:w Note:p">
1088           <xslo:value-of select="."/>
1089         </z:index>
1090       </xslo:if>
1091     </xslo:for-each>
1092   </xslo:template>
1093   <xslo:template mode="index_subfields" match="marc:datafield[@tag='318']">
1094     <xslo:for-each select="marc:subfield">
1095       <xslo:if test="contains('a', @code)">
1096         <z:index name="Note:w Note:p">
1097           <xslo:value-of select="."/>
1098         </z:index>
1099       </xslo:if>
1100     </xslo:for-each>
1101   </xslo:template>
1102   <xslo:template mode="index_subfields" match="marc:datafield[@tag='320']">
1103     <xslo:for-each select="marc:subfield">
1104       <xslo:if test="contains('a', @code)">
1105         <z:index name="Note:w Note:p">
1106           <xslo:value-of select="."/>
1107         </z:index>
1108       </xslo:if>
1109     </xslo:for-each>
1110   </xslo:template>
1111   <xslo:template mode="index_subfields" match="marc:datafield[@tag='321']">
1112     <xslo:for-each select="marc:subfield">
1113       <xslo:if test="contains('a', @code)">
1114         <z:index name="Note:w Note:p">
1115           <xslo:value-of select="."/>
1116         </z:index>
1117       </xslo:if>
1118     </xslo:for-each>
1119   </xslo:template>
1120   <xslo:template mode="index_subfields" match="marc:datafield[@tag='322']">
1121     <xslo:for-each select="marc:subfield">
1122       <xslo:if test="contains('a', @code)">
1123         <z:index name="Note:w Note:p">
1124           <xslo:value-of select="."/>
1125         </z:index>
1126       </xslo:if>
1127     </xslo:for-each>
1128   </xslo:template>
1129   <xslo:template mode="index_subfields" match="marc:datafield[@tag='323']">
1130     <xslo:for-each select="marc:subfield">
1131       <xslo:if test="contains('a', @code)">
1132         <z:index name="Note:w Note:p">
1133           <xslo:value-of select="."/>
1134         </z:index>
1135       </xslo:if>
1136     </xslo:for-each>
1137   </xslo:template>
1138   <xslo:template mode="index_subfields" match="marc:datafield[@tag='324']">
1139     <xslo:for-each select="marc:subfield">
1140       <xslo:if test="contains('a', @code)">
1141         <z:index name="Note:w Note:p">
1142           <xslo:value-of select="."/>
1143         </z:index>
1144       </xslo:if>
1145     </xslo:for-each>
1146   </xslo:template>
1147   <xslo:template mode="index_subfields" match="marc:datafield[@tag='325']">
1148     <xslo:for-each select="marc:subfield">
1149       <xslo:if test="contains('a', @code)">
1150         <z:index name="Note:w Note:p">
1151           <xslo:value-of select="."/>
1152         </z:index>
1153       </xslo:if>
1154     </xslo:for-each>
1155   </xslo:template>
1156   <xslo:template mode="index_subfields" match="marc:datafield[@tag='326']">
1157     <xslo:for-each select="marc:subfield">
1158       <xslo:if test="contains('a', @code)">
1159         <z:index name="Note:w Note:p">
1160           <xslo:value-of select="."/>
1161         </z:index>
1162       </xslo:if>
1163     </xslo:for-each>
1164   </xslo:template>
1165   <xslo:template mode="index_subfields" match="marc:datafield[@tag='327']">
1166     <xslo:for-each select="marc:subfield">
1167       <xslo:if test="contains('a', @code)">
1168         <z:index name="Note:w Note:p">
1169           <xslo:value-of select="."/>
1170         </z:index>
1171       </xslo:if>
1172     </xslo:for-each>
1173   </xslo:template>
1174   <xslo:template mode="index_subfields" match="marc:datafield[@tag='330']">
1175     <xslo:for-each select="marc:subfield">
1176       <xslo:if test="contains('a', @code)">
1177         <z:index name="Abstract:w Note:w Abstract:p Note:p">
1178           <xslo:value-of select="."/>
1179         </z:index>
1180       </xslo:if>
1181     </xslo:for-each>
1182   </xslo:template>
1183   <xslo:template mode="index_subfields" match="marc:datafield[@tag='332']">
1184     <xslo:for-each select="marc:subfield">
1185       <xslo:if test="contains('a', @code)">
1186         <z:index name="Note:w Note:p">
1187           <xslo:value-of select="."/>
1188         </z:index>
1189       </xslo:if>
1190     </xslo:for-each>
1191   </xslo:template>
1192   <xslo:template mode="index_subfields" match="marc:datafield[@tag='333']">
1193     <xslo:for-each select="marc:subfield">
1194       <xslo:if test="contains('a', @code)">
1195         <z:index name="Note:w Note:p">
1196           <xslo:value-of select="."/>
1197         </z:index>
1198       </xslo:if>
1199     </xslo:for-each>
1200   </xslo:template>
1201   <xslo:template mode="index_subfields" match="marc:datafield[@tag='334']">
1202     <xslo:for-each select="marc:subfield">
1203       <xslo:if test="contains('a', @code)">
1204         <z:index name="Note:w Note:p">
1205           <xslo:value-of select="."/>
1206         </z:index>
1207       </xslo:if>
1208     </xslo:for-each>
1209   </xslo:template>
1210   <xslo:template mode="index_subfields" match="marc:datafield[@tag='336']">
1211     <xslo:for-each select="marc:subfield">
1212       <xslo:if test="contains('a', @code)">
1213         <z:index name="Note:w Note:p">
1214           <xslo:value-of select="."/>
1215         </z:index>
1216       </xslo:if>
1217     </xslo:for-each>
1218   </xslo:template>
1219   <xslo:template mode="index_subfields" match="marc:datafield[@tag='337']">
1220     <xslo:for-each select="marc:subfield">
1221       <xslo:if test="contains('a', @code)">
1222         <z:index name="Note:w Note:p">
1223           <xslo:value-of select="."/>
1224         </z:index>
1225       </xslo:if>
1226     </xslo:for-each>
1227   </xslo:template>
1228   <xslo:template mode="index_subfields" match="marc:datafield[@tag='345']">
1229     <xslo:for-each select="marc:subfield">
1230       <xslo:if test="contains('a', @code)">
1231         <z:index name="Note:w Note:p">
1232           <xslo:value-of select="."/>
1233         </z:index>
1234       </xslo:if>
1235     </xslo:for-each>
1236   </xslo:template>
1237   <xslo:template mode="index_subfields" match="marc:datafield[@tag='410']">
1238     <xslo:for-each select="marc:subfield">
1239       <xslo:if test="contains('t', @code)">
1240         <z:index name="Title-series:w Title-series:p">
1241           <xslo:value-of select="."/>
1242         </z:index>
1243       </xslo:if>
1244     </xslo:for-each>
1245     <xslo:for-each select="marc:subfield">
1246       <xslo:if test="contains('d', @code)">
1247         <z:index name="pubdate:n">
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='411']">
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='412']">
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:for-each select="marc:subfield">
1271       <xslo:if test="contains('d', @code)">
1272         <z:index name="pubdate:n">
1273           <xslo:value-of select="."/>
1274         </z:index>
1275       </xslo:if>
1276     </xslo:for-each>
1277   </xslo:template>
1278   <xslo:template mode="index_subfields" match="marc:datafield[@tag='413']">
1279     <xslo:for-each select="marc:subfield">
1280       <xslo:if test="contains('t', @code)">
1281         <z:index name="Title:w Title:p">
1282           <xslo:value-of select="."/>
1283         </z:index>
1284       </xslo:if>
1285     </xslo:for-each>
1286     <xslo:for-each select="marc:subfield">
1287       <xslo:if test="contains('d', @code)">
1288         <z:index name="pubdate:n">
1289           <xslo:value-of select="."/>
1290         </z:index>
1291       </xslo:if>
1292     </xslo:for-each>
1293   </xslo:template>
1294   <xslo:template mode="index_subfields" match="marc:datafield[@tag='421']">
1295     <xslo:for-each select="marc:subfield">
1296       <xslo:if test="contains('t', @code)">
1297         <z:index name="Title:w Title:p">
1298           <xslo:value-of select="."/>
1299         </z:index>
1300       </xslo:if>
1301     </xslo:for-each>
1302   </xslo:template>
1303   <xslo:template mode="index_subfields" match="marc:datafield[@tag='422']">
1304     <xslo:for-each select="marc:subfield">
1305       <xslo:if test="contains('t', @code)">
1306         <z:index name="Title:w Title:p">
1307           <xslo:value-of select="."/>
1308         </z:index>
1309       </xslo:if>
1310     </xslo:for-each>
1311   </xslo:template>
1312   <xslo:template mode="index_subfields" match="marc:datafield[@tag='423']">
1313     <xslo:for-each select="marc:subfield">
1314       <xslo:if test="contains('t', @code)">
1315         <z:index name="Title:w Title:p">
1316           <xslo:value-of select="."/>
1317         </z:index>
1318       </xslo:if>
1319     </xslo:for-each>
1320   </xslo:template>
1321   <xslo:template mode="index_subfields" match="marc:datafield[@tag='424']">
1322     <xslo:for-each select="marc:subfield">
1323       <xslo:if test="contains('t', @code)">
1324         <z:index name="Title:w Title:p">
1325           <xslo:value-of select="."/>
1326         </z:index>
1327       </xslo:if>
1328     </xslo:for-each>
1329   </xslo:template>
1330   <xslo:template mode="index_subfields" match="marc:datafield[@tag='425']">
1331     <xslo:for-each select="marc:subfield">
1332       <xslo:if test="contains('t', @code)">
1333         <z:index name="Title:w Title:p">
1334           <xslo:value-of select="."/>
1335         </z:index>
1336       </xslo:if>
1337     </xslo:for-each>
1338   </xslo:template>
1339   <xslo:template mode="index_subfields" match="marc:datafield[@tag='430']">
1340     <xslo:for-each select="marc:subfield">
1341       <xslo:if test="contains('t', @code)">
1342         <z:index name="Title:w Title:p">
1343           <xslo:value-of select="."/>
1344         </z:index>
1345       </xslo:if>
1346     </xslo:for-each>
1347     <xslo:for-each select="marc:subfield">
1348       <xslo:if test="contains('d', @code)">
1349         <z:index name="pubdate:n">
1350           <xslo:value-of select="."/>
1351         </z:index>
1352       </xslo:if>
1353     </xslo:for-each>
1354   </xslo:template>
1355   <xslo:template mode="index_subfields" match="marc:datafield[@tag='431']">
1356     <xslo:for-each select="marc:subfield">
1357       <xslo:if test="contains('t', @code)">
1358         <z:index name="Title:w Title:p">
1359           <xslo:value-of select="."/>
1360         </z:index>
1361       </xslo:if>
1362     </xslo:for-each>
1363     <xslo:for-each select="marc:subfield">
1364       <xslo:if test="contains('d', @code)">
1365         <z:index name="pubdate:n">
1366           <xslo:value-of select="."/>
1367         </z:index>
1368       </xslo:if>
1369     </xslo:for-each>
1370   </xslo:template>
1371   <xslo:template mode="index_subfields" match="marc:datafield[@tag='432']">
1372     <xslo:for-each select="marc:subfield">
1373       <xslo:if test="contains('t', @code)">
1374         <z:index name="Title:w Title:p">
1375           <xslo:value-of select="."/>
1376         </z:index>
1377       </xslo:if>
1378     </xslo:for-each>
1379     <xslo:for-each select="marc:subfield">
1380       <xslo:if test="contains('d', @code)">
1381         <z:index name="pubdate:n">
1382           <xslo:value-of select="."/>
1383         </z:index>
1384       </xslo:if>
1385     </xslo:for-each>
1386   </xslo:template>
1387   <xslo:template mode="index_subfields" match="marc:datafield[@tag='433']">
1388     <xslo:for-each select="marc:subfield">
1389       <xslo:if test="contains('t', @code)">
1390         <z:index name="Title:w Title:p">
1391           <xslo:value-of select="."/>
1392         </z:index>
1393       </xslo:if>
1394     </xslo:for-each>
1395   </xslo:template>
1396   <xslo:template mode="index_subfields" match="marc:datafield[@tag='434']">
1397     <xslo:for-each select="marc:subfield">
1398       <xslo:if test="contains('t', @code)">
1399         <z:index name="Title:w Title:p">
1400           <xslo:value-of select="."/>
1401         </z:index>
1402       </xslo:if>
1403     </xslo:for-each>
1404   </xslo:template>
1405   <xslo:template mode="index_subfields" match="marc:datafield[@tag='435']">
1406     <xslo:for-each select="marc:subfield">
1407       <xslo:if test="contains('t', @code)">
1408         <z:index name="Title:w Title:p">
1409           <xslo:value-of select="."/>
1410         </z:index>
1411       </xslo:if>
1412     </xslo:for-each>
1413   </xslo:template>
1414   <xslo:template mode="index_subfields" match="marc:datafield[@tag='436']">
1415     <xslo:for-each select="marc:subfield">
1416       <xslo:if test="contains('t', @code)">
1417         <z:index name="Title:w Title:p">
1418           <xslo:value-of select="."/>
1419         </z:index>
1420       </xslo:if>
1421     </xslo:for-each>
1422   </xslo:template>
1423   <xslo:template mode="index_subfields" match="marc:datafield[@tag='437']">
1424     <xslo:for-each select="marc:subfield">
1425       <xslo:if test="contains('t', @code)">
1426         <z:index name="Title:w Title:p">
1427           <xslo:value-of select="."/>
1428         </z:index>
1429       </xslo:if>
1430     </xslo:for-each>
1431   </xslo:template>
1432   <xslo:template mode="index_subfields" match="marc:datafield[@tag='440']">
1433     <xslo:for-each select="marc:subfield">
1434       <xslo:if test="contains('t', @code)">
1435         <z:index name="Title:w Title:p">
1436           <xslo:value-of select="."/>
1437         </z:index>
1438       </xslo:if>
1439     </xslo:for-each>
1440     <xslo:for-each select="marc:subfield">
1441       <xslo:if test="contains('d', @code)">
1442         <z:index name="pubdate:n">
1443           <xslo:value-of select="."/>
1444         </z:index>
1445       </xslo:if>
1446     </xslo:for-each>
1447   </xslo:template>
1448   <xslo:template mode="index_subfields" match="marc:datafield[@tag='441']">
1449     <xslo:for-each select="marc:subfield">
1450       <xslo:if test="contains('t', @code)">
1451         <z:index name="Title:w Title:p">
1452           <xslo:value-of select="."/>
1453         </z:index>
1454       </xslo:if>
1455     </xslo:for-each>
1456     <xslo:for-each select="marc:subfield">
1457       <xslo:if test="contains('d', @code)">
1458         <z:index name="pubdate:n">
1459           <xslo:value-of select="."/>
1460         </z:index>
1461       </xslo:if>
1462     </xslo:for-each>
1463   </xslo:template>
1464   <xslo:template mode="index_subfields" match="marc:datafield[@tag='442']">
1465     <xslo:for-each select="marc:subfield">
1466       <xslo:if test="contains('t', @code)">
1467         <z:index name="Title:w Title:p">
1468           <xslo:value-of select="."/>
1469         </z:index>
1470       </xslo:if>
1471     </xslo:for-each>
1472   </xslo:template>
1473   <xslo:template mode="index_subfields" match="marc:datafield[@tag='443']">
1474     <xslo:for-each select="marc:subfield">
1475       <xslo:if test="contains('t', @code)">
1476         <z:index name="Title:w Title:p">
1477           <xslo:value-of select="."/>
1478         </z:index>
1479       </xslo:if>
1480     </xslo:for-each>
1481   </xslo:template>
1482   <xslo:template mode="index_subfields" match="marc:datafield[@tag='444']">
1483     <xslo:for-each select="marc:subfield">
1484       <xslo:if test="contains('t', @code)">
1485         <z:index name="Title:w Title:p">
1486           <xslo:value-of select="."/>
1487         </z:index>
1488       </xslo:if>
1489     </xslo:for-each>
1490   </xslo:template>
1491   <xslo:template mode="index_subfields" match="marc:datafield[@tag='445']">
1492     <xslo:for-each select="marc:subfield">
1493       <xslo:if test="contains('t', @code)">
1494         <z:index name="Title:w Title:p">
1495           <xslo:value-of select="."/>
1496         </z:index>
1497       </xslo:if>
1498     </xslo:for-each>
1499     <xslo:for-each select="marc:subfield">
1500       <xslo:if test="contains('d', @code)">
1501         <z:index name="pubdate:n">
1502           <xslo:value-of select="."/>
1503         </z:index>
1504       </xslo:if>
1505     </xslo:for-each>
1506   </xslo:template>
1507   <xslo:template mode="index_subfields" match="marc:datafield[@tag='446']">
1508     <xslo:for-each select="marc:subfield">
1509       <xslo:if test="contains('t', @code)">
1510         <z:index name="Title:w Title:p">
1511           <xslo:value-of select="."/>
1512         </z:index>
1513       </xslo:if>
1514     </xslo:for-each>
1515   </xslo:template>
1516   <xslo:template mode="index_subfields" match="marc:datafield[@tag='447']">
1517     <xslo:for-each select="marc:subfield">
1518       <xslo:if test="contains('t', @code)">
1519         <z:index name="Title:w Title:p">
1520           <xslo:value-of select="."/>
1521         </z:index>
1522       </xslo:if>
1523     </xslo:for-each>
1524   </xslo:template>
1525   <xslo:template mode="index_subfields" match="marc:datafield[@tag='448']">
1526     <xslo:for-each select="marc:subfield">
1527       <xslo:if test="contains('t', @code)">
1528         <z:index name="Title:w Title:p">
1529           <xslo:value-of select="."/>
1530         </z:index>
1531       </xslo:if>
1532     </xslo:for-each>
1533   </xslo:template>
1534   <xslo:template mode="index_subfields" match="marc:datafield[@tag='451']">
1535     <xslo:for-each select="marc:subfield">
1536       <xslo:if test="contains('t', @code)">
1537         <z:index name="Title:w Title:p">
1538           <xslo:value-of select="."/>
1539         </z:index>
1540       </xslo:if>
1541     </xslo:for-each>
1542   </xslo:template>
1543   <xslo:template mode="index_subfields" match="marc:datafield[@tag='452']">
1544     <xslo:for-each select="marc:subfield">
1545       <xslo:if test="contains('t', @code)">
1546         <z:index name="Title:w Title:p">
1547           <xslo:value-of select="."/>
1548         </z:index>
1549       </xslo:if>
1550     </xslo:for-each>
1551   </xslo:template>
1552   <xslo:template mode="index_subfields" match="marc:datafield[@tag='453']">
1553     <xslo:for-each select="marc:subfield">
1554       <xslo:if test="contains('t', @code)">
1555         <z:index name="Title:w Title:p">
1556           <xslo:value-of select="."/>
1557         </z:index>
1558       </xslo:if>
1559     </xslo:for-each>
1560   </xslo:template>
1561   <xslo:template mode="index_subfields" match="marc:datafield[@tag='454']">
1562     <xslo:for-each select="marc:subfield">
1563       <xslo:if test="contains('t', @code)">
1564         <z:index name="Title:w Title:p">
1565           <xslo:value-of select="."/>
1566         </z:index>
1567       </xslo:if>
1568     </xslo:for-each>
1569   </xslo:template>
1570   <xslo:template mode="index_subfields" match="marc:datafield[@tag='455']">
1571     <xslo:for-each select="marc:subfield">
1572       <xslo:if test="contains('t', @code)">
1573         <z:index name="Title:w Title:p">
1574           <xslo:value-of select="."/>
1575         </z:index>
1576       </xslo:if>
1577     </xslo:for-each>
1578   </xslo:template>
1579   <xslo:template mode="index_subfields" match="marc:datafield[@tag='456']">
1580     <xslo:for-each select="marc:subfield">
1581       <xslo:if test="contains('t', @code)">
1582         <z:index name="Title:w Title:p">
1583           <xslo:value-of select="."/>
1584         </z:index>
1585       </xslo:if>
1586     </xslo:for-each>
1587   </xslo:template>
1588   <xslo:template mode="index_subfields" match="marc:datafield[@tag='461']">
1589     <xslo:for-each select="marc:subfield">
1590       <xslo:if test="contains('t', @code)">
1591         <z:index name="Title:w Title-host:w title-host:p">
1592           <xslo:value-of select="."/>
1593         </z:index>
1594       </xslo:if>
1595     </xslo:for-each>
1596     <xslo:for-each select="marc:subfield">
1597       <xslo:if test="contains('9', @code)">
1598         <z:index name="Host-Item-Number:w">
1599           <xslo:value-of select="."/>
1600         </z:index>
1601       </xslo:if>
1602     </xslo:for-each>
1603     <xslo:for-each select="marc:subfield">
1604       <xslo:if test="contains('d', @code)">
1605         <z:index name="pubdate:n">
1606           <xslo:value-of select="."/>
1607         </z:index>
1608       </xslo:if>
1609     </xslo:for-each>
1610     <xslo:for-each select="marc:subfield">
1611       <xslo:if test="contains('9', @code)">
1612         <z:index name="Host-Item-Number:w">
1613           <xslo:value-of select="."/>
1614         </z:index>
1615       </xslo:if>
1616     </xslo:for-each>
1617   </xslo:template>
1618   <xslo:template mode="index_subfields" match="marc:datafield[@tag='462']">
1619     <xslo:for-each select="marc:subfield">
1620       <xslo:if test="contains('t', @code)">
1621         <z:index name="Title:w Title:p">
1622           <xslo:value-of select="."/>
1623         </z:index>
1624       </xslo:if>
1625     </xslo:for-each>
1626   </xslo:template>
1627   <xslo:template mode="index_subfields" match="marc:datafield[@tag='463']">
1628     <xslo:for-each select="marc:subfield">
1629       <xslo:if test="contains('t', @code)">
1630         <z:index name="Title:w Title:p">
1631           <xslo:value-of select="."/>
1632         </z:index>
1633       </xslo:if>
1634     </xslo:for-each>
1635   </xslo:template>
1636   <xslo:template mode="index_subfields" match="marc:datafield[@tag='464']">
1637     <xslo:for-each select="marc:subfield">
1638       <xslo:if test="contains('t', @code)">
1639         <z:index name="Title:w Title-host:w title-host:p Title:p">
1640           <xslo:value-of select="."/>
1641         </z:index>
1642       </xslo:if>
1643     </xslo:for-each>
1644   </xslo:template>
1645   <xslo:template mode="index_subfields" match="marc:datafield[@tag='470']">
1646     <xslo:for-each select="marc:subfield">
1647       <xslo:if test="contains('t', @code)">
1648         <z:index name="Title:w Title:p">
1649           <xslo:value-of select="."/>
1650         </z:index>
1651       </xslo:if>
1652     </xslo:for-each>
1653   </xslo:template>
1654   <xslo:template mode="index_subfields" match="marc:datafield[@tag='481']">
1655     <xslo:for-each select="marc:subfield">
1656       <xslo:if test="contains('t', @code)">
1657         <z:index name="Title:w Title:p">
1658           <xslo:value-of select="."/>
1659         </z:index>
1660       </xslo:if>
1661     </xslo:for-each>
1662   </xslo:template>
1663   <xslo:template mode="index_subfields" match="marc:datafield[@tag='482']">
1664     <xslo:for-each select="marc:subfield">
1665       <xslo:if test="contains('t', @code)">
1666         <z:index name="Title:w Title:p">
1667           <xslo:value-of select="."/>
1668         </z:index>
1669       </xslo:if>
1670     </xslo:for-each>
1671   </xslo:template>
1672   <xslo:template mode="index_subfields" match="marc:datafield[@tag='488']">
1673     <xslo:for-each select="marc:subfield">
1674       <xslo:if test="contains('t', @code)">
1675         <z:index name="Title:w Title:p">
1676           <xslo:value-of select="."/>
1677         </z:index>
1678       </xslo:if>
1679     </xslo:for-each>
1680   </xslo:template>
1681   <xslo:template mode="index_subfields" match="marc:datafield[@tag='400']">
1682     <xslo:for-each select="marc:subfield">
1683       <xslo:if test="contains('t', @code)">
1684         <z:index name="Title:w Title:p">
1685           <xslo:value-of select="."/>
1686         </z:index>
1687       </xslo:if>
1688     </xslo:for-each>
1689     <xslo:for-each select="marc:subfield">
1690       <xslo:if test="contains('d', @code)">
1691         <z:index name="pubdate:n">
1692           <xslo:value-of select="."/>
1693         </z:index>
1694       </xslo:if>
1695     </xslo:for-each>
1696   </xslo:template>
1697   <xslo:template mode="index_subfields" match="marc:datafield[@tag='401']">
1698     <xslo:for-each select="marc:subfield">
1699       <xslo:if test="contains('t', @code)">
1700         <z:index name="Title:w Title:p">
1701           <xslo:value-of select="."/>
1702         </z:index>
1703       </xslo:if>
1704     </xslo:for-each>
1705     <xslo:for-each select="marc:subfield">
1706       <xslo:if test="contains('d', @code)">
1707         <z:index name="pubdate:n">
1708           <xslo:value-of select="."/>
1709         </z:index>
1710       </xslo:if>
1711     </xslo:for-each>
1712   </xslo:template>
1713   <xslo:template mode="index_subfields" match="marc:datafield[@tag='403']">
1714     <xslo:for-each select="marc:subfield">
1715       <xslo:if test="contains('t', @code)">
1716         <z:index name="Title:w Title:p Title-Uniform:w Title-Uniform:p">
1717           <xslo:value-of select="."/>
1718         </z:index>
1719       </xslo:if>
1720     </xslo:for-each>
1721     <xslo:for-each select="marc:subfield">
1722       <xslo:if test="contains('d', @code)">
1723         <z:index name="pubdate:n">
1724           <xslo:value-of select="."/>
1725         </z:index>
1726       </xslo:if>
1727     </xslo:for-each>
1728   </xslo:template>
1729   <xslo:template mode="index_subfields" match="marc:datafield[@tag='414']">
1730     <xslo:for-each select="marc:subfield">
1731       <xslo:if test="contains('t', @code)">
1732         <z:index name="Title:w Title:p">
1733           <xslo:value-of select="."/>
1734         </z:index>
1735       </xslo:if>
1736     </xslo:for-each>
1737     <xslo:for-each select="marc:subfield">
1738       <xslo:if test="contains('d', @code)">
1739         <z:index name="pubdate:n">
1740           <xslo:value-of select="."/>
1741         </z:index>
1742       </xslo:if>
1743     </xslo:for-each>
1744   </xslo:template>
1745   <xslo:template mode="index_subfields" match="marc:datafield[@tag='415']">
1746     <xslo:for-each select="marc:subfield">
1747       <xslo:if test="contains('t', @code)">
1748         <z:index name="Title:w Title:p">
1749           <xslo:value-of select="."/>
1750         </z:index>
1751       </xslo:if>
1752     </xslo:for-each>
1753     <xslo:for-each select="marc:subfield">
1754       <xslo:if test="contains('d', @code)">
1755         <z:index name="pubdate:n">
1756           <xslo:value-of select="."/>
1757         </z:index>
1758       </xslo:if>
1759     </xslo:for-each>
1760   </xslo:template>
1761   <xslo:template mode="index_subfields" match="marc:datafield[@tag='416']">
1762     <xslo:for-each select="marc:subfield">
1763       <xslo:if test="contains('t', @code)">
1764         <z:index name="Title:w Title:p">
1765           <xslo:value-of select="."/>
1766         </z:index>
1767       </xslo:if>
1768     </xslo:for-each>
1769     <xslo:for-each select="marc:subfield">
1770       <xslo:if test="contains('d', @code)">
1771         <z:index name="pubdate:n">
1772           <xslo:value-of select="."/>
1773         </z:index>
1774       </xslo:if>
1775     </xslo:for-each>
1776   </xslo:template>
1777   <xslo:template mode="index_subfields" match="marc:datafield[@tag='417']">
1778     <xslo:for-each select="marc:subfield">
1779       <xslo:if test="contains('t', @code)">
1780         <z:index name="Title:w Title:p">
1781           <xslo:value-of select="."/>
1782         </z:index>
1783       </xslo:if>
1784     </xslo:for-each>
1785     <xslo:for-each select="marc:subfield">
1786       <xslo:if test="contains('d', @code)">
1787         <z:index name="pubdate:n">
1788           <xslo:value-of select="."/>
1789         </z:index>
1790       </xslo:if>
1791     </xslo:for-each>
1792   </xslo:template>
1793   <xslo:template mode="index_subfields" match="marc:datafield[@tag='418']">
1794     <xslo:for-each select="marc:subfield">
1795       <xslo:if test="contains('t', @code)">
1796         <z:index name="Title:w Title:p">
1797           <xslo:value-of select="."/>
1798         </z:index>
1799       </xslo:if>
1800     </xslo:for-each>
1801     <xslo:for-each select="marc:subfield">
1802       <xslo:if test="contains('d', @code)">
1803         <z:index name="pubdate:n">
1804           <xslo:value-of select="."/>
1805         </z:index>
1806       </xslo:if>
1807     </xslo:for-each>
1808   </xslo:template>
1809   <xslo:template mode="index_subfields" match="marc:datafield[@tag='419']">
1810     <xslo:for-each select="marc:subfield">
1811       <xslo:if test="contains('t', @code)">
1812         <z:index name="Title:w Title:p">
1813           <xslo:value-of select="."/>
1814         </z:index>
1815       </xslo:if>
1816     </xslo:for-each>
1817     <xslo:for-each select="marc:subfield">
1818       <xslo:if test="contains('d', @code)">
1819         <z:index name="pubdate:n">
1820           <xslo:value-of select="."/>
1821         </z:index>
1822       </xslo:if>
1823     </xslo:for-each>
1824   </xslo:template>
1825   <xslo:template mode="index_subfields" match="marc:datafield[@tag='420']">
1826     <xslo:for-each select="marc:subfield">
1827       <xslo:if test="contains('t', @code)">
1828         <z:index name="Title:w 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('d', @code)">
1835         <z:index name="pubdate:n">
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='500']">
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:template>
1850   <xslo:template mode="index_subfields" match="marc:datafield[@tag='501']">
1851     <xslo:for-each select="marc:subfield">
1852       <xslo:if test="contains('9', @code)">
1853         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1854           <xslo:value-of select="."/>
1855         </z:index>
1856       </xslo:if>
1857     </xslo:for-each>
1858   </xslo:template>
1859   <xslo:template mode="index_subfields" match="marc:datafield[@tag='503']">
1860     <xslo:for-each select="marc:subfield">
1861       <xslo:if test="contains('9', @code)">
1862         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1863           <xslo:value-of select="."/>
1864         </z:index>
1865       </xslo:if>
1866     </xslo:for-each>
1867   </xslo:template>
1868   <xslo:template mode="index_subfields" match="marc:datafield[@tag='510']">
1869     <xslo:for-each select="marc:subfield">
1870       <xslo:if test="contains('9', @code)">
1871         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1872           <xslo:value-of select="."/>
1873         </z:index>
1874       </xslo:if>
1875     </xslo:for-each>
1876   </xslo:template>
1877   <xslo:template mode="index_subfields" match="marc:datafield[@tag='512']">
1878     <xslo:for-each select="marc:subfield">
1879       <xslo:if test="contains('9', @code)">
1880         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1881           <xslo:value-of select="."/>
1882         </z:index>
1883       </xslo:if>
1884     </xslo:for-each>
1885   </xslo:template>
1886   <xslo:template mode="index_subfields" match="marc:datafield[@tag='513']">
1887     <xslo:for-each select="marc:subfield">
1888       <xslo:if test="contains('9', @code)">
1889         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1890           <xslo:value-of select="."/>
1891         </z:index>
1892       </xslo:if>
1893     </xslo:for-each>
1894   </xslo:template>
1895   <xslo:template mode="index_subfields" match="marc:datafield[@tag='514']">
1896     <xslo:for-each select="marc:subfield">
1897       <xslo:if test="contains('9', @code)">
1898         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1899           <xslo:value-of select="."/>
1900         </z:index>
1901       </xslo:if>
1902     </xslo:for-each>
1903   </xslo:template>
1904   <xslo:template mode="index_subfields" match="marc:datafield[@tag='515']">
1905     <xslo:for-each select="marc:subfield">
1906       <xslo:if test="contains('9', @code)">
1907         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1908           <xslo:value-of select="."/>
1909         </z:index>
1910       </xslo:if>
1911     </xslo:for-each>
1912   </xslo:template>
1913   <xslo:template mode="index_subfields" match="marc:datafield[@tag='516']">
1914     <xslo:for-each select="marc:subfield">
1915       <xslo:if test="contains('9', @code)">
1916         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1917           <xslo:value-of select="."/>
1918         </z:index>
1919       </xslo:if>
1920     </xslo:for-each>
1921   </xslo:template>
1922   <xslo:template mode="index_subfields" match="marc:datafield[@tag='517']">
1923     <xslo:for-each select="marc:subfield">
1924       <xslo:if test="contains('9', @code)">
1925         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1926           <xslo:value-of select="."/>
1927         </z:index>
1928       </xslo:if>
1929     </xslo:for-each>
1930   </xslo:template>
1931   <xslo:template mode="index_subfields" match="marc:datafield[@tag='518']">
1932     <xslo:for-each select="marc:subfield">
1933       <xslo:if test="contains('9', @code)">
1934         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1935           <xslo:value-of select="."/>
1936         </z:index>
1937       </xslo:if>
1938     </xslo:for-each>
1939   </xslo:template>
1940   <xslo:template mode="index_subfields" match="marc:datafield[@tag='519']">
1941     <xslo:for-each select="marc:subfield">
1942       <xslo:if test="contains('9', @code)">
1943         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1944           <xslo:value-of select="."/>
1945         </z:index>
1946       </xslo:if>
1947     </xslo:for-each>
1948   </xslo:template>
1949   <xslo:template mode="index_subfields" match="marc:datafield[@tag='520']">
1950     <xslo:for-each select="marc:subfield">
1951       <xslo:if test="contains('9', @code)">
1952         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1953           <xslo:value-of select="."/>
1954         </z:index>
1955       </xslo:if>
1956     </xslo:for-each>
1957   </xslo:template>
1958   <xslo:template mode="index_subfields" match="marc:datafield[@tag='530']">
1959     <xslo:for-each select="marc:subfield">
1960       <xslo:if test="contains('9', @code)">
1961         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1962           <xslo:value-of select="."/>
1963         </z:index>
1964       </xslo:if>
1965     </xslo:for-each>
1966   </xslo:template>
1967   <xslo:template mode="index_subfields" match="marc:datafield[@tag='531']">
1968     <xslo:for-each select="marc:subfield">
1969       <xslo:if test="contains('9', @code)">
1970         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1971           <xslo:value-of select="."/>
1972         </z:index>
1973       </xslo:if>
1974     </xslo:for-each>
1975   </xslo:template>
1976   <xslo:template mode="index_subfields" match="marc:datafield[@tag='532']">
1977     <xslo:for-each select="marc:subfield">
1978       <xslo:if test="contains('9', @code)">
1979         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1980           <xslo:value-of select="."/>
1981         </z:index>
1982       </xslo:if>
1983     </xslo:for-each>
1984   </xslo:template>
1985   <xslo:template mode="index_subfields" match="marc:datafield[@tag='540']">
1986     <xslo:for-each select="marc:subfield">
1987       <xslo:if test="contains('9', @code)">
1988         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1989           <xslo:value-of select="."/>
1990         </z:index>
1991       </xslo:if>
1992     </xslo:for-each>
1993   </xslo:template>
1994   <xslo:template mode="index_subfields" match="marc:datafield[@tag='541']">
1995     <xslo:for-each select="marc:subfield">
1996       <xslo:if test="contains('9', @code)">
1997         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1998           <xslo:value-of select="."/>
1999         </z:index>
2000       </xslo:if>
2001     </xslo:for-each>
2002   </xslo:template>
2003   <xslo:template mode="index_subfields" match="marc:datafield[@tag='545']">
2004     <xslo:for-each select="marc:subfield">
2005       <xslo:if test="contains('9', @code)">
2006         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2007           <xslo:value-of select="."/>
2008         </z:index>
2009       </xslo:if>
2010     </xslo:for-each>
2011   </xslo:template>
2012   <xslo:template mode="index_subfields" match="marc:datafield[@tag='560']">
2013     <xslo:for-each select="marc:subfield">
2014       <xslo:if test="contains('9', @code)">
2015         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2016           <xslo:value-of select="."/>
2017         </z:index>
2018       </xslo:if>
2019     </xslo:for-each>
2020   </xslo:template>
2021   <xslo:template mode="index_subfields" match="marc:datafield[@tag='600']">
2022     <xslo:for-each select="marc:subfield">
2023       <xslo:if test="contains('9', @code)">
2024         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2025           <xslo:value-of select="."/>
2026         </z:index>
2027       </xslo:if>
2028     </xslo:for-each>
2029     <xslo:for-each select="marc:subfield">
2030       <xslo:if test="contains('a', @code)">
2031         <z:index name="Personal-name:w Personal-name:p Subject:w Subject:p">
2032           <xslo:value-of select="."/>
2033         </z:index>
2034       </xslo:if>
2035     </xslo:for-each>
2036   </xslo:template>
2037   <xslo:template mode="index_subfields" match="marc:datafield[@tag='601']">
2038     <xslo:for-each select="marc:subfield">
2039       <xslo:if test="contains('9', @code)">
2040         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2041           <xslo:value-of select="."/>
2042         </z:index>
2043       </xslo:if>
2044     </xslo:for-each>
2045     <xslo:for-each select="marc:subfield">
2046       <xslo:if test="contains('a', @code)">
2047         <z:index name="Corporate-name:w Conference-name:w Corporate-name:p Conference-name:p">
2048           <xslo:value-of select="."/>
2049         </z:index>
2050       </xslo:if>
2051     </xslo:for-each>
2052   </xslo:template>
2053   <xslo:template mode="index_subfields" match="marc:datafield[@tag='602']">
2054     <xslo:for-each select="marc:subfield">
2055       <xslo:if test="contains('9', @code)">
2056         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2057           <xslo:value-of select="."/>
2058         </z:index>
2059       </xslo:if>
2060     </xslo:for-each>
2061     <xslo:for-each select="marc:subfield">
2062       <xslo:if test="contains('a', @code)">
2063         <z:index name="Personal-name:w Personal-name:p">
2064           <xslo:value-of select="."/>
2065         </z:index>
2066       </xslo:if>
2067     </xslo:for-each>
2068   </xslo:template>
2069   <xslo:template mode="index_subfields" match="marc:datafield[@tag='603']">
2070     <xslo:for-each select="marc:subfield">
2071       <xslo:if test="contains('9', @code)">
2072         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2073           <xslo:value-of select="."/>
2074         </z:index>
2075       </xslo:if>
2076     </xslo:for-each>
2077   </xslo:template>
2078   <xslo:template mode="index_subfields" match="marc:datafield[@tag='604']">
2079     <xslo:for-each select="marc:subfield">
2080       <xslo:if test="contains('9', @code)">
2081         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2082           <xslo:value-of select="."/>
2083         </z:index>
2084       </xslo:if>
2085     </xslo:for-each>
2086   </xslo:template>
2087   <xslo:template mode="index_subfields" match="marc:datafield[@tag='605']">
2088     <xslo:for-each select="marc:subfield">
2089       <xslo:if test="contains('9', @code)">
2090         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2091           <xslo:value-of select="."/>
2092         </z:index>
2093       </xslo:if>
2094     </xslo:for-each>
2095   </xslo:template>
2096   <xslo:template mode="index_subfields" match="marc:datafield[@tag='606']">
2097     <xslo:for-each select="marc:subfield">
2098       <xslo:if test="contains('9', @code)">
2099         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2100           <xslo:value-of select="."/>
2101         </z:index>
2102       </xslo:if>
2103     </xslo:for-each>
2104   </xslo:template>
2105   <xslo:template mode="index_subfields" match="marc:datafield[@tag='607']">
2106     <xslo:for-each select="marc:subfield">
2107       <xslo:if test="contains('9', @code)">
2108         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2109           <xslo:value-of select="."/>
2110         </z:index>
2111       </xslo:if>
2112     </xslo:for-each>
2113   </xslo:template>
2114   <xslo:template mode="index_subfields" match="marc:datafield[@tag='608']">
2115     <xslo:for-each select="marc:subfield">
2116       <xslo:if test="contains('9', @code)">
2117         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2118           <xslo:value-of select="."/>
2119         </z:index>
2120       </xslo:if>
2121     </xslo:for-each>
2122   </xslo:template>
2123   <xslo:template mode="index_subfields" match="marc:datafield[@tag='610']">
2124     <xslo:for-each select="marc:subfield">
2125       <xslo:if test="contains('9', @code)">
2126         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
2127           <xslo:value-of select="."/>
2128         </z:index>
2129       </xslo:if>
2130     </xslo:for-each>
2131   </xslo:template>
2132   <xslo:template mode="index_subfields" match="marc:datafield[@tag='615']">
2133     <xslo:for-each select="marc:subfield">
2134       <xslo:if test="contains('9', @code)">
2135         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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='616']">
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='617']">
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='620']">
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='621']">
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='630']">
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='631']">
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='632']">
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='633']">
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='634']">
2214     <xslo:for-each select="marc:subfield">
2215       <xslo:if test="contains('9', @code)">
2216         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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='635']">
2223     <xslo:for-each select="marc:subfield">
2224       <xslo:if test="contains('9', @code)">
2225         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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='636']">
2232     <xslo:for-each select="marc:subfield">
2233       <xslo:if test="contains('9', @code)">
2234         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
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='675']">
2241     <xslo:for-each select="marc:subfield">
2242       <xslo:if test="contains('a', @code)">
2243         <z:index name="UDC-classification:w UDC-classification:p UDC-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='676']">
2250     <xslo:for-each select="marc:subfield">
2251       <xslo:if test="contains('a', @code)">
2252         <z:index name="Dewey-classification:w Dewey-classification:p Dewey-classification: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='680']">
2259     <xslo:for-each select="marc:subfield">
2260       <xslo:if test="contains('b', @code)">
2261         <z:index name="LC-call-number:s">
2262           <xslo:value-of select="."/>
2263         </z:index>
2264       </xslo:if>
2265     </xslo:for-each>
2266   </xslo:template>
2267   <xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
2268     <xslo:for-each select="marc:subfield">
2269       <xslo:if test="contains('0', @code)">
2270         <z:index name="totalissues:n totalissues:s">
2271           <xslo:value-of select="."/>
2272         </z:index>
2273       </xslo:if>
2274     </xslo:for-each>
2275   </xslo:template>
2276   <xslo:template mode="index_data_field" match="marc:datafield[@tag='700']">
2277     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
2278       <xslo:variable name="raw_heading">
2279         <xslo:for-each select="marc:subfield">
2280           <xslo:if test="position() &gt; 1">
2281             <xslo:value-of select="substring(' ', 1, 1)"/>
2282           </xslo:if>
2283           <xslo:value-of select="."/>
2284         </xslo:for-each>
2285       </xslo:variable>
2286       <xslo:value-of select="normalize-space($raw_heading)"/>
2287     </z:index>
2288   </xslo:template>
2289   <xslo:template mode="index_data_field" match="marc:datafield[@tag='701']">
2290     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
2291       <xslo:variable name="raw_heading">
2292         <xslo:for-each select="marc:subfield">
2293           <xslo:if test="position() &gt; 1">
2294             <xslo:value-of select="substring(' ', 1, 1)"/>
2295           </xslo:if>
2296           <xslo:value-of select="."/>
2297         </xslo:for-each>
2298       </xslo:variable>
2299       <xslo:value-of select="normalize-space($raw_heading)"/>
2300     </z:index>
2301   </xslo:template>
2302   <xslo:template mode="index_data_field" match="marc:datafield[@tag='702']">
2303     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
2304       <xslo:variable name="raw_heading">
2305         <xslo:for-each select="marc:subfield">
2306           <xslo:if test="position() &gt; 1">
2307             <xslo:value-of select="substring(' ', 1, 1)"/>
2308           </xslo:if>
2309           <xslo:value-of select="."/>
2310         </xslo:for-each>
2311       </xslo:variable>
2312       <xslo:value-of select="normalize-space($raw_heading)"/>
2313     </z:index>
2314   </xslo:template>
2315   <xslo:template mode="index_data_field" match="marc:datafield[@tag='710']">
2316     <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">
2317       <xslo:variable name="raw_heading">
2318         <xslo:for-each select="marc:subfield">
2319           <xslo:if test="position() &gt; 1">
2320             <xslo:value-of select="substring(' ', 1, 1)"/>
2321           </xslo:if>
2322           <xslo:value-of select="."/>
2323         </xslo:for-each>
2324       </xslo:variable>
2325       <xslo:value-of select="normalize-space($raw_heading)"/>
2326     </z:index>
2327   </xslo:template>
2328   <xslo:template mode="index_data_field" match="marc:datafield[@tag='711']">
2329     <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">
2330       <xslo:variable name="raw_heading">
2331         <xslo:for-each select="marc:subfield">
2332           <xslo:if test="position() &gt; 1">
2333             <xslo:value-of select="substring(' ', 1, 1)"/>
2334           </xslo:if>
2335           <xslo:value-of select="."/>
2336         </xslo:for-each>
2337       </xslo:variable>
2338       <xslo:value-of select="normalize-space($raw_heading)"/>
2339     </z:index>
2340   </xslo:template>
2341   <xslo:template mode="index_data_field" match="marc:datafield[@tag='712']">
2342     <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">
2343       <xslo:variable name="raw_heading">
2344         <xslo:for-each select="marc:subfield">
2345           <xslo:if test="position() &gt; 1">
2346             <xslo:value-of select="substring(' ', 1, 1)"/>
2347           </xslo:if>
2348           <xslo:value-of select="."/>
2349         </xslo:for-each>
2350       </xslo:variable>
2351       <xslo:value-of select="normalize-space($raw_heading)"/>
2352     </z:index>
2353   </xslo:template>
2354   <xslo:template mode="index_data_field" match="marc:datafield[@tag='716']">
2355     <z:index name="Author:w Author:p">
2356       <xslo:variable name="raw_heading">
2357         <xslo:for-each select="marc:subfield">
2358           <xslo:if test="position() &gt; 1">
2359             <xslo:value-of select="substring(' ', 1, 1)"/>
2360           </xslo:if>
2361           <xslo:value-of select="."/>
2362         </xslo:for-each>
2363       </xslo:variable>
2364       <xslo:value-of select="normalize-space($raw_heading)"/>
2365     </z:index>
2366   </xslo:template>
2367   <xslo:template mode="index_data_field" match="marc:datafield[@tag='720']">
2368     <z:index name="Author:w Author:p">
2369       <xslo:variable name="raw_heading">
2370         <xslo:for-each select="marc:subfield">
2371           <xslo:if test="position() &gt; 1">
2372             <xslo:value-of select="substring(' ', 1, 1)"/>
2373           </xslo:if>
2374           <xslo:value-of select="."/>
2375         </xslo:for-each>
2376       </xslo:variable>
2377       <xslo:value-of select="normalize-space($raw_heading)"/>
2378     </z:index>
2379   </xslo:template>
2380   <xslo:template mode="index_data_field" match="marc:datafield[@tag='721']">
2381     <z:index name="Author:w Author:p">
2382       <xslo:variable name="raw_heading">
2383         <xslo:for-each select="marc:subfield">
2384           <xslo:if test="position() &gt; 1">
2385             <xslo:value-of select="substring(' ', 1, 1)"/>
2386           </xslo:if>
2387           <xslo:value-of select="."/>
2388         </xslo:for-each>
2389       </xslo:variable>
2390       <xslo:value-of select="normalize-space($raw_heading)"/>
2391     </z:index>
2392   </xslo:template>
2393   <xslo:template mode="index_data_field" match="marc:datafield[@tag='722']">
2394     <z:index name="Author:w Author:p">
2395       <xslo:variable name="raw_heading">
2396         <xslo:for-each select="marc:subfield">
2397           <xslo:if test="position() &gt; 1">
2398             <xslo:value-of select="substring(' ', 1, 1)"/>
2399           </xslo:if>
2400           <xslo:value-of select="."/>
2401         </xslo:for-each>
2402       </xslo:variable>
2403       <xslo:value-of select="normalize-space($raw_heading)"/>
2404     </z:index>
2405   </xslo:template>
2406   <xslo:template mode="index_data_field" match="marc:datafield[@tag='730']">
2407     <z:index name="Author:w Author:p">
2408       <xslo:variable name="raw_heading">
2409         <xslo:for-each select="marc:subfield">
2410           <xslo:if test="position() &gt; 1">
2411             <xslo:value-of select="substring(' ', 1, 1)"/>
2412           </xslo:if>
2413           <xslo:value-of select="."/>
2414         </xslo:for-each>
2415       </xslo:variable>
2416       <xslo:value-of select="normalize-space($raw_heading)"/>
2417     </z:index>
2418   </xslo:template>
2419   <xslo:template mode="index_data_field" match="marc:datafield[@tag='205']">
2420     <z:index name="Title:w Title:p">
2421       <xslo:variable name="raw_heading">
2422         <xslo:for-each select="marc:subfield">
2423           <xslo:if test="position() &gt; 1">
2424             <xslo:value-of select="substring(' ', 1, 1)"/>
2425           </xslo:if>
2426           <xslo:value-of select="."/>
2427         </xslo:for-each>
2428       </xslo:variable>
2429       <xslo:value-of select="normalize-space($raw_heading)"/>
2430     </z:index>
2431   </xslo:template>
2432   <xslo:template mode="index_data_field" match="marc:datafield[@tag='207']">
2433     <z:index name="Serials:w Serials:p">
2434       <xslo:variable name="raw_heading">
2435         <xslo:for-each select="marc:subfield">
2436           <xslo:if test="position() &gt; 1">
2437             <xslo:value-of select="substring(' ', 1, 1)"/>
2438           </xslo:if>
2439           <xslo:value-of select="."/>
2440         </xslo:for-each>
2441       </xslo:variable>
2442       <xslo:value-of select="normalize-space($raw_heading)"/>
2443     </z:index>
2444   </xslo:template>
2445   <xslo:template mode="index_data_field" match="marc:datafield[@tag='208']">
2446     <z:index name="Printed-music:w Printed-music:p">
2447       <xslo:variable name="raw_heading">
2448         <xslo:for-each select="marc:subfield">
2449           <xslo:if test="position() &gt; 1">
2450             <xslo:value-of select="substring(' ', 1, 1)"/>
2451           </xslo:if>
2452           <xslo:value-of select="."/>
2453         </xslo:for-each>
2454       </xslo:variable>
2455       <xslo:value-of select="normalize-space($raw_heading)"/>
2456     </z:index>
2457   </xslo:template>
2458   <xslo:template mode="index_data_field" match="marc:datafield[@tag='215']">
2459     <z:index name="Extent:w">
2460       <xslo:variable name="raw_heading">
2461         <xslo:for-each select="marc:subfield">
2462           <xslo:if test="position() &gt; 1">
2463             <xslo:value-of select="substring(' ', 1, 1)"/>
2464           </xslo:if>
2465           <xslo:value-of select="."/>
2466         </xslo:for-each>
2467       </xslo:variable>
2468       <xslo:value-of select="normalize-space($raw_heading)"/>
2469     </z:index>
2470   </xslo:template>
2471   <xslo:template mode="index_data_field" match="marc:datafield[@tag='308']">
2472     <z:index name="Note:w Note:p">
2473       <xslo:variable name="raw_heading">
2474         <xslo:for-each select="marc:subfield">
2475           <xslo:if test="position() &gt; 1">
2476             <xslo:value-of select="substring(' ', 1, 1)"/>
2477           </xslo:if>
2478           <xslo:value-of select="."/>
2479         </xslo:for-each>
2480       </xslo:variable>
2481       <xslo:value-of select="normalize-space($raw_heading)"/>
2482     </z:index>
2483   </xslo:template>
2484   <xslo:template mode="index_data_field" match="marc:datafield[@tag='328']">
2485     <z:index name="Note:w Note:p">
2486       <xslo:variable name="raw_heading">
2487         <xslo:for-each select="marc:subfield">
2488           <xslo:if test="position() &gt; 1">
2489             <xslo:value-of select="substring(' ', 1, 1)"/>
2490           </xslo:if>
2491           <xslo:value-of select="."/>
2492         </xslo:for-each>
2493       </xslo:variable>
2494       <xslo:value-of select="normalize-space($raw_heading)"/>
2495     </z:index>
2496   </xslo:template>
2497   <xslo:template mode="index_data_field" match="marc:datafield[@tag='500']">
2498     <z:index name="Title:w Title:p">
2499       <xslo:variable name="raw_heading">
2500         <xslo:for-each select="marc:subfield">
2501           <xslo:if test="position() &gt; 1">
2502             <xslo:value-of select="substring(' ', 1, 1)"/>
2503           </xslo:if>
2504           <xslo:value-of select="."/>
2505         </xslo:for-each>
2506       </xslo:variable>
2507       <xslo:value-of select="normalize-space($raw_heading)"/>
2508     </z:index>
2509   </xslo:template>
2510   <xslo:template mode="index_data_field" match="marc:datafield[@tag='501']">
2511     <z:index name="Title:w Title:p">
2512       <xslo:variable name="raw_heading">
2513         <xslo:for-each select="marc:subfield">
2514           <xslo:if test="position() &gt; 1">
2515             <xslo:value-of select="substring(' ', 1, 1)"/>
2516           </xslo:if>
2517           <xslo:value-of select="."/>
2518         </xslo:for-each>
2519       </xslo:variable>
2520       <xslo:value-of select="normalize-space($raw_heading)"/>
2521     </z:index>
2522   </xslo:template>
2523   <xslo:template mode="index_data_field" match="marc:datafield[@tag='503']">
2524     <z:index name="Title:w Title:p">
2525       <xslo:variable name="raw_heading">
2526         <xslo:for-each select="marc:subfield">
2527           <xslo:if test="position() &gt; 1">
2528             <xslo:value-of select="substring(' ', 1, 1)"/>
2529           </xslo:if>
2530           <xslo:value-of select="."/>
2531         </xslo:for-each>
2532       </xslo:variable>
2533       <xslo:value-of select="normalize-space($raw_heading)"/>
2534     </z:index>
2535   </xslo:template>
2536   <xslo:template mode="index_data_field" match="marc:datafield[@tag='510']">
2537     <z:index name="Title:w Title:p">
2538       <xslo:variable name="raw_heading">
2539         <xslo:for-each select="marc:subfield">
2540           <xslo:if test="position() &gt; 1">
2541             <xslo:value-of select="substring(' ', 1, 1)"/>
2542           </xslo:if>
2543           <xslo:value-of select="."/>
2544         </xslo:for-each>
2545       </xslo:variable>
2546       <xslo:value-of select="normalize-space($raw_heading)"/>
2547     </z:index>
2548   </xslo:template>
2549   <xslo:template mode="index_data_field" match="marc:datafield[@tag='512']">
2550     <z:index name="Title:w Title:p">
2551       <xslo:variable name="raw_heading">
2552         <xslo:for-each select="marc:subfield">
2553           <xslo:if test="position() &gt; 1">
2554             <xslo:value-of select="substring(' ', 1, 1)"/>
2555           </xslo:if>
2556           <xslo:value-of select="."/>
2557         </xslo:for-each>
2558       </xslo:variable>
2559       <xslo:value-of select="normalize-space($raw_heading)"/>
2560     </z:index>
2561   </xslo:template>
2562   <xslo:template mode="index_data_field" match="marc:datafield[@tag='513']">
2563     <z:index name="Title:w Title:p">
2564       <xslo:variable name="raw_heading">
2565         <xslo:for-each select="marc:subfield">
2566           <xslo:if test="position() &gt; 1">
2567             <xslo:value-of select="substring(' ', 1, 1)"/>
2568           </xslo:if>
2569           <xslo:value-of select="."/>
2570         </xslo:for-each>
2571       </xslo:variable>
2572       <xslo:value-of select="normalize-space($raw_heading)"/>
2573     </z:index>
2574   </xslo:template>
2575   <xslo:template mode="index_data_field" match="marc:datafield[@tag='514']">
2576     <z:index name="Title:w Title:p">
2577       <xslo:variable name="raw_heading">
2578         <xslo:for-each select="marc:subfield">
2579           <xslo:if test="position() &gt; 1">
2580             <xslo:value-of select="substring(' ', 1, 1)"/>
2581           </xslo:if>
2582           <xslo:value-of select="."/>
2583         </xslo:for-each>
2584       </xslo:variable>
2585       <xslo:value-of select="normalize-space($raw_heading)"/>
2586     </z:index>
2587   </xslo:template>
2588   <xslo:template mode="index_data_field" match="marc:datafield[@tag='515']">
2589     <z:index name="Title:w Title:p">
2590       <xslo:variable name="raw_heading">
2591         <xslo:for-each select="marc:subfield">
2592           <xslo:if test="position() &gt; 1">
2593             <xslo:value-of select="substring(' ', 1, 1)"/>
2594           </xslo:if>
2595           <xslo:value-of select="."/>
2596         </xslo:for-each>
2597       </xslo:variable>
2598       <xslo:value-of select="normalize-space($raw_heading)"/>
2599     </z:index>
2600   </xslo:template>
2601   <xslo:template mode="index_data_field" match="marc:datafield[@tag='516']">
2602     <z:index name="Title:w Title:p">
2603       <xslo:variable name="raw_heading">
2604         <xslo:for-each select="marc:subfield">
2605           <xslo:if test="position() &gt; 1">
2606             <xslo:value-of select="substring(' ', 1, 1)"/>
2607           </xslo:if>
2608           <xslo:value-of select="."/>
2609         </xslo:for-each>
2610       </xslo:variable>
2611       <xslo:value-of select="normalize-space($raw_heading)"/>
2612     </z:index>
2613   </xslo:template>
2614   <xslo:template mode="index_data_field" match="marc:datafield[@tag='517']">
2615     <z:index name="Title:w Title:p">
2616       <xslo:variable name="raw_heading">
2617         <xslo:for-each select="marc:subfield">
2618           <xslo:if test="position() &gt; 1">
2619             <xslo:value-of select="substring(' ', 1, 1)"/>
2620           </xslo:if>
2621           <xslo:value-of select="."/>
2622         </xslo:for-each>
2623       </xslo:variable>
2624       <xslo:value-of select="normalize-space($raw_heading)"/>
2625     </z:index>
2626   </xslo:template>
2627   <xslo:template mode="index_data_field" match="marc:datafield[@tag='518']">
2628     <z:index name="Title:w Title:p">
2629       <xslo:variable name="raw_heading">
2630         <xslo:for-each select="marc:subfield">
2631           <xslo:if test="position() &gt; 1">
2632             <xslo:value-of select="substring(' ', 1, 1)"/>
2633           </xslo:if>
2634           <xslo:value-of select="."/>
2635         </xslo:for-each>
2636       </xslo:variable>
2637       <xslo:value-of select="normalize-space($raw_heading)"/>
2638     </z:index>
2639   </xslo:template>
2640   <xslo:template mode="index_data_field" match="marc:datafield[@tag='519']">
2641     <z:index name="Title:w Title:p">
2642       <xslo:variable name="raw_heading">
2643         <xslo:for-each select="marc:subfield">
2644           <xslo:if test="position() &gt; 1">
2645             <xslo:value-of select="substring(' ', 1, 1)"/>
2646           </xslo:if>
2647           <xslo:value-of select="."/>
2648         </xslo:for-each>
2649       </xslo:variable>
2650       <xslo:value-of select="normalize-space($raw_heading)"/>
2651     </z:index>
2652   </xslo:template>
2653   <xslo:template mode="index_data_field" match="marc:datafield[@tag='520']">
2654     <z:index name="Title:w Title:p">
2655       <xslo:variable name="raw_heading">
2656         <xslo:for-each select="marc:subfield">
2657           <xslo:if test="position() &gt; 1">
2658             <xslo:value-of select="substring(' ', 1, 1)"/>
2659           </xslo:if>
2660           <xslo:value-of select="."/>
2661         </xslo:for-each>
2662       </xslo:variable>
2663       <xslo:value-of select="normalize-space($raw_heading)"/>
2664     </z:index>
2665   </xslo:template>
2666   <xslo:template mode="index_data_field" match="marc:datafield[@tag='530']">
2667     <z:index name="Title:w Title:p">
2668       <xslo:variable name="raw_heading">
2669         <xslo:for-each select="marc:subfield">
2670           <xslo:if test="position() &gt; 1">
2671             <xslo:value-of select="substring(' ', 1, 1)"/>
2672           </xslo:if>
2673           <xslo:value-of select="."/>
2674         </xslo:for-each>
2675       </xslo:variable>
2676       <xslo:value-of select="normalize-space($raw_heading)"/>
2677     </z:index>
2678   </xslo:template>
2679   <xslo:template mode="index_data_field" match="marc:datafield[@tag='531']">
2680     <z:index name="Title:w Title:p">
2681       <xslo:variable name="raw_heading">
2682         <xslo:for-each select="marc:subfield">
2683           <xslo:if test="position() &gt; 1">
2684             <xslo:value-of select="substring(' ', 1, 1)"/>
2685           </xslo:if>
2686           <xslo:value-of select="."/>
2687         </xslo:for-each>
2688       </xslo:variable>
2689       <xslo:value-of select="normalize-space($raw_heading)"/>
2690     </z:index>
2691   </xslo:template>
2692   <xslo:template mode="index_data_field" match="marc:datafield[@tag='532']">
2693     <z:index name="Title:w Title:p">
2694       <xslo:variable name="raw_heading">
2695         <xslo:for-each select="marc:subfield">
2696           <xslo:if test="position() &gt; 1">
2697             <xslo:value-of select="substring(' ', 1, 1)"/>
2698           </xslo:if>
2699           <xslo:value-of select="."/>
2700         </xslo:for-each>
2701       </xslo:variable>
2702       <xslo:value-of select="normalize-space($raw_heading)"/>
2703     </z:index>
2704   </xslo:template>
2705   <xslo:template mode="index_data_field" match="marc:datafield[@tag='540']">
2706     <z:index name="Title:w Title:p">
2707       <xslo:variable name="raw_heading">
2708         <xslo:for-each select="marc:subfield">
2709           <xslo:if test="position() &gt; 1">
2710             <xslo:value-of select="substring(' ', 1, 1)"/>
2711           </xslo:if>
2712           <xslo:value-of select="."/>
2713         </xslo:for-each>
2714       </xslo:variable>
2715       <xslo:value-of select="normalize-space($raw_heading)"/>
2716     </z:index>
2717   </xslo:template>
2718   <xslo:template mode="index_data_field" match="marc:datafield[@tag='541']">
2719     <z:index name="Title:w Title:p">
2720       <xslo:variable name="raw_heading">
2721         <xslo:for-each select="marc:subfield">
2722           <xslo:if test="position() &gt; 1">
2723             <xslo:value-of select="substring(' ', 1, 1)"/>
2724           </xslo:if>
2725           <xslo:value-of select="."/>
2726         </xslo:for-each>
2727       </xslo:variable>
2728       <xslo:value-of select="normalize-space($raw_heading)"/>
2729     </z:index>
2730   </xslo:template>
2731   <xslo:template mode="index_data_field" match="marc:datafield[@tag='545']">
2732     <z:index name="Title:w Title:p">
2733       <xslo:variable name="raw_heading">
2734         <xslo:for-each select="marc:subfield">
2735           <xslo:if test="position() &gt; 1">
2736             <xslo:value-of select="substring(' ', 1, 1)"/>
2737           </xslo:if>
2738           <xslo:value-of select="."/>
2739         </xslo:for-each>
2740       </xslo:variable>
2741       <xslo:value-of select="normalize-space($raw_heading)"/>
2742     </z:index>
2743   </xslo:template>
2744   <xslo:template mode="index_data_field" match="marc:datafield[@tag='560']">
2745     <z:index name="Title:w Title:p">
2746       <xslo:variable name="raw_heading">
2747         <xslo:for-each select="marc:subfield">
2748           <xslo:if test="position() &gt; 1">
2749             <xslo:value-of select="substring(' ', 1, 1)"/>
2750           </xslo:if>
2751           <xslo:value-of select="."/>
2752         </xslo:for-each>
2753       </xslo:variable>
2754       <xslo:value-of select="normalize-space($raw_heading)"/>
2755     </z:index>
2756   </xslo:template>
2757   <xslo:template mode="index_data_field" match="marc:datafield[@tag='600']">
2758     <z:index name="Subject:w Subject:p">
2759       <xslo:variable name="raw_heading">
2760         <xslo:for-each select="marc:subfield">
2761           <xslo:if test="position() &gt; 1">
2762             <xslo:value-of select="substring(' ', 1, 1)"/>
2763           </xslo:if>
2764           <xslo:value-of select="."/>
2765         </xslo:for-each>
2766       </xslo:variable>
2767       <xslo:value-of select="normalize-space($raw_heading)"/>
2768     </z:index>
2769   </xslo:template>
2770   <xslo:template mode="index_data_field" match="marc:datafield[@tag='601']">
2771     <z:index name="Subject:w Subject:p">
2772       <xslo:variable name="raw_heading">
2773         <xslo:for-each select="marc:subfield">
2774           <xslo:if test="position() &gt; 1">
2775             <xslo:value-of select="substring(' ', 1, 1)"/>
2776           </xslo:if>
2777           <xslo:value-of select="."/>
2778         </xslo:for-each>
2779       </xslo:variable>
2780       <xslo:value-of select="normalize-space($raw_heading)"/>
2781     </z:index>
2782   </xslo:template>
2783   <xslo:template mode="index_data_field" match="marc:datafield[@tag='602']">
2784     <z:index name="Subject:w Subject:p">
2785       <xslo:variable name="raw_heading">
2786         <xslo:for-each select="marc:subfield">
2787           <xslo:if test="position() &gt; 1">
2788             <xslo:value-of select="substring(' ', 1, 1)"/>
2789           </xslo:if>
2790           <xslo:value-of select="."/>
2791         </xslo:for-each>
2792       </xslo:variable>
2793       <xslo:value-of select="normalize-space($raw_heading)"/>
2794     </z:index>
2795   </xslo:template>
2796   <xslo:template mode="index_data_field" match="marc:datafield[@tag='604']">
2797     <z:index name="Subject:w Subject:p">
2798       <xslo:variable name="raw_heading">
2799         <xslo:for-each select="marc:subfield">
2800           <xslo:if test="position() &gt; 1">
2801             <xslo:value-of select="substring(' ', 1, 1)"/>
2802           </xslo:if>
2803           <xslo:value-of select="."/>
2804         </xslo:for-each>
2805       </xslo:variable>
2806       <xslo:value-of select="normalize-space($raw_heading)"/>
2807     </z:index>
2808   </xslo:template>
2809   <xslo:template mode="index_data_field" match="marc:datafield[@tag='605']">
2810     <z:index name="Subject:w Subject:p">
2811       <xslo:variable name="raw_heading">
2812         <xslo:for-each select="marc:subfield">
2813           <xslo:if test="position() &gt; 1">
2814             <xslo:value-of select="substring(' ', 1, 1)"/>
2815           </xslo:if>
2816           <xslo:value-of select="."/>
2817         </xslo:for-each>
2818       </xslo:variable>
2819       <xslo:value-of select="normalize-space($raw_heading)"/>
2820     </z:index>
2821   </xslo:template>
2822   <xslo:template mode="index_data_field" match="marc:datafield[@tag='606']">
2823     <z:index name="Subject:w Subject:p">
2824       <xslo:variable name="raw_heading">
2825         <xslo:for-each select="marc:subfield">
2826           <xslo:if test="position() &gt; 1">
2827             <xslo:value-of select="substring(' ', 1, 1)"/>
2828           </xslo:if>
2829           <xslo:value-of select="."/>
2830         </xslo:for-each>
2831       </xslo:variable>
2832       <xslo:value-of select="normalize-space($raw_heading)"/>
2833     </z:index>
2834   </xslo:template>
2835   <xslo:template mode="index_data_field" match="marc:datafield[@tag='607']">
2836     <z:index name="Subject:w Subject:p">
2837       <xslo:variable name="raw_heading">
2838         <xslo:for-each select="marc:subfield">
2839           <xslo:if test="position() &gt; 1">
2840             <xslo:value-of select="substring(' ', 1, 1)"/>
2841           </xslo:if>
2842           <xslo:value-of select="."/>
2843         </xslo:for-each>
2844       </xslo:variable>
2845       <xslo:value-of select="normalize-space($raw_heading)"/>
2846     </z:index>
2847   </xslo:template>
2848   <xslo:template mode="index_data_field" match="marc:datafield[@tag='608']">
2849     <z:index name="Subject:w Subject:p">
2850       <xslo:variable name="raw_heading">
2851         <xslo:for-each select="marc:subfield">
2852           <xslo:if test="position() &gt; 1">
2853             <xslo:value-of select="substring(' ', 1, 1)"/>
2854           </xslo:if>
2855           <xslo:value-of select="."/>
2856         </xslo:for-each>
2857       </xslo:variable>
2858       <xslo:value-of select="normalize-space($raw_heading)"/>
2859     </z:index>
2860   </xslo:template>
2861   <xslo:template mode="index_data_field" match="marc:datafield[@tag='610']">
2862     <z:index name="Subject:w Subject:p">
2863       <xslo:variable name="raw_heading">
2864         <xslo:for-each select="marc:subfield">
2865           <xslo:if test="position() &gt; 1">
2866             <xslo:value-of select="substring(' ', 1, 1)"/>
2867           </xslo:if>
2868           <xslo:value-of select="."/>
2869         </xslo:for-each>
2870       </xslo:variable>
2871       <xslo:value-of select="normalize-space($raw_heading)"/>
2872     </z:index>
2873   </xslo:template>
2874   <xslo:template mode="index_data_field" match="marc:datafield[@tag='615']">
2875     <z:index name="Subject:w Subject:p">
2876       <xslo:variable name="raw_heading">
2877         <xslo:for-each select="marc:subfield">
2878           <xslo:if test="position() &gt; 1">
2879             <xslo:value-of select="substring(' ', 1, 1)"/>
2880           </xslo:if>
2881           <xslo:value-of select="."/>
2882         </xslo:for-each>
2883       </xslo:variable>
2884       <xslo:value-of select="normalize-space($raw_heading)"/>
2885     </z:index>
2886   </xslo:template>
2887   <xslo:template mode="index_data_field" match="marc:datafield[@tag='616']">
2888     <z:index name="Subject:w Subject:p">
2889       <xslo:variable name="raw_heading">
2890         <xslo:for-each select="marc:subfield">
2891           <xslo:if test="position() &gt; 1">
2892             <xslo:value-of select="substring(' ', 1, 1)"/>
2893           </xslo:if>
2894           <xslo:value-of select="."/>
2895         </xslo:for-each>
2896       </xslo:variable>
2897       <xslo:value-of select="normalize-space($raw_heading)"/>
2898     </z:index>
2899   </xslo:template>
2900   <xslo:template mode="index_data_field" match="marc:datafield[@tag='617']">
2901     <z:index name="Subject:w Subject:p">
2902       <xslo:variable name="raw_heading">
2903         <xslo:for-each select="marc:subfield">
2904           <xslo:if test="position() &gt; 1">
2905             <xslo:value-of select="substring(' ', 1, 1)"/>
2906           </xslo:if>
2907           <xslo:value-of select="."/>
2908         </xslo:for-each>
2909       </xslo:variable>
2910       <xslo:value-of select="normalize-space($raw_heading)"/>
2911     </z:index>
2912   </xslo:template>
2913   <xslo:template mode="index_data_field" match="marc:datafield[@tag='620']">
2914     <z:index name="Subject:w Subject:p">
2915       <xslo:variable name="raw_heading">
2916         <xslo:for-each select="marc:subfield">
2917           <xslo:if test="position() &gt; 1">
2918             <xslo:value-of select="substring(' ', 1, 1)"/>
2919           </xslo:if>
2920           <xslo:value-of select="."/>
2921         </xslo:for-each>
2922       </xslo:variable>
2923       <xslo:value-of select="normalize-space($raw_heading)"/>
2924     </z:index>
2925   </xslo:template>
2926   <xslo:template mode="index_data_field" match="marc:datafield[@tag='621']">
2927     <z:index name="Subject:w Subject:p">
2928       <xslo:variable name="raw_heading">
2929         <xslo:for-each select="marc:subfield">
2930           <xslo:if test="position() &gt; 1">
2931             <xslo:value-of select="substring(' ', 1, 1)"/>
2932           </xslo:if>
2933           <xslo:value-of select="."/>
2934         </xslo:for-each>
2935       </xslo:variable>
2936       <xslo:value-of select="normalize-space($raw_heading)"/>
2937     </z:index>
2938   </xslo:template>
2939   <xslo:template mode="index_data_field" match="marc:datafield[@tag='603']">
2940     <z:index name="Subject:w Subject:p">
2941       <xslo:variable name="raw_heading">
2942         <xslo:for-each select="marc:subfield">
2943           <xslo:if test="position() &gt; 1">
2944             <xslo:value-of select="substring(' ', 1, 1)"/>
2945           </xslo:if>
2946           <xslo:value-of select="."/>
2947         </xslo:for-each>
2948       </xslo:variable>
2949       <xslo:value-of select="normalize-space($raw_heading)"/>
2950     </z:index>
2951   </xslo:template>
2952   <xslo:template mode="index_data_field" match="marc:datafield[@tag='630']">
2953     <z:index name="Subject:w Subject:p">
2954       <xslo:variable name="raw_heading">
2955         <xslo:for-each select="marc:subfield">
2956           <xslo:if test="position() &gt; 1">
2957             <xslo:value-of select="substring(' ', 1, 1)"/>
2958           </xslo:if>
2959           <xslo:value-of select="."/>
2960         </xslo:for-each>
2961       </xslo:variable>
2962       <xslo:value-of select="normalize-space($raw_heading)"/>
2963     </z:index>
2964   </xslo:template>
2965   <xslo:template mode="index_data_field" match="marc:datafield[@tag='631']">
2966     <z:index name="Subject:w Subject:p">
2967       <xslo:variable name="raw_heading">
2968         <xslo:for-each select="marc:subfield">
2969           <xslo:if test="position() &gt; 1">
2970             <xslo:value-of select="substring(' ', 1, 1)"/>
2971           </xslo:if>
2972           <xslo:value-of select="."/>
2973         </xslo:for-each>
2974       </xslo:variable>
2975       <xslo:value-of select="normalize-space($raw_heading)"/>
2976     </z:index>
2977   </xslo:template>
2978   <xslo:template mode="index_data_field" match="marc:datafield[@tag='632']">
2979     <z:index name="Subject:w Subject:p">
2980       <xslo:variable name="raw_heading">
2981         <xslo:for-each select="marc:subfield">
2982           <xslo:if test="position() &gt; 1">
2983             <xslo:value-of select="substring(' ', 1, 1)"/>
2984           </xslo:if>
2985           <xslo:value-of select="."/>
2986         </xslo:for-each>
2987       </xslo:variable>
2988       <xslo:value-of select="normalize-space($raw_heading)"/>
2989     </z:index>
2990   </xslo:template>
2991   <xslo:template mode="index_data_field" match="marc:datafield[@tag='633']">
2992     <z:index name="Subject:w Subject:p">
2993       <xslo:variable name="raw_heading">
2994         <xslo:for-each select="marc:subfield">
2995           <xslo:if test="position() &gt; 1">
2996             <xslo:value-of select="substring(' ', 1, 1)"/>
2997           </xslo:if>
2998           <xslo:value-of select="."/>
2999         </xslo:for-each>
3000       </xslo:variable>
3001       <xslo:value-of select="normalize-space($raw_heading)"/>
3002     </z:index>
3003   </xslo:template>
3004   <xslo:template mode="index_data_field" match="marc:datafield[@tag='634']">
3005     <z:index name="Subject:w Subject:p">
3006       <xslo:variable name="raw_heading">
3007         <xslo:for-each select="marc:subfield">
3008           <xslo:if test="position() &gt; 1">
3009             <xslo:value-of select="substring(' ', 1, 1)"/>
3010           </xslo:if>
3011           <xslo:value-of select="."/>
3012         </xslo:for-each>
3013       </xslo:variable>
3014       <xslo:value-of select="normalize-space($raw_heading)"/>
3015     </z:index>
3016   </xslo:template>
3017   <xslo:template mode="index_data_field" match="marc:datafield[@tag='635']">
3018     <z:index name="Subject:w Subject:p">
3019       <xslo:variable name="raw_heading">
3020         <xslo:for-each select="marc:subfield">
3021           <xslo:if test="position() &gt; 1">
3022             <xslo:value-of select="substring(' ', 1, 1)"/>
3023           </xslo:if>
3024           <xslo:value-of select="."/>
3025         </xslo:for-each>
3026       </xslo:variable>
3027       <xslo:value-of select="normalize-space($raw_heading)"/>
3028     </z:index>
3029   </xslo:template>
3030   <xslo:template mode="index_data_field" match="marc:datafield[@tag='636']">
3031     <z:index name="Subject:w Subject:p">
3032       <xslo:variable name="raw_heading">
3033         <xslo:for-each select="marc:subfield">
3034           <xslo:if test="position() &gt; 1">
3035             <xslo:value-of select="substring(' ', 1, 1)"/>
3036           </xslo:if>
3037           <xslo:value-of select="."/>
3038         </xslo:for-each>
3039       </xslo:variable>
3040       <xslo:value-of select="normalize-space($raw_heading)"/>
3041     </z:index>
3042   </xslo:template>
3043   <xslo:template mode="index_data_field" match="marc:datafield[@tag='646']">
3044     <z:index name="Subject:w Subject:p">
3045       <xslo:variable name="raw_heading">
3046         <xslo:for-each select="marc:subfield">
3047           <xslo:if test="position() &gt; 1">
3048             <xslo:value-of select="substring(' ', 1, 1)"/>
3049           </xslo:if>
3050           <xslo:value-of select="."/>
3051         </xslo:for-each>
3052       </xslo:variable>
3053       <xslo:value-of select="normalize-space($raw_heading)"/>
3054     </z:index>
3055   </xslo:template>
3056   <xslo:template mode="index_data_field" match="marc:datafield[@tag='670']">
3057     <z:index name="Subject-precis:w Subject-precis:p">
3058       <xslo:variable name="raw_heading">
3059         <xslo:for-each select="marc:subfield">
3060           <xslo:if test="position() &gt; 1">
3061             <xslo:value-of select="substring(' ', 1, 1)"/>
3062           </xslo:if>
3063           <xslo:value-of select="."/>
3064         </xslo:for-each>
3065       </xslo:variable>
3066       <xslo:value-of select="normalize-space($raw_heading)"/>
3067     </z:index>
3068   </xslo:template>
3069   <xslo:template mode="index_data_field" match="marc:datafield[@tag='680']">
3070     <z:index name="LC-call-number:w LC-call-number:p">
3071       <xslo:variable name="raw_heading">
3072         <xslo:for-each select="marc:subfield">
3073           <xslo:if test="position() &gt; 1">
3074             <xslo:value-of select="substring(' ', 1, 1)"/>
3075           </xslo:if>
3076           <xslo:value-of select="."/>
3077         </xslo:for-each>
3078       </xslo:variable>
3079       <xslo:value-of select="normalize-space($raw_heading)"/>
3080     </z:index>
3081   </xslo:template>
3082   <xslo:template mode="index_data_field" match="marc:datafield[@tag='686']">
3083     <z:index name="Local-classification:w Local-classification:p">
3084       <xslo:variable name="raw_heading">
3085         <xslo:for-each select="marc:subfield">
3086           <xslo:if test="position() &gt; 1">
3087             <xslo:value-of select="substring(' ', 1, 1)"/>
3088           </xslo:if>
3089           <xslo:value-of select="."/>
3090         </xslo:for-each>
3091       </xslo:variable>
3092       <xslo:value-of select="normalize-space($raw_heading)"/>
3093     </z:index>
3094   </xslo:template>
3095   <xslo:template mode="index_data_field" match="marc:datafield[@tag='995']">
3096     <z:index name="item:w">
3097       <xslo:variable name="raw_heading">
3098         <xslo:for-each select="marc:subfield">
3099           <xslo:if test="position() &gt; 1">
3100             <xslo:value-of select="substring(' ', 1, 1)"/>
3101           </xslo:if>
3102           <xslo:value-of select="."/>
3103         </xslo:for-each>
3104       </xslo:variable>
3105       <xslo:value-of select="normalize-space($raw_heading)"/>
3106     </z:index>
3107   </xslo:template>
3108   <xslo:template mode="index_all" match="text()">
3109     <z:index name="Any:w Any:p">
3110       <xslo:value-of select="."/>
3111     </z:index>
3112   </xslo:template>
3113   <xslo:template name="chopPunctuation">
3114     <xslo:param name="chopString"/>
3115     <xslo:variable name="length" select="string-length($chopString)"/>
3116     <xslo:choose>
3117       <xslo:when test="$length=0"/>
3118       <xslo:when test="contains('-,.:=;!%/', substring($chopString,$length,1))">
3119         <xslo:call-template name="chopPunctuation">
3120           <xslo:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
3121         </xslo:call-template>
3122       </xslo:when>
3123       <xslo:when test="not($chopString)"/>
3124       <xslo:otherwise>
3125         <xslo:value-of select="$chopString"/>
3126       </xslo:otherwise>
3127     </xslo:choose>
3128     <xslo:text/>
3129   </xslo:template>
3130 </xslo:stylesheet>