Bug 7818 Add UNIMARC biblio records zebra DOM def files
[koha-equinox.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_match_heading"/>
17   <xslo:template match="text()" mode="index_subject_thesaurus"/>
18   <xslo:template match="/">
19     <xslo:if test="marc:collection">
20       <collection>
21         <xslo:apply-templates select="marc:collection/marc:record"/>
22       </collection>
23     </xslo:if>
24     <xslo:if test="marc:record">
25       <xslo:apply-templates select="marc:record"/>
26     </xslo:if>
27   </xslo:template>
28   <xslo:template match="marc:record">
29     <xslo:variable name="controlField001" select="normalize-space(marc:controlfield[@tag='001'])"/>
30     <z:record type="update">
31       <xslo:attribute name="z:id">
32         <xslo:value-of select="$controlField001"/>
33       </xslo:attribute>
34       <xslo:apply-templates/>
35       <xslo:apply-templates mode="index_subfields"/>
36       <xslo:apply-templates mode="index_data_field"/>
37       <xslo:apply-templates mode="index_heading"/>
38       <xslo:apply-templates mode="index_match_heading"/>
39       <xslo:apply-templates mode="index_subject_thesaurus"/>
40     </z:record>
41   </xslo:template>
42   <xslo:template match="marc:controlfield[@tag='001']">
43     <z:index name="Local-number:w">
44       <xslo:value-of select="."/>
45     </z:index>
46     <z:index name="Local-number:n">
47       <xslo:value-of select="."/>
48     </z:index>
49   </xslo:template>
50   <xslo:template match="marc:controlfield[@tag='009']">
51     <z:index name="Identifier-standard:w">
52       <xslo:value-of select="."/>
53     </z:index>
54     <z:index name="Identifier-standard:n">
55       <xslo:value-of select="."/>
56     </z:index>
57   </xslo:template>
58   <xslo:template mode="index_subfields" match="marc:datafield[@tag='090']">
59     <xslo:for-each select="marc:subfield">
60       <xslo:if test="contains('9', @code)">
61         <z:index name="Local-number:w Local-number:n">
62           <xslo:value-of select="."/>
63         </z:index>
64       </xslo:if>
65     </xslo:for-each>
66   </xslo:template>
67   <xslo:template mode="index_subfields" match="marc:datafield[@tag='099']">
68     <xslo:for-each select="marc:subfield">
69       <xslo:if test="contains('c', @code)">
70         <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">
71           <xslo:value-of select="."/>
72         </z:index>
73       </xslo:if>
74     </xslo:for-each>
75     <xslo:for-each select="marc:subfield">
76       <xslo:if test="contains('d', @code)">
77         <z:index name="Date/time-last-modified:s Date/time-last-modified:n Date/time-last-modified:y">
78           <xslo:value-of select="."/>
79         </z:index>
80       </xslo:if>
81     </xslo:for-each>
82     <xslo:for-each select="marc:subfield">
83       <xslo:if test="contains('t', @code)">
84         <z:index name="ccode:w">
85           <xslo:value-of select="."/>
86         </z:index>
87       </xslo:if>
88     </xslo:for-each>
89   </xslo:template>
90   <xslo:template mode="index_subfields" match="marc:datafield[@tag='010']">
91     <xslo:for-each select="marc:subfield">
92       <xslo:if test="contains('a', @code)">
93         <z:index name="ISBN:w">
94           <xslo:value-of select="."/>
95         </z:index>
96       </xslo:if>
97     </xslo:for-each>
98     <xslo:for-each select="marc:subfield">
99       <xslo:if test="contains('z', @code)">
100         <z:index name="ISBN:w Identifier-standard:w">
101           <xslo:value-of select="."/>
102         </z:index>
103       </xslo:if>
104     </xslo:for-each>
105   </xslo:template>
106   <xslo:template mode="index_subfields" match="marc:datafield[@tag='011']">
107     <xslo:for-each select="marc:subfield">
108       <xslo:if test="contains('a', @code)">
109         <z:index name="ISSN:w Identifier-standard:w">
110           <xslo:value-of select="."/>
111         </z:index>
112       </xslo:if>
113     </xslo:for-each>
114     <xslo:for-each select="marc:subfield">
115       <xslo:if test="contains('y', @code)">
116         <z:index name="ISSN:w Identifier-standard:w">
117           <xslo:value-of select="."/>
118         </z:index>
119       </xslo:if>
120     </xslo:for-each>
121     <xslo:for-each select="marc:subfield">
122       <xslo:if test="contains('z', @code)">
123         <z:index name="ISSN:w Identifier-standard:w">
124           <xslo:value-of select="."/>
125         </z:index>
126       </xslo:if>
127     </xslo:for-each>
128   </xslo:template>
129   <xslo:template mode="index_subfields" match="marc:datafield[@tag='200']">
130     <xslo:for-each select="marc:subfield">
131       <xslo:if test="contains('b', @code)">
132         <z:index name="itemtype:w itemtype:p itype:w itype:p">
133           <xslo:value-of select="."/>
134         </z:index>
135       </xslo:if>
136     </xslo:for-each>
137     <xslo:for-each select="marc:subfield">
138       <xslo:if test="contains('b', @code)">
139         <z:index name="itype:w itype:p">
140           <xslo:value-of select="."/>
141         </z:index>
142       </xslo:if>
143     </xslo:for-each>
144     <xslo:for-each select="marc:subfield">
145       <xslo:if test="contains('f', @code)">
146         <z:index name="Author:w Author:p">
147           <xslo:value-of select="."/>
148         </z:index>
149       </xslo:if>
150     </xslo:for-each>
151     <xslo:for-each select="marc:subfield">
152       <xslo:if test="contains('g', @code)">
153         <z:index name="Author:w Author:p">
154           <xslo:value-of select="."/>
155         </z:index>
156       </xslo:if>
157     </xslo:for-each>
158     <xslo:for-each select="marc:subfield">
159       <xslo:if test="contains('a', @code)">
160         <z:index name="Title:w Title:p Title:s Title-cover:w Title-cover:p Title-cover:s">
161           <xslo:value-of select="."/>
162         </z:index>
163       </xslo:if>
164     </xslo:for-each>
165     <xslo:for-each select="marc:subfield">
166       <xslo:if test="contains('c', @code)">
167         <z:index name="Title:w Title:p">
168           <xslo:value-of select="."/>
169         </z:index>
170       </xslo:if>
171     </xslo:for-each>
172     <xslo:for-each select="marc:subfield">
173       <xslo:if test="contains('d', @code)">
174         <z:index name="Title:w Title:p">
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('e', @code)">
181         <z:index name="Title:w Title:p Title-cover:w Title-cover:p">
182           <xslo:value-of select="."/>
183         </z:index>
184       </xslo:if>
185     </xslo:for-each>
186     <xslo:for-each select="marc:subfield">
187       <xslo:if test="contains('i', @code)">
188         <z:index name="title:w title:p Title-cover:w Title-cover:p">
189           <xslo:value-of select="."/>
190         </z:index>
191       </xslo:if>
192     </xslo:for-each>
193   </xslo:template>
194   <xslo:template mode="index_subfields" match="marc:datafield[@tag='995']">
195     <xslo:for-each select="marc:subfield">
196       <xslo:if test="contains('r', @code)">
197         <z:index name="itemtype:w itemtype:p itype:w itype:p">
198           <xslo:value-of select="."/>
199         </z:index>
200       </xslo:if>
201     </xslo:for-each>
202     <xslo:for-each select="marc:subfield">
203       <xslo:if test="contains('2', @code)">
204         <z:index name="lost:w lost:n item:w">
205           <xslo:value-of select="."/>
206         </z:index>
207       </xslo:if>
208     </xslo:for-each>
209     <xslo:for-each select="marc:subfield">
210       <xslo:if test="contains('a', @code)">
211         <z:index name="homebranch:w Host-item:w item:w">
212           <xslo:value-of select="."/>
213         </z:index>
214       </xslo:if>
215     </xslo:for-each>
216     <xslo:for-each select="marc:subfield">
217       <xslo:if test="contains('b', @code)">
218         <z:index name="homebranch:w Host-item:w item:w">
219           <xslo:value-of select="."/>
220         </z:index>
221       </xslo:if>
222     </xslo:for-each>
223     <xslo:for-each select="marc:subfield">
224       <xslo:if test="contains('c', @code)">
225         <z:index name="holdingbranch:w Record-Source:w item:w">
226           <xslo:value-of select="."/>
227         </z:index>
228       </xslo:if>
229     </xslo:for-each>
230     <xslo:for-each select="marc:subfield">
231       <xslo:if test="contains('d', @code)">
232         <z:index name="holdingbranch:w Record-Source:w item:w">
233           <xslo:value-of select="."/>
234         </z:index>
235       </xslo:if>
236     </xslo:for-each>
237     <xslo:for-each select="marc:subfield">
238       <xslo:if test="contains('e', @code)">
239         <z:index name="location:w item:w">
240           <xslo:value-of select="."/>
241         </z:index>
242       </xslo:if>
243     </xslo:for-each>
244     <xslo:for-each select="marc:subfield">
245       <xslo:if test="contains('f', @code)">
246         <z:index name="barcode:w item:w">
247           <xslo:value-of select="."/>
248         </z:index>
249       </xslo:if>
250     </xslo:for-each>
251     <xslo:for-each select="marc:subfield">
252       <xslo:if test="contains('h', @code)">
253         <z:index name="ccode:w item:w">
254           <xslo:value-of select="."/>
255         </z:index>
256       </xslo:if>
257     </xslo:for-each>
258     <xslo:for-each select="marc:subfield">
259       <xslo:if test="contains('j', @code)">
260         <z:index name="LC-card-number:s item:w">
261           <xslo:value-of select="."/>
262         </z:index>
263       </xslo:if>
264     </xslo:for-each>
265     <xslo:for-each select="marc:subfield">
266       <xslo:if test="contains('k', @code)">
267         <z:index name="Call-Number:w Local-classification:w lcn:w Call-Number:p Local-classification:p lcn:p item:w Local-classification:s">
268           <xslo:value-of select="."/>
269         </z:index>
270       </xslo:if>
271     </xslo:for-each>
272     <xslo:for-each select="marc:subfield">
273       <xslo:if test="contains('n', @code)">
274         <z:index name="onloan:d onloan:n onloan:s onloan:w item:w">
275           <xslo:value-of select="."/>
276         </z:index>
277       </xslo:if>
278     </xslo:for-each>
279     <xslo:for-each select="marc:subfield">
280       <xslo:if test="contains('u', @code)">
281         <z:index name="Note:w Note:p item:w">
282           <xslo:value-of select="."/>
283         </z:index>
284       </xslo:if>
285     </xslo:for-each>
286   </xslo:template>
287   <xslo:template mode="index_subfields" match="marc:datafield[@tag='071']">
288     <xslo:for-each select="marc:subfield">
289       <xslo:if test="contains('a', @code)">
290         <z:index name="Music-number:w Identifier-standard:w">
291           <xslo:value-of select="."/>
292         </z:index>
293       </xslo:if>
294     </xslo:for-each>
295   </xslo:template>
296   <xslo:template mode="index_subfields" match="marc:datafield[@tag='072']">
297     <xslo:for-each select="marc:subfield">
298       <xslo:if test="contains('a', @code)">
299         <z:index name="UPC:w Identifier-standard:w">
300           <xslo:value-of select="."/>
301         </z:index>
302       </xslo:if>
303     </xslo:for-each>
304   </xslo:template>
305   <xslo:template mode="index_subfields" match="marc:datafield[@tag='073']">
306     <xslo:for-each select="marc:subfield">
307       <xslo:if test="contains('a', @code)">
308         <z:index name="EAN:w Identifier-standard:w">
309           <xslo:value-of select="."/>
310         </z:index>
311       </xslo:if>
312     </xslo:for-each>
313   </xslo:template>
314   <xslo:template mode="index_subfields" match="marc:datafield[@tag='100']">
315     <xslo:for-each select="marc:subfield">
316       <xslo:if test="contains('a', @code)">
317         <z:index name="tpubdate:s ta:w ta:w ta:w Modified-code:n ln:s char-encoding:n char-encoding:n char-encoding:n script-Title:n">
318           <xslo:value-of select="."/>
319         </z:index>
320       </xslo:if>
321     </xslo:for-each>
322   </xslo:template>
323   <xslo:template mode="index_subfields" match="marc:datafield[@tag='101']">
324     <xslo:for-each select="marc:subfield">
325       <xslo:if test="contains('a', @code)">
326         <z:index name="ln:w">
327           <xslo:value-of select="."/>
328         </z:index>
329       </xslo:if>
330     </xslo:for-each>
331   </xslo:template>
332   <xslo:template mode="index_subfields" match="marc:datafield[@tag='102']">
333     <xslo:for-each select="marc:subfield">
334       <xslo:if test="contains('a', @code)">
335         <z:index name="Country-heading:w">
336           <xslo:value-of select="."/>
337         </z:index>
338       </xslo:if>
339     </xslo:for-each>
340   </xslo:template>
341   <xslo:template mode="index_subfields" match="marc:datafield[@tag='105']">
342     <xslo:for-each select="marc:subfield">
343       <xslo:if test="contains('a', @code)">
344         <z:index name="Illustration-code:w Content-type:w Content-type:w Content-type:w Content-type:w Conference-code:w Festschrift-indicator:w Index-indicator:w Literature-Code:w Biography-Code:w">
345           <xslo:value-of select="."/>
346         </z:index>
347       </xslo:if>
348     </xslo:for-each>
349   </xslo:template>
350   <xslo:template mode="index_subfields" match="marc:datafield[@tag='106']">
351     <xslo:for-each select="marc:subfield">
352       <xslo:if test="contains('a', @code)">
353         <z:index name="itype:w itype:p">
354           <xslo:value-of select="."/>
355         </z:index>
356       </xslo:if>
357     </xslo:for-each>
358   </xslo:template>
359   <xslo:template mode="index_subfields" match="marc:datafield[@tag='110']">
360     <xslo:for-each select="marc:subfield">
361       <xslo:if test="contains('a', @code)">
362         <z:index name="Type-Of-Serial:w Frequency-code:w Regularity-code:w Content-type:w Content-type:w Conference-publication-Code:w Title-Page-availability-Code:w Index-availability-Code:w Cumulative-Index-availability-Code:w">
363           <xslo:value-of select="."/>
364         </z:index>
365       </xslo:if>
366     </xslo:for-each>
367   </xslo:template>
368   <xslo:template mode="index_subfields" match="marc:datafield[@tag='115']">
369     <xslo:for-each select="marc:subfield">
370       <xslo:if test="contains('a', @code)">
371         <z:index name="Video-mt:w">
372           <xslo:value-of select="."/>
373         </z:index>
374       </xslo:if>
375     </xslo:for-each>
376   </xslo:template>
377   <xslo:template mode="index_subfields" match="marc:datafield[@tag='116']">
378     <xslo:for-each select="marc:subfield">
379       <xslo:if test="contains('a', @code)">
380         <z:index name="Graphics-type:w Graphics-support:w Graphics-support:w">
381           <xslo:value-of select="."/>
382         </z:index>
383       </xslo:if>
384     </xslo:for-each>
385   </xslo:template>
386   <xslo:template mode="index_subfields" match="marc:datafield[@tag='680']">
387     <xslo:for-each select="marc:subfield">
388       <xslo:if test="contains('b', @code)">
389         <z:index name="LC-call-number:s">
390           <xslo:value-of select="."/>
391         </z:index>
392       </xslo:if>
393     </xslo:for-each>
394   </xslo:template>
395   <xslo:template mode="index_subfields" match="marc:datafield[@tag='700']">
396     <xslo:for-each select="marc:subfield">
397       <xslo:if test="contains('9', @code)">
398         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
399           <xslo:value-of select="."/>
400         </z:index>
401       </xslo:if>
402     </xslo:for-each>
403     <xslo:for-each select="marc:subfield">
404       <xslo:if test="contains('a', @code)">
405         <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:w Author:s">
406           <xslo:value-of select="."/>
407         </z:index>
408       </xslo:if>
409     </xslo:for-each>
410   </xslo:template>
411   <xslo:template mode="index_subfields" match="marc:datafield[@tag='701']">
412     <xslo:for-each select="marc:subfield">
413       <xslo:if test="contains('9', @code)">
414         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
415           <xslo:value-of select="."/>
416         </z:index>
417       </xslo:if>
418     </xslo:for-each>
419   </xslo:template>
420   <xslo:template mode="index_subfields" match="marc:datafield[@tag='702']">
421     <xslo:for-each select="marc:subfield">
422       <xslo:if test="contains('9', @code)">
423         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
424           <xslo:value-of select="."/>
425         </z:index>
426       </xslo:if>
427     </xslo:for-each>
428   </xslo:template>
429   <xslo:template mode="index_subfields" match="marc:datafield[@tag='710']">
430     <xslo:for-each select="marc:subfield">
431       <xslo:if test="contains('9', @code)">
432         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
433           <xslo:value-of select="."/>
434         </z:index>
435       </xslo:if>
436     </xslo:for-each>
437   </xslo:template>
438   <xslo:template mode="index_subfields" match="marc:datafield[@tag='711']">
439     <xslo:for-each select="marc:subfield">
440       <xslo:if test="contains('9', @code)">
441         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
442           <xslo:value-of select="."/>
443         </z:index>
444       </xslo:if>
445     </xslo:for-each>
446   </xslo:template>
447   <xslo:template mode="index_subfields" match="marc:datafield[@tag='712']">
448     <xslo:for-each select="marc:subfield">
449       <xslo:if test="contains('9', @code)">
450         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
451           <xslo:value-of select="."/>
452         </z:index>
453       </xslo:if>
454     </xslo:for-each>
455   </xslo:template>
456   <xslo:template mode="index_subfields" match="marc:datafield[@tag='210']">
457     <xslo:for-each select="marc:subfield">
458       <xslo:if test="contains('a', @code)">
459         <z:index name="pl:w pl:p">
460           <xslo:value-of select="."/>
461         </z:index>
462       </xslo:if>
463     </xslo:for-each>
464     <xslo:for-each select="marc:subfield">
465       <xslo:if test="contains('c', @code)">
466         <z:index name="Publisher:w Publisher:p">
467           <xslo:value-of select="."/>
468         </z:index>
469       </xslo:if>
470     </xslo:for-each>
471     <xslo:for-each select="marc:subfield">
472       <xslo:if test="contains('d', @code)">
473         <z:index name="pubdate:n pubdate:y pubdate:s">
474           <xslo:value-of select="."/>
475         </z:index>
476       </xslo:if>
477     </xslo:for-each>
478   </xslo:template>
479   <xslo:template mode="index_subfields" match="marc:datafield[@tag='225']">
480     <xslo:for-each select="marc:subfield">
481       <xslo:if test="contains('a', @code)">
482         <z:index name="Title-series:w Title-series:p">
483           <xslo:value-of select="."/>
484         </z:index>
485       </xslo:if>
486     </xslo:for-each>
487     <xslo:for-each select="marc:subfield">
488       <xslo:if test="contains('d', @code)">
489         <z:index name="Title-series:w Title-series:p">
490           <xslo:value-of select="."/>
491         </z:index>
492       </xslo:if>
493     </xslo:for-each>
494     <xslo:for-each select="marc:subfield">
495       <xslo:if test="contains('e', @code)">
496         <z:index name="Title-series:w Title-series:p">
497           <xslo:value-of select="."/>
498         </z:index>
499       </xslo:if>
500     </xslo:for-each>
501     <xslo:for-each select="marc:subfield">
502       <xslo:if test="contains('f', @code)">
503         <z:index name="Author:w Author:p Name-and-title:w Name-and-title:p">
504           <xslo:value-of select="."/>
505         </z:index>
506       </xslo:if>
507     </xslo:for-each>
508     <xslo:for-each select="marc:subfield">
509       <xslo:if test="contains('h', @code)">
510         <z:index name="Title-series:w Title-series:p">
511           <xslo:value-of select="."/>
512         </z:index>
513       </xslo:if>
514     </xslo:for-each>
515     <xslo:for-each select="marc:subfield">
516       <xslo:if test="contains('i', @code)">
517         <z:index name="Title-series:w Title-series:p">
518           <xslo:value-of select="."/>
519         </z:index>
520       </xslo:if>
521     </xslo:for-each>
522     <xslo:for-each select="marc:subfield">
523       <xslo:if test="contains('v', @code)">
524         <z:index name="Title-series:w Title-series:p">
525           <xslo:value-of select="."/>
526         </z:index>
527       </xslo:if>
528     </xslo:for-each>
529     <xslo:for-each select="marc:subfield">
530       <xslo:if test="contains('x', @code)">
531         <z:index name="ISSN:w">
532           <xslo:value-of select="."/>
533         </z:index>
534       </xslo:if>
535     </xslo:for-each>
536   </xslo:template>
537   <xslo:template mode="index_subfields" match="marc:datafield[@tag='230']">
538     <xslo:for-each select="marc:subfield">
539       <xslo:if test="contains('a', @code)">
540         <z:index name="Electronic-ressource:w">
541           <xslo:value-of select="."/>
542         </z:index>
543       </xslo:if>
544     </xslo:for-each>
545   </xslo:template>
546   <xslo:template mode="index_subfields" match="marc:datafield[@tag='300']">
547     <xslo:for-each select="marc:subfield">
548       <xslo:if test="contains('a', @code)">
549         <z:index name="Note:w Note:p">
550           <xslo:value-of select="."/>
551         </z:index>
552       </xslo:if>
553     </xslo:for-each>
554   </xslo:template>
555   <xslo:template mode="index_subfields" match="marc:datafield[@tag='301']">
556     <xslo:for-each select="marc:subfield">
557       <xslo:if test="contains('a', @code)">
558         <z:index name="Note:w Note:p">
559           <xslo:value-of select="."/>
560         </z:index>
561       </xslo:if>
562     </xslo:for-each>
563   </xslo:template>
564   <xslo:template mode="index_subfields" match="marc:datafield[@tag='302']">
565     <xslo:for-each select="marc:subfield">
566       <xslo:if test="contains('a', @code)">
567         <z:index name="Note:w Note:p">
568           <xslo:value-of select="."/>
569         </z:index>
570       </xslo:if>
571     </xslo:for-each>
572   </xslo:template>
573   <xslo:template mode="index_subfields" match="marc:datafield[@tag='303']">
574     <xslo:for-each select="marc:subfield">
575       <xslo:if test="contains('a', @code)">
576         <z:index name="Note:w Note:p">
577           <xslo:value-of select="."/>
578         </z:index>
579       </xslo:if>
580     </xslo:for-each>
581   </xslo:template>
582   <xslo:template mode="index_subfields" match="marc:datafield[@tag='304']">
583     <xslo:for-each select="marc:subfield">
584       <xslo:if test="contains('a', @code)">
585         <z:index name="Note:w Note:p">
586           <xslo:value-of select="."/>
587         </z:index>
588       </xslo:if>
589     </xslo:for-each>
590   </xslo:template>
591   <xslo:template mode="index_subfields" match="marc:datafield[@tag='305']">
592     <xslo:for-each select="marc:subfield">
593       <xslo:if test="contains('a', @code)">
594         <z:index name="Note:w Note:p">
595           <xslo:value-of select="."/>
596         </z:index>
597       </xslo:if>
598     </xslo:for-each>
599   </xslo:template>
600   <xslo:template mode="index_subfields" match="marc:datafield[@tag='306']">
601     <xslo:for-each select="marc:subfield">
602       <xslo:if test="contains('a', @code)">
603         <z:index name="Note:w Note:p">
604           <xslo:value-of select="."/>
605         </z:index>
606       </xslo:if>
607     </xslo:for-each>
608   </xslo:template>
609   <xslo:template mode="index_subfields" match="marc:datafield[@tag='307']">
610     <xslo:for-each select="marc:subfield">
611       <xslo:if test="contains('a', @code)">
612         <z:index name="Note:w Note:p">
613           <xslo:value-of select="."/>
614         </z:index>
615       </xslo:if>
616     </xslo:for-each>
617   </xslo:template>
618   <xslo:template mode="index_subfields" match="marc:datafield[@tag='308']">
619     <xslo:for-each select="marc:subfield">
620       <xslo:if test="contains('a', @code)">
621         <z:index name="Note:w Note:p">
622           <xslo:value-of select="."/>
623         </z:index>
624       </xslo:if>
625     </xslo:for-each>
626   </xslo:template>
627   <xslo:template mode="index_subfields" match="marc:datafield[@tag='310']">
628     <xslo:for-each select="marc:subfield">
629       <xslo:if test="contains('a', @code)">
630         <z:index name="Note:w Note:p">
631           <xslo:value-of select="."/>
632         </z:index>
633       </xslo:if>
634     </xslo:for-each>
635   </xslo:template>
636   <xslo:template mode="index_subfields" match="marc:datafield[@tag='311']">
637     <xslo:for-each select="marc:subfield">
638       <xslo:if test="contains('a', @code)">
639         <z:index name="Note:w Note:p">
640           <xslo:value-of select="."/>
641         </z:index>
642       </xslo:if>
643     </xslo:for-each>
644   </xslo:template>
645   <xslo:template mode="index_subfields" match="marc:datafield[@tag='312']">
646     <xslo:for-each select="marc:subfield">
647       <xslo:if test="contains('a', @code)">
648         <z:index name="Note:w Note:p">
649           <xslo:value-of select="."/>
650         </z:index>
651       </xslo:if>
652     </xslo:for-each>
653   </xslo:template>
654   <xslo:template mode="index_subfields" match="marc:datafield[@tag='313']">
655     <xslo:for-each select="marc:subfield">
656       <xslo:if test="contains('a', @code)">
657         <z:index name="Note:w Note:p">
658           <xslo:value-of select="."/>
659         </z:index>
660       </xslo:if>
661     </xslo:for-each>
662   </xslo:template>
663   <xslo:template mode="index_subfields" match="marc:datafield[@tag='314']">
664     <xslo:for-each select="marc:subfield">
665       <xslo:if test="contains('a', @code)">
666         <z:index name="Note:w Note:p">
667           <xslo:value-of select="."/>
668         </z:index>
669       </xslo:if>
670     </xslo:for-each>
671   </xslo:template>
672   <xslo:template mode="index_subfields" match="marc:datafield[@tag='315']">
673     <xslo:for-each select="marc:subfield">
674       <xslo:if test="contains('a', @code)">
675         <z:index name="Note:w Note:p">
676           <xslo:value-of select="."/>
677         </z:index>
678       </xslo:if>
679     </xslo:for-each>
680   </xslo:template>
681   <xslo:template mode="index_subfields" match="marc:datafield[@tag='316']">
682     <xslo:for-each select="marc:subfield">
683       <xslo:if test="contains('a', @code)">
684         <z:index name="Note:w Note:p">
685           <xslo:value-of select="."/>
686         </z:index>
687       </xslo:if>
688     </xslo:for-each>
689   </xslo:template>
690   <xslo:template mode="index_subfields" match="marc:datafield[@tag='317']">
691     <xslo:for-each select="marc:subfield">
692       <xslo:if test="contains('a', @code)">
693         <z:index name="Note:w Note:p">
694           <xslo:value-of select="."/>
695         </z:index>
696       </xslo:if>
697     </xslo:for-each>
698   </xslo:template>
699   <xslo:template mode="index_subfields" match="marc:datafield[@tag='318']">
700     <xslo:for-each select="marc:subfield">
701       <xslo:if test="contains('a', @code)">
702         <z:index name="Note:w Note:p">
703           <xslo:value-of select="."/>
704         </z:index>
705       </xslo:if>
706     </xslo:for-each>
707   </xslo:template>
708   <xslo:template mode="index_subfields" match="marc:datafield[@tag='320']">
709     <xslo:for-each select="marc:subfield">
710       <xslo:if test="contains('a', @code)">
711         <z:index name="Note:w Note:p">
712           <xslo:value-of select="."/>
713         </z:index>
714       </xslo:if>
715     </xslo:for-each>
716   </xslo:template>
717   <xslo:template mode="index_subfields" match="marc:datafield[@tag='321']">
718     <xslo:for-each select="marc:subfield">
719       <xslo:if test="contains('a', @code)">
720         <z:index name="Note:w Note:p">
721           <xslo:value-of select="."/>
722         </z:index>
723       </xslo:if>
724     </xslo:for-each>
725   </xslo:template>
726   <xslo:template mode="index_subfields" match="marc:datafield[@tag='322']">
727     <xslo:for-each select="marc:subfield">
728       <xslo:if test="contains('a', @code)">
729         <z:index name="Note:w Note:p">
730           <xslo:value-of select="."/>
731         </z:index>
732       </xslo:if>
733     </xslo:for-each>
734   </xslo:template>
735   <xslo:template mode="index_subfields" match="marc:datafield[@tag='323']">
736     <xslo:for-each select="marc:subfield">
737       <xslo:if test="contains('a', @code)">
738         <z:index name="Note:w Note:p">
739           <xslo:value-of select="."/>
740         </z:index>
741       </xslo:if>
742     </xslo:for-each>
743   </xslo:template>
744   <xslo:template mode="index_subfields" match="marc:datafield[@tag='324']">
745     <xslo:for-each select="marc:subfield">
746       <xslo:if test="contains('a', @code)">
747         <z:index name="Note:w Note:p">
748           <xslo:value-of select="."/>
749         </z:index>
750       </xslo:if>
751     </xslo:for-each>
752   </xslo:template>
753   <xslo:template mode="index_subfields" match="marc:datafield[@tag='325']">
754     <xslo:for-each select="marc:subfield">
755       <xslo:if test="contains('a', @code)">
756         <z:index name="Note:w Note:p">
757           <xslo:value-of select="."/>
758         </z:index>
759       </xslo:if>
760     </xslo:for-each>
761   </xslo:template>
762   <xslo:template mode="index_subfields" match="marc:datafield[@tag='326']">
763     <xslo:for-each select="marc:subfield">
764       <xslo:if test="contains('a', @code)">
765         <z:index name="Note:w Note:p">
766           <xslo:value-of select="."/>
767         </z:index>
768       </xslo:if>
769     </xslo:for-each>
770   </xslo:template>
771   <xslo:template mode="index_subfields" match="marc:datafield[@tag='327']">
772     <xslo:for-each select="marc:subfield">
773       <xslo:if test="contains('a', @code)">
774         <z:index name="Note:w Note:p">
775           <xslo:value-of select="."/>
776         </z:index>
777       </xslo:if>
778     </xslo:for-each>
779   </xslo:template>
780   <xslo:template mode="index_subfields" match="marc:datafield[@tag='328']">
781     <xslo:for-each select="marc:subfield">
782       <xslo:if test="contains('a', @code)">
783         <z:index name="Note:w Note:p">
784           <xslo:value-of select="."/>
785         </z:index>
786       </xslo:if>
787     </xslo:for-each>
788   </xslo:template>
789   <xslo:template mode="index_subfields" match="marc:datafield[@tag='330']">
790     <xslo:for-each select="marc:subfield">
791       <xslo:if test="contains('a', @code)">
792         <z:index name="Abstract:w Note:w Abstract:p Note:p">
793           <xslo:value-of select="."/>
794         </z:index>
795       </xslo:if>
796     </xslo:for-each>
797   </xslo:template>
798   <xslo:template mode="index_subfields" match="marc:datafield[@tag='332']">
799     <xslo:for-each select="marc:subfield">
800       <xslo:if test="contains('a', @code)">
801         <z:index name="Note:w Note:p">
802           <xslo:value-of select="."/>
803         </z:index>
804       </xslo:if>
805     </xslo:for-each>
806   </xslo:template>
807   <xslo:template mode="index_subfields" match="marc:datafield[@tag='333']">
808     <xslo:for-each select="marc:subfield">
809       <xslo:if test="contains('a', @code)">
810         <z:index name="Note:w Note:p">
811           <xslo:value-of select="."/>
812         </z:index>
813       </xslo:if>
814     </xslo:for-each>
815   </xslo:template>
816   <xslo:template mode="index_subfields" match="marc:datafield[@tag='336']">
817     <xslo:for-each select="marc:subfield">
818       <xslo:if test="contains('a', @code)">
819         <z:index name="Note:w Note:p">
820           <xslo:value-of select="."/>
821         </z:index>
822       </xslo:if>
823     </xslo:for-each>
824   </xslo:template>
825   <xslo:template mode="index_subfields" match="marc:datafield[@tag='337']">
826     <xslo:for-each select="marc:subfield">
827       <xslo:if test="contains('a', @code)">
828         <z:index name="Note:w Note:p">
829           <xslo:value-of select="."/>
830         </z:index>
831       </xslo:if>
832     </xslo:for-each>
833   </xslo:template>
834   <xslo:template mode="index_subfields" match="marc:datafield[@tag='345']">
835     <xslo:for-each select="marc:subfield">
836       <xslo:if test="contains('a', @code)">
837         <z:index name="Note:w Note:p">
838           <xslo:value-of select="."/>
839         </z:index>
840       </xslo:if>
841     </xslo:for-each>
842   </xslo:template>
843   <xslo:template mode="index_subfields" match="marc:datafield[@tag='400']">
844     <xslo:for-each select="marc:subfield">
845       <xslo:if test="contains('t', @code)">
846         <z:index name="Title:w Title:p">
847           <xslo:value-of select="."/>
848         </z:index>
849       </xslo:if>
850     </xslo:for-each>
851     <xslo:for-each select="marc:subfield">
852       <xslo:if test="contains('d', @code)">
853         <z:index name="pubdate: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='401']">
860     <xslo:for-each select="marc:subfield">
861       <xslo:if test="contains('t', @code)">
862         <z:index name="Title:w Title:p">
863           <xslo:value-of select="."/>
864         </z:index>
865       </xslo:if>
866     </xslo:for-each>
867     <xslo:for-each select="marc:subfield">
868       <xslo:if test="contains('d', @code)">
869         <z:index name="pubdate:n">
870           <xslo:value-of select="."/>
871         </z:index>
872       </xslo:if>
873     </xslo:for-each>
874   </xslo:template>
875   <xslo:template mode="index_subfields" match="marc:datafield[@tag='403']">
876     <xslo:for-each select="marc:subfield">
877       <xslo:if test="contains('t', @code)">
878         <z:index name="Title:w Title:p Title-Uniform:w Title-Uniform: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">
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='410']">
892     <xslo:for-each select="marc:subfield">
893       <xslo:if test="contains('t', @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="pubdate:n">
902           <xslo:value-of select="."/>
903         </z:index>
904       </xslo:if>
905     </xslo:for-each>
906   </xslo:template>
907   <xslo:template mode="index_subfields" match="marc:datafield[@tag='412']">
908     <xslo:for-each select="marc:subfield">
909       <xslo:if test="contains('t', @code)">
910         <z:index name="Title:w Title:p">
911           <xslo:value-of select="."/>
912         </z:index>
913       </xslo:if>
914     </xslo:for-each>
915     <xslo:for-each select="marc:subfield">
916       <xslo:if test="contains('d', @code)">
917         <z:index name="pubdate:n">
918           <xslo:value-of select="."/>
919         </z:index>
920       </xslo:if>
921     </xslo:for-each>
922   </xslo:template>
923   <xslo:template mode="index_subfields" match="marc:datafield[@tag='413']">
924     <xslo:for-each select="marc:subfield">
925       <xslo:if test="contains('t', @code)">
926         <z:index name="Title:w Title:p">
927           <xslo:value-of select="."/>
928         </z:index>
929       </xslo:if>
930     </xslo:for-each>
931     <xslo:for-each select="marc:subfield">
932       <xslo:if test="contains('d', @code)">
933         <z:index name="pubdate:n">
934           <xslo:value-of select="."/>
935         </z:index>
936       </xslo:if>
937     </xslo:for-each>
938   </xslo:template>
939   <xslo:template mode="index_subfields" match="marc:datafield[@tag='414']">
940     <xslo:for-each select="marc:subfield">
941       <xslo:if test="contains('t', @code)">
942         <z:index name="Title:w Title:p">
943           <xslo:value-of select="."/>
944         </z:index>
945       </xslo:if>
946     </xslo:for-each>
947     <xslo:for-each select="marc:subfield">
948       <xslo:if test="contains('d', @code)">
949         <z:index name="pubdate:n">
950           <xslo:value-of select="."/>
951         </z:index>
952       </xslo:if>
953     </xslo:for-each>
954   </xslo:template>
955   <xslo:template mode="index_subfields" match="marc:datafield[@tag='415']">
956     <xslo:for-each select="marc:subfield">
957       <xslo:if test="contains('t', @code)">
958         <z:index name="Title:w Title:p">
959           <xslo:value-of select="."/>
960         </z:index>
961       </xslo:if>
962     </xslo:for-each>
963     <xslo:for-each select="marc:subfield">
964       <xslo:if test="contains('d', @code)">
965         <z:index name="pubdate:n">
966           <xslo:value-of select="."/>
967         </z:index>
968       </xslo:if>
969     </xslo:for-each>
970   </xslo:template>
971   <xslo:template mode="index_subfields" match="marc:datafield[@tag='416']">
972     <xslo:for-each select="marc:subfield">
973       <xslo:if test="contains('t', @code)">
974         <z:index name="Title:w Title:p">
975           <xslo:value-of select="."/>
976         </z:index>
977       </xslo:if>
978     </xslo:for-each>
979     <xslo:for-each select="marc:subfield">
980       <xslo:if test="contains('d', @code)">
981         <z:index name="pubdate:n">
982           <xslo:value-of select="."/>
983         </z:index>
984       </xslo:if>
985     </xslo:for-each>
986   </xslo:template>
987   <xslo:template mode="index_subfields" match="marc:datafield[@tag='417']">
988     <xslo:for-each select="marc:subfield">
989       <xslo:if test="contains('t', @code)">
990         <z:index name="Title:w Title:p">
991           <xslo:value-of select="."/>
992         </z:index>
993       </xslo:if>
994     </xslo:for-each>
995     <xslo:for-each select="marc:subfield">
996       <xslo:if test="contains('d', @code)">
997         <z:index name="pubdate:n">
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='418']">
1004     <xslo:for-each select="marc:subfield">
1005       <xslo:if test="contains('t', @code)">
1006         <z:index name="Title:w Title:p">
1007           <xslo:value-of select="."/>
1008         </z:index>
1009       </xslo:if>
1010     </xslo:for-each>
1011     <xslo:for-each select="marc:subfield">
1012       <xslo:if test="contains('d', @code)">
1013         <z:index name="pubdate:n">
1014           <xslo:value-of select="."/>
1015         </z:index>
1016       </xslo:if>
1017     </xslo:for-each>
1018   </xslo:template>
1019   <xslo:template mode="index_subfields" match="marc:datafield[@tag='419']">
1020     <xslo:for-each select="marc:subfield">
1021       <xslo:if test="contains('t', @code)">
1022         <z:index name="Title:w Title:p">
1023           <xslo:value-of select="."/>
1024         </z:index>
1025       </xslo:if>
1026     </xslo:for-each>
1027     <xslo:for-each select="marc:subfield">
1028       <xslo:if test="contains('d', @code)">
1029         <z:index name="pubdate:n">
1030           <xslo:value-of select="."/>
1031         </z:index>
1032       </xslo:if>
1033     </xslo:for-each>
1034   </xslo:template>
1035   <xslo:template mode="index_subfields" match="marc:datafield[@tag='420']">
1036     <xslo:for-each select="marc:subfield">
1037       <xslo:if test="contains('t', @code)">
1038         <z:index name="Title:w Title:p">
1039           <xslo:value-of select="."/>
1040         </z:index>
1041       </xslo:if>
1042     </xslo:for-each>
1043     <xslo:for-each select="marc:subfield">
1044       <xslo:if test="contains('d', @code)">
1045         <z:index name="pubdate:n">
1046           <xslo:value-of select="."/>
1047         </z:index>
1048       </xslo:if>
1049     </xslo:for-each>
1050   </xslo:template>
1051   <xslo:template mode="index_subfields" match="marc:datafield[@tag='430']">
1052     <xslo:for-each select="marc:subfield">
1053       <xslo:if test="contains('t', @code)">
1054         <z:index name="Title:w Title:p">
1055           <xslo:value-of select="."/>
1056         </z:index>
1057       </xslo:if>
1058     </xslo:for-each>
1059     <xslo:for-each select="marc:subfield">
1060       <xslo:if test="contains('d', @code)">
1061         <z:index name="pubdate:n">
1062           <xslo:value-of select="."/>
1063         </z:index>
1064       </xslo:if>
1065     </xslo:for-each>
1066   </xslo:template>
1067   <xslo:template mode="index_subfields" match="marc:datafield[@tag='431']">
1068     <xslo:for-each select="marc:subfield">
1069       <xslo:if test="contains('t', @code)">
1070         <z:index name="Title:w Title:p">
1071           <xslo:value-of select="."/>
1072         </z:index>
1073       </xslo:if>
1074     </xslo:for-each>
1075     <xslo:for-each select="marc:subfield">
1076       <xslo:if test="contains('d', @code)">
1077         <z:index name="pubdate:n">
1078           <xslo:value-of select="."/>
1079         </z:index>
1080       </xslo:if>
1081     </xslo:for-each>
1082   </xslo:template>
1083   <xslo:template mode="index_subfields" match="marc:datafield[@tag='432']">
1084     <xslo:for-each select="marc:subfield">
1085       <xslo:if test="contains('t', @code)">
1086         <z:index name="Title:w Title:p">
1087           <xslo:value-of select="."/>
1088         </z:index>
1089       </xslo:if>
1090     </xslo:for-each>
1091     <xslo:for-each select="marc:subfield">
1092       <xslo:if test="contains('d', @code)">
1093         <z:index name="pubdate:n">
1094           <xslo:value-of select="."/>
1095         </z:index>
1096       </xslo:if>
1097     </xslo:for-each>
1098   </xslo:template>
1099   <xslo:template mode="index_subfields" match="marc:datafield[@tag='440']">
1100     <xslo:for-each select="marc:subfield">
1101       <xslo:if test="contains('t', @code)">
1102         <z:index name="Title:w Title:p">
1103           <xslo:value-of select="."/>
1104         </z:index>
1105       </xslo:if>
1106     </xslo:for-each>
1107     <xslo:for-each select="marc:subfield">
1108       <xslo:if test="contains('d', @code)">
1109         <z:index name="pubdate:n">
1110           <xslo:value-of select="."/>
1111         </z:index>
1112       </xslo:if>
1113     </xslo:for-each>
1114   </xslo:template>
1115   <xslo:template mode="index_subfields" match="marc:datafield[@tag='441']">
1116     <xslo:for-each select="marc:subfield">
1117       <xslo:if test="contains('t', @code)">
1118         <z:index name="Title:w Title:p">
1119           <xslo:value-of select="."/>
1120         </z:index>
1121       </xslo:if>
1122     </xslo:for-each>
1123     <xslo:for-each select="marc:subfield">
1124       <xslo:if test="contains('d', @code)">
1125         <z:index name="pubdate:n">
1126           <xslo:value-of select="."/>
1127         </z:index>
1128       </xslo:if>
1129     </xslo:for-each>
1130   </xslo:template>
1131   <xslo:template mode="index_subfields" match="marc:datafield[@tag='445']">
1132     <xslo:for-each select="marc:subfield">
1133       <xslo:if test="contains('t', @code)">
1134         <z:index name="Title:w Title:p">
1135           <xslo:value-of select="."/>
1136         </z:index>
1137       </xslo:if>
1138     </xslo:for-each>
1139     <xslo:for-each select="marc:subfield">
1140       <xslo:if test="contains('d', @code)">
1141         <z:index name="pubdate:n">
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='461']">
1148     <xslo:for-each select="marc:subfield">
1149       <xslo:if test="contains('t', @code)">
1150         <z:index name="Title:w Title-host:w title-host:p">
1151           <xslo:value-of select="."/>
1152         </z:index>
1153       </xslo:if>
1154     </xslo:for-each>
1155     <xslo:for-each select="marc:subfield">
1156       <xslo:if test="contains('d', @code)">
1157         <z:index name="pubdate:n">
1158           <xslo:value-of select="."/>
1159         </z:index>
1160       </xslo:if>
1161     </xslo:for-each>
1162     <xslo:for-each select="marc:subfield">
1163       <xslo:if test="contains('9', @code)">
1164         <z:index name="Host-Item-Number:w">
1165           <xslo:value-of select="."/>
1166         </z:index>
1167       </xslo:if>
1168     </xslo:for-each>
1169   </xslo:template>
1170   <xslo:template mode="index_subfields" match="marc:datafield[@tag='464']">
1171     <xslo:for-each select="marc:subfield">
1172       <xslo:if test="contains('t', @code)">
1173         <z:index name="Title:w Title-host:w title-host:p Title:p">
1174           <xslo:value-of select="."/>
1175         </z:index>
1176       </xslo:if>
1177     </xslo:for-each>
1178   </xslo:template>
1179   <xslo:template mode="index_subfields" match="marc:datafield[@tag='500']">
1180     <xslo:for-each select="marc:subfield">
1181       <xslo:if test="contains('9', @code)">
1182         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1183           <xslo:value-of select="."/>
1184         </z:index>
1185       </xslo:if>
1186     </xslo:for-each>
1187   </xslo:template>
1188   <xslo:template mode="index_subfields" match="marc:datafield[@tag='501']">
1189     <xslo:for-each select="marc:subfield">
1190       <xslo:if test="contains('9', @code)">
1191         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1192           <xslo:value-of select="."/>
1193         </z:index>
1194       </xslo:if>
1195     </xslo:for-each>
1196   </xslo:template>
1197   <xslo:template mode="index_subfields" match="marc:datafield[@tag='503']">
1198     <xslo:for-each select="marc:subfield">
1199       <xslo:if test="contains('9', @code)">
1200         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1201           <xslo:value-of select="."/>
1202         </z:index>
1203       </xslo:if>
1204     </xslo:for-each>
1205   </xslo:template>
1206   <xslo:template mode="index_subfields" match="marc:datafield[@tag='510']">
1207     <xslo:for-each select="marc:subfield">
1208       <xslo:if test="contains('9', @code)">
1209         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1210           <xslo:value-of select="."/>
1211         </z:index>
1212       </xslo:if>
1213     </xslo:for-each>
1214   </xslo:template>
1215   <xslo:template mode="index_subfields" match="marc:datafield[@tag='512']">
1216     <xslo:for-each select="marc:subfield">
1217       <xslo:if test="contains('9', @code)">
1218         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1219           <xslo:value-of select="."/>
1220         </z:index>
1221       </xslo:if>
1222     </xslo:for-each>
1223   </xslo:template>
1224   <xslo:template mode="index_subfields" match="marc:datafield[@tag='513']">
1225     <xslo:for-each select="marc:subfield">
1226       <xslo:if test="contains('9', @code)">
1227         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1228           <xslo:value-of select="."/>
1229         </z:index>
1230       </xslo:if>
1231     </xslo:for-each>
1232   </xslo:template>
1233   <xslo:template mode="index_subfields" match="marc:datafield[@tag='514']">
1234     <xslo:for-each select="marc:subfield">
1235       <xslo:if test="contains('9', @code)">
1236         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1237           <xslo:value-of select="."/>
1238         </z:index>
1239       </xslo:if>
1240     </xslo:for-each>
1241   </xslo:template>
1242   <xslo:template mode="index_subfields" match="marc:datafield[@tag='515']">
1243     <xslo:for-each select="marc:subfield">
1244       <xslo:if test="contains('9', @code)">
1245         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1246           <xslo:value-of select="."/>
1247         </z:index>
1248       </xslo:if>
1249     </xslo:for-each>
1250   </xslo:template>
1251   <xslo:template mode="index_subfields" match="marc:datafield[@tag='516']">
1252     <xslo:for-each select="marc:subfield">
1253       <xslo:if test="contains('9', @code)">
1254         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1255           <xslo:value-of select="."/>
1256         </z:index>
1257       </xslo:if>
1258     </xslo:for-each>
1259   </xslo:template>
1260   <xslo:template mode="index_subfields" match="marc:datafield[@tag='517']">
1261     <xslo:for-each select="marc:subfield">
1262       <xslo:if test="contains('9', @code)">
1263         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1264           <xslo:value-of select="."/>
1265         </z:index>
1266       </xslo:if>
1267     </xslo:for-each>
1268   </xslo:template>
1269   <xslo:template mode="index_subfields" match="marc:datafield[@tag='518']">
1270     <xslo:for-each select="marc:subfield">
1271       <xslo:if test="contains('9', @code)">
1272         <z:index name="Koha-Auth-Number:w Koha-Auth-Number: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='519']">
1279     <xslo:for-each select="marc:subfield">
1280       <xslo:if test="contains('9', @code)">
1281         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1282           <xslo:value-of select="."/>
1283         </z:index>
1284       </xslo:if>
1285     </xslo:for-each>
1286   </xslo:template>
1287   <xslo:template mode="index_subfields" match="marc:datafield[@tag='520']">
1288     <xslo:for-each select="marc:subfield">
1289       <xslo:if test="contains('9', @code)">
1290         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1291           <xslo:value-of select="."/>
1292         </z:index>
1293       </xslo:if>
1294     </xslo:for-each>
1295   </xslo:template>
1296   <xslo:template mode="index_subfields" match="marc:datafield[@tag='530']">
1297     <xslo:for-each select="marc:subfield">
1298       <xslo:if test="contains('9', @code)">
1299         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1300           <xslo:value-of select="."/>
1301         </z:index>
1302       </xslo:if>
1303     </xslo:for-each>
1304   </xslo:template>
1305   <xslo:template mode="index_subfields" match="marc:datafield[@tag='531']">
1306     <xslo:for-each select="marc:subfield">
1307       <xslo:if test="contains('9', @code)">
1308         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1309           <xslo:value-of select="."/>
1310         </z:index>
1311       </xslo:if>
1312     </xslo:for-each>
1313   </xslo:template>
1314   <xslo:template mode="index_subfields" match="marc:datafield[@tag='532']">
1315     <xslo:for-each select="marc:subfield">
1316       <xslo:if test="contains('9', @code)">
1317         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1318           <xslo:value-of select="."/>
1319         </z:index>
1320       </xslo:if>
1321     </xslo:for-each>
1322   </xslo:template>
1323   <xslo:template mode="index_subfields" match="marc:datafield[@tag='540']">
1324     <xslo:for-each select="marc:subfield">
1325       <xslo:if test="contains('9', @code)">
1326         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1327           <xslo:value-of select="."/>
1328         </z:index>
1329       </xslo:if>
1330     </xslo:for-each>
1331   </xslo:template>
1332   <xslo:template mode="index_subfields" match="marc:datafield[@tag='541']">
1333     <xslo:for-each select="marc:subfield">
1334       <xslo:if test="contains('9', @code)">
1335         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1336           <xslo:value-of select="."/>
1337         </z:index>
1338       </xslo:if>
1339     </xslo:for-each>
1340   </xslo:template>
1341   <xslo:template mode="index_subfields" match="marc:datafield[@tag='545']">
1342     <xslo:for-each select="marc:subfield">
1343       <xslo:if test="contains('9', @code)">
1344         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1345           <xslo:value-of select="."/>
1346         </z:index>
1347       </xslo:if>
1348     </xslo:for-each>
1349   </xslo:template>
1350   <xslo:template mode="index_subfields" match="marc:datafield[@tag='600']">
1351     <xslo:for-each select="marc:subfield">
1352       <xslo:if test="contains('9', @code)">
1353         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1354           <xslo:value-of select="."/>
1355         </z:index>
1356       </xslo:if>
1357     </xslo:for-each>
1358     <xslo:for-each select="marc:subfield">
1359       <xslo:if test="contains('a', @code)">
1360         <z:index name="Personal-name:w Personal-name:p Subject:w Subject:p">
1361           <xslo:value-of select="."/>
1362         </z:index>
1363       </xslo:if>
1364     </xslo:for-each>
1365   </xslo:template>
1366   <xslo:template mode="index_subfields" match="marc:datafield[@tag='601']">
1367     <xslo:for-each select="marc:subfield">
1368       <xslo:if test="contains('9', @code)">
1369         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1370           <xslo:value-of select="."/>
1371         </z:index>
1372       </xslo:if>
1373     </xslo:for-each>
1374     <xslo:for-each select="marc:subfield">
1375       <xslo:if test="contains('a', @code)">
1376         <z:index name="Corporate-name:w Conference-name:w Corporate-name:p Conference-name:p">
1377           <xslo:value-of select="."/>
1378         </z:index>
1379       </xslo:if>
1380     </xslo:for-each>
1381   </xslo:template>
1382   <xslo:template mode="index_subfields" match="marc:datafield[@tag='602']">
1383     <xslo:for-each select="marc:subfield">
1384       <xslo:if test="contains('9', @code)">
1385         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1386           <xslo:value-of select="."/>
1387         </z:index>
1388       </xslo:if>
1389     </xslo:for-each>
1390     <xslo:for-each select="marc:subfield">
1391       <xslo:if test="contains('a', @code)">
1392         <z:index name="Personal-name:w Personal-name:p">
1393           <xslo:value-of select="."/>
1394         </z:index>
1395       </xslo:if>
1396     </xslo:for-each>
1397   </xslo:template>
1398   <xslo:template mode="index_subfields" match="marc:datafield[@tag='603']">
1399     <xslo:for-each select="marc:subfield">
1400       <xslo:if test="contains('9', @code)">
1401         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1402           <xslo:value-of select="."/>
1403         </z:index>
1404       </xslo:if>
1405     </xslo:for-each>
1406   </xslo:template>
1407   <xslo:template mode="index_subfields" match="marc:datafield[@tag='604']">
1408     <xslo:for-each select="marc:subfield">
1409       <xslo:if test="contains('9', @code)">
1410         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1411           <xslo:value-of select="."/>
1412         </z:index>
1413       </xslo:if>
1414     </xslo:for-each>
1415   </xslo:template>
1416   <xslo:template mode="index_subfields" match="marc:datafield[@tag='605']">
1417     <xslo:for-each select="marc:subfield">
1418       <xslo:if test="contains('9', @code)">
1419         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1420           <xslo:value-of select="."/>
1421         </z:index>
1422       </xslo:if>
1423     </xslo:for-each>
1424   </xslo:template>
1425   <xslo:template mode="index_subfields" match="marc:datafield[@tag='606']">
1426     <xslo:for-each select="marc:subfield">
1427       <xslo:if test="contains('9', @code)">
1428         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1429           <xslo:value-of select="."/>
1430         </z:index>
1431       </xslo:if>
1432     </xslo:for-each>
1433   </xslo:template>
1434   <xslo:template mode="index_subfields" match="marc:datafield[@tag='607']">
1435     <xslo:for-each select="marc:subfield">
1436       <xslo:if test="contains('9', @code)">
1437         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1438           <xslo:value-of select="."/>
1439         </z:index>
1440       </xslo:if>
1441     </xslo:for-each>
1442   </xslo:template>
1443   <xslo:template mode="index_subfields" match="marc:datafield[@tag='610']">
1444     <xslo:for-each select="marc:subfield">
1445       <xslo:if test="contains('9', @code)">
1446         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1447           <xslo:value-of select="."/>
1448         </z:index>
1449       </xslo:if>
1450     </xslo:for-each>
1451   </xslo:template>
1452   <xslo:template mode="index_subfields" match="marc:datafield[@tag='630']">
1453     <xslo:for-each select="marc:subfield">
1454       <xslo:if test="contains('9', @code)">
1455         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1456           <xslo:value-of select="."/>
1457         </z:index>
1458       </xslo:if>
1459     </xslo:for-each>
1460   </xslo:template>
1461   <xslo:template mode="index_subfields" match="marc:datafield[@tag='631']">
1462     <xslo:for-each select="marc:subfield">
1463       <xslo:if test="contains('9', @code)">
1464         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1465           <xslo:value-of select="."/>
1466         </z:index>
1467       </xslo:if>
1468     </xslo:for-each>
1469   </xslo:template>
1470   <xslo:template mode="index_subfields" match="marc:datafield[@tag='632']">
1471     <xslo:for-each select="marc:subfield">
1472       <xslo:if test="contains('9', @code)">
1473         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1474           <xslo:value-of select="."/>
1475         </z:index>
1476       </xslo:if>
1477     </xslo:for-each>
1478   </xslo:template>
1479   <xslo:template mode="index_subfields" match="marc:datafield[@tag='633']">
1480     <xslo:for-each select="marc:subfield">
1481       <xslo:if test="contains('9', @code)">
1482         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1483           <xslo:value-of select="."/>
1484         </z:index>
1485       </xslo:if>
1486     </xslo:for-each>
1487   </xslo:template>
1488   <xslo:template mode="index_subfields" match="marc:datafield[@tag='634']">
1489     <xslo:for-each select="marc:subfield">
1490       <xslo:if test="contains('9', @code)">
1491         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1492           <xslo:value-of select="."/>
1493         </z:index>
1494       </xslo:if>
1495     </xslo:for-each>
1496   </xslo:template>
1497   <xslo:template mode="index_subfields" match="marc:datafield[@tag='635']">
1498     <xslo:for-each select="marc:subfield">
1499       <xslo:if test="contains('9', @code)">
1500         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1501           <xslo:value-of select="."/>
1502         </z:index>
1503       </xslo:if>
1504     </xslo:for-each>
1505   </xslo:template>
1506   <xslo:template mode="index_subfields" match="marc:datafield[@tag='636']">
1507     <xslo:for-each select="marc:subfield">
1508       <xslo:if test="contains('9', @code)">
1509         <z:index name="Koha-Auth-Number:w Koha-Auth-Number:n">
1510           <xslo:value-of select="."/>
1511         </z:index>
1512       </xslo:if>
1513     </xslo:for-each>
1514   </xslo:template>
1515   <xslo:template mode="index_subfields" match="marc:datafield[@tag='676']">
1516     <xslo:for-each select="marc:subfield">
1517       <xslo:if test="contains('a', @code)">
1518         <z:index name="Dewey-classification:w Dewey-classification:s">
1519           <xslo:value-of select="."/>
1520         </z:index>
1521       </xslo:if>
1522     </xslo:for-each>
1523   </xslo:template>
1524   <xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
1525     <xslo:for-each select="marc:subfield">
1526       <xslo:if test="contains('0', @code)">
1527         <z:index name="totalissues:n totalissues:s">
1528           <xslo:value-of select="."/>
1529         </z:index>
1530       </xslo:if>
1531     </xslo:for-each>
1532   </xslo:template>
1533   <xslo:template mode="index_data_field" match="marc:datafield[@tag='680']">
1534     <z:index name="LC-call-number:w">
1535       <xslo:variable name="raw_heading">
1536         <xslo:for-each select="marc:subfield">
1537           <xslo:if test="position() &gt; 1">
1538             <xslo:value-of select="substring(' ', 1, 1)"/>
1539           </xslo:if>
1540           <xslo:value-of select="."/>
1541         </xslo:for-each>
1542       </xslo:variable>
1543       <xslo:value-of select="normalize-space($raw_heading)"/>
1544     </z:index>
1545   </xslo:template>
1546   <xslo:template mode="index_data_field" match="marc:datafield[@tag='700']">
1547     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1548       <xslo:variable name="raw_heading">
1549         <xslo:for-each select="marc:subfield">
1550           <xslo:if test="position() &gt; 1">
1551             <xslo:value-of select="substring(' ', 1, 1)"/>
1552           </xslo:if>
1553           <xslo:value-of select="."/>
1554         </xslo:for-each>
1555       </xslo:variable>
1556       <xslo:value-of select="normalize-space($raw_heading)"/>
1557     </z:index>
1558   </xslo:template>
1559   <xslo:template mode="index_data_field" match="marc:datafield[@tag='701']">
1560     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1561       <xslo:variable name="raw_heading">
1562         <xslo:for-each select="marc:subfield">
1563           <xslo:if test="position() &gt; 1">
1564             <xslo:value-of select="substring(' ', 1, 1)"/>
1565           </xslo:if>
1566           <xslo:value-of select="."/>
1567         </xslo:for-each>
1568       </xslo:variable>
1569       <xslo:value-of select="normalize-space($raw_heading)"/>
1570     </z:index>
1571   </xslo:template>
1572   <xslo:template mode="index_data_field" match="marc:datafield[@tag='702']">
1573     <z:index name="Author:w Personal-name:w Author:p Personal-name:p Personal-name:p">
1574       <xslo:variable name="raw_heading">
1575         <xslo:for-each select="marc:subfield">
1576           <xslo:if test="position() &gt; 1">
1577             <xslo:value-of select="substring(' ', 1, 1)"/>
1578           </xslo:if>
1579           <xslo:value-of select="."/>
1580         </xslo:for-each>
1581       </xslo:variable>
1582       <xslo:value-of select="normalize-space($raw_heading)"/>
1583     </z:index>
1584   </xslo:template>
1585   <xslo:template mode="index_data_field" match="marc:datafield[@tag='710']">
1586     <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">
1587       <xslo:variable name="raw_heading">
1588         <xslo:for-each select="marc:subfield">
1589           <xslo:if test="position() &gt; 1">
1590             <xslo:value-of select="substring(' ', 1, 1)"/>
1591           </xslo:if>
1592           <xslo:value-of select="."/>
1593         </xslo:for-each>
1594       </xslo:variable>
1595       <xslo:value-of select="normalize-space($raw_heading)"/>
1596     </z:index>
1597   </xslo:template>
1598   <xslo:template mode="index_data_field" match="marc:datafield[@tag='711']">
1599     <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">
1600       <xslo:variable name="raw_heading">
1601         <xslo:for-each select="marc:subfield">
1602           <xslo:if test="position() &gt; 1">
1603             <xslo:value-of select="substring(' ', 1, 1)"/>
1604           </xslo:if>
1605           <xslo:value-of select="."/>
1606         </xslo:for-each>
1607       </xslo:variable>
1608       <xslo:value-of select="normalize-space($raw_heading)"/>
1609     </z:index>
1610   </xslo:template>
1611   <xslo:template mode="index_data_field" match="marc:datafield[@tag='712']">
1612     <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">
1613       <xslo:variable name="raw_heading">
1614         <xslo:for-each select="marc:subfield">
1615           <xslo:if test="position() &gt; 1">
1616             <xslo:value-of select="substring(' ', 1, 1)"/>
1617           </xslo:if>
1618           <xslo:value-of select="."/>
1619         </xslo:for-each>
1620       </xslo:variable>
1621       <xslo:value-of select="normalize-space($raw_heading)"/>
1622     </z:index>
1623   </xslo:template>
1624   <xslo:template mode="index_data_field" match="marc:datafield[@tag='205']">
1625     <z:index name="Title:w Title:p">
1626       <xslo:variable name="raw_heading">
1627         <xslo:for-each select="marc:subfield">
1628           <xslo:if test="position() &gt; 1">
1629             <xslo:value-of select="substring(' ', 1, 1)"/>
1630           </xslo:if>
1631           <xslo:value-of select="."/>
1632         </xslo:for-each>
1633       </xslo:variable>
1634       <xslo:value-of select="normalize-space($raw_heading)"/>
1635     </z:index>
1636   </xslo:template>
1637   <xslo:template mode="index_data_field" match="marc:datafield[@tag='208']">
1638     <z:index name="Serials:w Serials:p">
1639       <xslo:variable name="raw_heading">
1640         <xslo:for-each select="marc:subfield">
1641           <xslo:if test="position() &gt; 1">
1642             <xslo:value-of select="substring(' ', 1, 1)"/>
1643           </xslo:if>
1644           <xslo:value-of select="."/>
1645         </xslo:for-each>
1646       </xslo:variable>
1647       <xslo:value-of select="normalize-space($raw_heading)"/>
1648     </z:index>
1649   </xslo:template>
1650   <xslo:template mode="index_data_field" match="marc:datafield[@tag='207']">
1651     <z:index name="Printed-music:w Printed-music:p">
1652       <xslo:variable name="raw_heading">
1653         <xslo:for-each select="marc:subfield">
1654           <xslo:if test="position() &gt; 1">
1655             <xslo:value-of select="substring(' ', 1, 1)"/>
1656           </xslo:if>
1657           <xslo:value-of select="."/>
1658         </xslo:for-each>
1659       </xslo:variable>
1660       <xslo:value-of select="normalize-space($raw_heading)"/>
1661     </z:index>
1662   </xslo:template>
1663   <xslo:template mode="index_data_field" match="marc:datafield[@tag='215']">
1664     <z:index name="Extent:w">
1665       <xslo:variable name="raw_heading">
1666         <xslo:for-each select="marc:subfield">
1667           <xslo:if test="position() &gt; 1">
1668             <xslo:value-of select="substring(' ', 1, 1)"/>
1669           </xslo:if>
1670           <xslo:value-of select="."/>
1671         </xslo:for-each>
1672       </xslo:variable>
1673       <xslo:value-of select="normalize-space($raw_heading)"/>
1674     </z:index>
1675   </xslo:template>
1676   <xslo:template mode="index_data_field" match="marc:datafield[@tag='308']">
1677     <z:index name="Note:w Note:p">
1678       <xslo:variable name="raw_heading">
1679         <xslo:for-each select="marc:subfield">
1680           <xslo:if test="position() &gt; 1">
1681             <xslo:value-of select="substring(' ', 1, 1)"/>
1682           </xslo:if>
1683           <xslo:value-of select="."/>
1684         </xslo:for-each>
1685       </xslo:variable>
1686       <xslo:value-of select="normalize-space($raw_heading)"/>
1687     </z:index>
1688   </xslo:template>
1689   <xslo:template mode="index_data_field" match="marc:datafield[@tag='328']">
1690     <z:index name="Note:w Note:p">
1691       <xslo:variable name="raw_heading">
1692         <xslo:for-each select="marc:subfield">
1693           <xslo:if test="position() &gt; 1">
1694             <xslo:value-of select="substring(' ', 1, 1)"/>
1695           </xslo:if>
1696           <xslo:value-of select="."/>
1697         </xslo:for-each>
1698       </xslo:variable>
1699       <xslo:value-of select="normalize-space($raw_heading)"/>
1700     </z:index>
1701   </xslo:template>
1702   <xslo:template mode="index_data_field" match="marc:datafield[@tag='500']">
1703     <z:index name="Title:w Title:p">
1704       <xslo:variable name="raw_heading">
1705         <xslo:for-each select="marc:subfield">
1706           <xslo:if test="position() &gt; 1">
1707             <xslo:value-of select="substring(' ', 1, 1)"/>
1708           </xslo:if>
1709           <xslo:value-of select="."/>
1710         </xslo:for-each>
1711       </xslo:variable>
1712       <xslo:value-of select="normalize-space($raw_heading)"/>
1713     </z:index>
1714   </xslo:template>
1715   <xslo:template mode="index_data_field" match="marc:datafield[@tag='501']">
1716     <z:index name="Title:w Title:p">
1717       <xslo:variable name="raw_heading">
1718         <xslo:for-each select="marc:subfield">
1719           <xslo:if test="position() &gt; 1">
1720             <xslo:value-of select="substring(' ', 1, 1)"/>
1721           </xslo:if>
1722           <xslo:value-of select="."/>
1723         </xslo:for-each>
1724       </xslo:variable>
1725       <xslo:value-of select="normalize-space($raw_heading)"/>
1726     </z:index>
1727   </xslo:template>
1728   <xslo:template mode="index_data_field" match="marc:datafield[@tag='503']">
1729     <z:index name="Title:w Title:p">
1730       <xslo:variable name="raw_heading">
1731         <xslo:for-each select="marc:subfield">
1732           <xslo:if test="position() &gt; 1">
1733             <xslo:value-of select="substring(' ', 1, 1)"/>
1734           </xslo:if>
1735           <xslo:value-of select="."/>
1736         </xslo:for-each>
1737       </xslo:variable>
1738       <xslo:value-of select="normalize-space($raw_heading)"/>
1739     </z:index>
1740   </xslo:template>
1741   <xslo:template mode="index_data_field" match="marc:datafield[@tag='510']">
1742     <z:index name="Title:w Title:p">
1743       <xslo:variable name="raw_heading">
1744         <xslo:for-each select="marc:subfield">
1745           <xslo:if test="position() &gt; 1">
1746             <xslo:value-of select="substring(' ', 1, 1)"/>
1747           </xslo:if>
1748           <xslo:value-of select="."/>
1749         </xslo:for-each>
1750       </xslo:variable>
1751       <xslo:value-of select="normalize-space($raw_heading)"/>
1752     </z:index>
1753   </xslo:template>
1754   <xslo:template mode="index_data_field" match="marc:datafield[@tag='512']">
1755     <z:index name="Title:w Title:p">
1756       <xslo:variable name="raw_heading">
1757         <xslo:for-each select="marc:subfield">
1758           <xslo:if test="position() &gt; 1">
1759             <xslo:value-of select="substring(' ', 1, 1)"/>
1760           </xslo:if>
1761           <xslo:value-of select="."/>
1762         </xslo:for-each>
1763       </xslo:variable>
1764       <xslo:value-of select="normalize-space($raw_heading)"/>
1765     </z:index>
1766   </xslo:template>
1767   <xslo:template mode="index_data_field" match="marc:datafield[@tag='513']">
1768     <z:index name="Title:w Title:p">
1769       <xslo:variable name="raw_heading">
1770         <xslo:for-each select="marc:subfield">
1771           <xslo:if test="position() &gt; 1">
1772             <xslo:value-of select="substring(' ', 1, 1)"/>
1773           </xslo:if>
1774           <xslo:value-of select="."/>
1775         </xslo:for-each>
1776       </xslo:variable>
1777       <xslo:value-of select="normalize-space($raw_heading)"/>
1778     </z:index>
1779   </xslo:template>
1780   <xslo:template mode="index_data_field" match="marc:datafield[@tag='514']">
1781     <z:index name="Title:w Title:p">
1782       <xslo:variable name="raw_heading">
1783         <xslo:for-each select="marc:subfield">
1784           <xslo:if test="position() &gt; 1">
1785             <xslo:value-of select="substring(' ', 1, 1)"/>
1786           </xslo:if>
1787           <xslo:value-of select="."/>
1788         </xslo:for-each>
1789       </xslo:variable>
1790       <xslo:value-of select="normalize-space($raw_heading)"/>
1791     </z:index>
1792   </xslo:template>
1793   <xslo:template mode="index_data_field" match="marc:datafield[@tag='515']">
1794     <z:index name="Title:w Title:p">
1795       <xslo:variable name="raw_heading">
1796         <xslo:for-each select="marc:subfield">
1797           <xslo:if test="position() &gt; 1">
1798             <xslo:value-of select="substring(' ', 1, 1)"/>
1799           </xslo:if>
1800           <xslo:value-of select="."/>
1801         </xslo:for-each>
1802       </xslo:variable>
1803       <xslo:value-of select="normalize-space($raw_heading)"/>
1804     </z:index>
1805   </xslo:template>
1806   <xslo:template mode="index_data_field" match="marc:datafield[@tag='516']">
1807     <z:index name="Title:w Title:p">
1808       <xslo:variable name="raw_heading">
1809         <xslo:for-each select="marc:subfield">
1810           <xslo:if test="position() &gt; 1">
1811             <xslo:value-of select="substring(' ', 1, 1)"/>
1812           </xslo:if>
1813           <xslo:value-of select="."/>
1814         </xslo:for-each>
1815       </xslo:variable>
1816       <xslo:value-of select="normalize-space($raw_heading)"/>
1817     </z:index>
1818   </xslo:template>
1819   <xslo:template mode="index_data_field" match="marc:datafield[@tag='517']">
1820     <z:index name="Title:w Title:p">
1821       <xslo:variable name="raw_heading">
1822         <xslo:for-each select="marc:subfield">
1823           <xslo:if test="position() &gt; 1">
1824             <xslo:value-of select="substring(' ', 1, 1)"/>
1825           </xslo:if>
1826           <xslo:value-of select="."/>
1827         </xslo:for-each>
1828       </xslo:variable>
1829       <xslo:value-of select="normalize-space($raw_heading)"/>
1830     </z:index>
1831   </xslo:template>
1832   <xslo:template mode="index_data_field" match="marc:datafield[@tag='518']">
1833     <z:index name="Title:w Title:p">
1834       <xslo:variable name="raw_heading">
1835         <xslo:for-each select="marc:subfield">
1836           <xslo:if test="position() &gt; 1">
1837             <xslo:value-of select="substring(' ', 1, 1)"/>
1838           </xslo:if>
1839           <xslo:value-of select="."/>
1840         </xslo:for-each>
1841       </xslo:variable>
1842       <xslo:value-of select="normalize-space($raw_heading)"/>
1843     </z:index>
1844   </xslo:template>
1845   <xslo:template mode="index_data_field" match="marc:datafield[@tag='519']">
1846     <z:index name="Title:w Title:p">
1847       <xslo:variable name="raw_heading">
1848         <xslo:for-each select="marc:subfield">
1849           <xslo:if test="position() &gt; 1">
1850             <xslo:value-of select="substring(' ', 1, 1)"/>
1851           </xslo:if>
1852           <xslo:value-of select="."/>
1853         </xslo:for-each>
1854       </xslo:variable>
1855       <xslo:value-of select="normalize-space($raw_heading)"/>
1856     </z:index>
1857   </xslo:template>
1858   <xslo:template mode="index_data_field" match="marc:datafield[@tag='520']">
1859     <z:index name="Title:w Title:p">
1860       <xslo:variable name="raw_heading">
1861         <xslo:for-each select="marc:subfield">
1862           <xslo:if test="position() &gt; 1">
1863             <xslo:value-of select="substring(' ', 1, 1)"/>
1864           </xslo:if>
1865           <xslo:value-of select="."/>
1866         </xslo:for-each>
1867       </xslo:variable>
1868       <xslo:value-of select="normalize-space($raw_heading)"/>
1869     </z:index>
1870   </xslo:template>
1871   <xslo:template mode="index_data_field" match="marc:datafield[@tag='530']">
1872     <z:index name="Title:w Title:p">
1873       <xslo:variable name="raw_heading">
1874         <xslo:for-each select="marc:subfield">
1875           <xslo:if test="position() &gt; 1">
1876             <xslo:value-of select="substring(' ', 1, 1)"/>
1877           </xslo:if>
1878           <xslo:value-of select="."/>
1879         </xslo:for-each>
1880       </xslo:variable>
1881       <xslo:value-of select="normalize-space($raw_heading)"/>
1882     </z:index>
1883   </xslo:template>
1884   <xslo:template mode="index_data_field" match="marc:datafield[@tag='531']">
1885     <z:index name="Title:w Title:p">
1886       <xslo:variable name="raw_heading">
1887         <xslo:for-each select="marc:subfield">
1888           <xslo:if test="position() &gt; 1">
1889             <xslo:value-of select="substring(' ', 1, 1)"/>
1890           </xslo:if>
1891           <xslo:value-of select="."/>
1892         </xslo:for-each>
1893       </xslo:variable>
1894       <xslo:value-of select="normalize-space($raw_heading)"/>
1895     </z:index>
1896   </xslo:template>
1897   <xslo:template mode="index_data_field" match="marc:datafield[@tag='532']">
1898     <z:index name="Title:w Title:p">
1899       <xslo:variable name="raw_heading">
1900         <xslo:for-each select="marc:subfield">
1901           <xslo:if test="position() &gt; 1">
1902             <xslo:value-of select="substring(' ', 1, 1)"/>
1903           </xslo:if>
1904           <xslo:value-of select="."/>
1905         </xslo:for-each>
1906       </xslo:variable>
1907       <xslo:value-of select="normalize-space($raw_heading)"/>
1908     </z:index>
1909   </xslo:template>
1910   <xslo:template mode="index_data_field" match="marc:datafield[@tag='540']">
1911     <z:index name="Title:w Title:p">
1912       <xslo:variable name="raw_heading">
1913         <xslo:for-each select="marc:subfield">
1914           <xslo:if test="position() &gt; 1">
1915             <xslo:value-of select="substring(' ', 1, 1)"/>
1916           </xslo:if>
1917           <xslo:value-of select="."/>
1918         </xslo:for-each>
1919       </xslo:variable>
1920       <xslo:value-of select="normalize-space($raw_heading)"/>
1921     </z:index>
1922   </xslo:template>
1923   <xslo:template mode="index_data_field" match="marc:datafield[@tag='541']">
1924     <z:index name="Title:w Title:p">
1925       <xslo:variable name="raw_heading">
1926         <xslo:for-each select="marc:subfield">
1927           <xslo:if test="position() &gt; 1">
1928             <xslo:value-of select="substring(' ', 1, 1)"/>
1929           </xslo:if>
1930           <xslo:value-of select="."/>
1931         </xslo:for-each>
1932       </xslo:variable>
1933       <xslo:value-of select="normalize-space($raw_heading)"/>
1934     </z:index>
1935   </xslo:template>
1936   <xslo:template mode="index_data_field" match="marc:datafield[@tag='545']">
1937     <z:index name="Title:w Title:p">
1938       <xslo:variable name="raw_heading">
1939         <xslo:for-each select="marc:subfield">
1940           <xslo:if test="position() &gt; 1">
1941             <xslo:value-of select="substring(' ', 1, 1)"/>
1942           </xslo:if>
1943           <xslo:value-of select="."/>
1944         </xslo:for-each>
1945       </xslo:variable>
1946       <xslo:value-of select="normalize-space($raw_heading)"/>
1947     </z:index>
1948   </xslo:template>
1949   <xslo:template mode="index_data_field" match="marc:datafield[@tag='600']">
1950     <z:index name="Subject:w Subject:p">
1951       <xslo:variable name="raw_heading">
1952         <xslo:for-each select="marc:subfield">
1953           <xslo:if test="position() &gt; 1">
1954             <xslo:value-of select="substring(' ', 1, 1)"/>
1955           </xslo:if>
1956           <xslo:value-of select="."/>
1957         </xslo:for-each>
1958       </xslo:variable>
1959       <xslo:value-of select="normalize-space($raw_heading)"/>
1960     </z:index>
1961   </xslo:template>
1962   <xslo:template mode="index_data_field" match="marc:datafield[@tag='601']">
1963     <z:index name="Subject:w Subject:p">
1964       <xslo:variable name="raw_heading">
1965         <xslo:for-each select="marc:subfield">
1966           <xslo:if test="position() &gt; 1">
1967             <xslo:value-of select="substring(' ', 1, 1)"/>
1968           </xslo:if>
1969           <xslo:value-of select="."/>
1970         </xslo:for-each>
1971       </xslo:variable>
1972       <xslo:value-of select="normalize-space($raw_heading)"/>
1973     </z:index>
1974   </xslo:template>
1975   <xslo:template mode="index_data_field" match="marc:datafield[@tag='602']">
1976     <z:index name="Subject:w Subject:p">
1977       <xslo:variable name="raw_heading">
1978         <xslo:for-each select="marc:subfield">
1979           <xslo:if test="position() &gt; 1">
1980             <xslo:value-of select="substring(' ', 1, 1)"/>
1981           </xslo:if>
1982           <xslo:value-of select="."/>
1983         </xslo:for-each>
1984       </xslo:variable>
1985       <xslo:value-of select="normalize-space($raw_heading)"/>
1986     </z:index>
1987   </xslo:template>
1988   <xslo:template mode="index_data_field" match="marc:datafield[@tag='604']">
1989     <z:index name="Subject:w Subject:p">
1990       <xslo:variable name="raw_heading">
1991         <xslo:for-each select="marc:subfield">
1992           <xslo:if test="position() &gt; 1">
1993             <xslo:value-of select="substring(' ', 1, 1)"/>
1994           </xslo:if>
1995           <xslo:value-of select="."/>
1996         </xslo:for-each>
1997       </xslo:variable>
1998       <xslo:value-of select="normalize-space($raw_heading)"/>
1999     </z:index>
2000   </xslo:template>
2001   <xslo:template mode="index_data_field" match="marc:datafield[@tag='605']">
2002     <z:index name="Subject:w Subject:p">
2003       <xslo:variable name="raw_heading">
2004         <xslo:for-each select="marc:subfield">
2005           <xslo:if test="position() &gt; 1">
2006             <xslo:value-of select="substring(' ', 1, 1)"/>
2007           </xslo:if>
2008           <xslo:value-of select="."/>
2009         </xslo:for-each>
2010       </xslo:variable>
2011       <xslo:value-of select="normalize-space($raw_heading)"/>
2012     </z:index>
2013   </xslo:template>
2014   <xslo:template mode="index_data_field" match="marc:datafield[@tag='606']">
2015     <z:index name="Subject:w Subject:p">
2016       <xslo:variable name="raw_heading">
2017         <xslo:for-each select="marc:subfield">
2018           <xslo:if test="position() &gt; 1">
2019             <xslo:value-of select="substring(' ', 1, 1)"/>
2020           </xslo:if>
2021           <xslo:value-of select="."/>
2022         </xslo:for-each>
2023       </xslo:variable>
2024       <xslo:value-of select="normalize-space($raw_heading)"/>
2025     </z:index>
2026   </xslo:template>
2027   <xslo:template mode="index_data_field" match="marc:datafield[@tag='607']">
2028     <z:index name="Subject:w Subject:p">
2029       <xslo:variable name="raw_heading">
2030         <xslo:for-each select="marc:subfield">
2031           <xslo:if test="position() &gt; 1">
2032             <xslo:value-of select="substring(' ', 1, 1)"/>
2033           </xslo:if>
2034           <xslo:value-of select="."/>
2035         </xslo:for-each>
2036       </xslo:variable>
2037       <xslo:value-of select="normalize-space($raw_heading)"/>
2038     </z:index>
2039   </xslo:template>
2040   <xslo:template mode="index_data_field" match="marc:datafield[@tag='630']">
2041     <z:index name="Subject:w Subject:p">
2042       <xslo:variable name="raw_heading">
2043         <xslo:for-each select="marc:subfield">
2044           <xslo:if test="position() &gt; 1">
2045             <xslo:value-of select="substring(' ', 1, 1)"/>
2046           </xslo:if>
2047           <xslo:value-of select="."/>
2048         </xslo:for-each>
2049       </xslo:variable>
2050       <xslo:value-of select="normalize-space($raw_heading)"/>
2051     </z:index>
2052   </xslo:template>
2053   <xslo:template mode="index_data_field" match="marc:datafield[@tag='631']">
2054     <z:index name="Subject:w Subject:p">
2055       <xslo:variable name="raw_heading">
2056         <xslo:for-each select="marc:subfield">
2057           <xslo:if test="position() &gt; 1">
2058             <xslo:value-of select="substring(' ', 1, 1)"/>
2059           </xslo:if>
2060           <xslo:value-of select="."/>
2061         </xslo:for-each>
2062       </xslo:variable>
2063       <xslo:value-of select="normalize-space($raw_heading)"/>
2064     </z:index>
2065   </xslo:template>
2066   <xslo:template mode="index_data_field" match="marc:datafield[@tag='632']">
2067     <z:index name="Subject:w Subject:p">
2068       <xslo:variable name="raw_heading">
2069         <xslo:for-each select="marc:subfield">
2070           <xslo:if test="position() &gt; 1">
2071             <xslo:value-of select="substring(' ', 1, 1)"/>
2072           </xslo:if>
2073           <xslo:value-of select="."/>
2074         </xslo:for-each>
2075       </xslo:variable>
2076       <xslo:value-of select="normalize-space($raw_heading)"/>
2077     </z:index>
2078   </xslo:template>
2079   <xslo:template mode="index_data_field" match="marc:datafield[@tag='633']">
2080     <z:index name="Subject:w Subject:p">
2081       <xslo:variable name="raw_heading">
2082         <xslo:for-each select="marc:subfield">
2083           <xslo:if test="position() &gt; 1">
2084             <xslo:value-of select="substring(' ', 1, 1)"/>
2085           </xslo:if>
2086           <xslo:value-of select="."/>
2087         </xslo:for-each>
2088       </xslo:variable>
2089       <xslo:value-of select="normalize-space($raw_heading)"/>
2090     </z:index>
2091   </xslo:template>
2092   <xslo:template mode="index_data_field" match="marc:datafield[@tag='634']">
2093     <z:index name="Subject:w Subject:p">
2094       <xslo:variable name="raw_heading">
2095         <xslo:for-each select="marc:subfield">
2096           <xslo:if test="position() &gt; 1">
2097             <xslo:value-of select="substring(' ', 1, 1)"/>
2098           </xslo:if>
2099           <xslo:value-of select="."/>
2100         </xslo:for-each>
2101       </xslo:variable>
2102       <xslo:value-of select="normalize-space($raw_heading)"/>
2103     </z:index>
2104   </xslo:template>
2105   <xslo:template mode="index_data_field" match="marc:datafield[@tag='635']">
2106     <z:index name="Subject:w Subject:p">
2107       <xslo:variable name="raw_heading">
2108         <xslo:for-each select="marc:subfield">
2109           <xslo:if test="position() &gt; 1">
2110             <xslo:value-of select="substring(' ', 1, 1)"/>
2111           </xslo:if>
2112           <xslo:value-of select="."/>
2113         </xslo:for-each>
2114       </xslo:variable>
2115       <xslo:value-of select="normalize-space($raw_heading)"/>
2116     </z:index>
2117   </xslo:template>
2118   <xslo:template mode="index_data_field" match="marc:datafield[@tag='636']">
2119     <z:index name="Subject:w Subject:p">
2120       <xslo:variable name="raw_heading">
2121         <xslo:for-each select="marc:subfield">
2122           <xslo:if test="position() &gt; 1">
2123             <xslo:value-of select="substring(' ', 1, 1)"/>
2124           </xslo:if>
2125           <xslo:value-of select="."/>
2126         </xslo:for-each>
2127       </xslo:variable>
2128       <xslo:value-of select="normalize-space($raw_heading)"/>
2129     </z:index>
2130   </xslo:template>
2131   <xslo:template mode="index_data_field" match="marc:datafield[@tag='610']">
2132     <z:index name="Subject:w Subject:p">
2133       <xslo:variable name="raw_heading">
2134         <xslo:for-each select="marc:subfield">
2135           <xslo:if test="position() &gt; 1">
2136             <xslo:value-of select="substring(' ', 1, 1)"/>
2137           </xslo:if>
2138           <xslo:value-of select="."/>
2139         </xslo:for-each>
2140       </xslo:variable>
2141       <xslo:value-of select="normalize-space($raw_heading)"/>
2142     </z:index>
2143   </xslo:template>
2144   <xslo:template mode="index_data_field" match="marc:datafield[@tag='640']">
2145     <z:index name="Subject:w Subject:p">
2146       <xslo:variable name="raw_heading">
2147         <xslo:for-each select="marc:subfield">
2148           <xslo:if test="position() &gt; 1">
2149             <xslo:value-of select="substring(' ', 1, 1)"/>
2150           </xslo:if>
2151           <xslo:value-of select="."/>
2152         </xslo:for-each>
2153       </xslo:variable>
2154       <xslo:value-of select="normalize-space($raw_heading)"/>
2155     </z:index>
2156   </xslo:template>
2157   <xslo:template mode="index_data_field" match="marc:datafield[@tag='641']">
2158     <z:index name="Subject:w Subject:p">
2159       <xslo:variable name="raw_heading">
2160         <xslo:for-each select="marc:subfield">
2161           <xslo:if test="position() &gt; 1">
2162             <xslo:value-of select="substring(' ', 1, 1)"/>
2163           </xslo:if>
2164           <xslo:value-of select="."/>
2165         </xslo:for-each>
2166       </xslo:variable>
2167       <xslo:value-of select="normalize-space($raw_heading)"/>
2168     </z:index>
2169   </xslo:template>
2170   <xslo:template mode="index_data_field" match="marc:datafield[@tag='642']">
2171     <z:index name="Subject:w Subject:p">
2172       <xslo:variable name="raw_heading">
2173         <xslo:for-each select="marc:subfield">
2174           <xslo:if test="position() &gt; 1">
2175             <xslo:value-of select="substring(' ', 1, 1)"/>
2176           </xslo:if>
2177           <xslo:value-of select="."/>
2178         </xslo:for-each>
2179       </xslo:variable>
2180       <xslo:value-of select="normalize-space($raw_heading)"/>
2181     </z:index>
2182   </xslo:template>
2183   <xslo:template mode="index_data_field" match="marc:datafield[@tag='643']">
2184     <z:index name="Subject:w Subject:p">
2185       <xslo:variable name="raw_heading">
2186         <xslo:for-each select="marc:subfield">
2187           <xslo:if test="position() &gt; 1">
2188             <xslo:value-of select="substring(' ', 1, 1)"/>
2189           </xslo:if>
2190           <xslo:value-of select="."/>
2191         </xslo:for-each>
2192       </xslo:variable>
2193       <xslo:value-of select="normalize-space($raw_heading)"/>
2194     </z:index>
2195   </xslo:template>
2196   <xslo:template mode="index_data_field" match="marc:datafield[@tag='644']">
2197     <z:index name="Subject:w Subject:p">
2198       <xslo:variable name="raw_heading">
2199         <xslo:for-each select="marc:subfield">
2200           <xslo:if test="position() &gt; 1">
2201             <xslo:value-of select="substring(' ', 1, 1)"/>
2202           </xslo:if>
2203           <xslo:value-of select="."/>
2204         </xslo:for-each>
2205       </xslo:variable>
2206       <xslo:value-of select="normalize-space($raw_heading)"/>
2207     </z:index>
2208   </xslo:template>
2209   <xslo:template mode="index_data_field" match="marc:datafield[@tag='645']">
2210     <z:index name="Subject:w Subject:p">
2211       <xslo:variable name="raw_heading">
2212         <xslo:for-each select="marc:subfield">
2213           <xslo:if test="position() &gt; 1">
2214             <xslo:value-of select="substring(' ', 1, 1)"/>
2215           </xslo:if>
2216           <xslo:value-of select="."/>
2217         </xslo:for-each>
2218       </xslo:variable>
2219       <xslo:value-of select="normalize-space($raw_heading)"/>
2220     </z:index>
2221   </xslo:template>
2222   <xslo:template mode="index_data_field" match="marc:datafield[@tag='646']">
2223     <z:index name="Subject:w Subject:p">
2224       <xslo:variable name="raw_heading">
2225         <xslo:for-each select="marc:subfield">
2226           <xslo:if test="position() &gt; 1">
2227             <xslo:value-of select="substring(' ', 1, 1)"/>
2228           </xslo:if>
2229           <xslo:value-of select="."/>
2230         </xslo:for-each>
2231       </xslo:variable>
2232       <xslo:value-of select="normalize-space($raw_heading)"/>
2233     </z:index>
2234   </xslo:template>
2235   <xslo:template mode="index_data_field" match="marc:datafield[@tag='995']">
2236     <z:index name="item # just to index every subfield:w">
2237       <xslo:variable name="raw_heading">
2238         <xslo:for-each select="marc:subfield">
2239           <xslo:if test="position() &gt; 1">
2240             <xslo:value-of select="substring(' ', 1, 1)"/>
2241           </xslo:if>
2242           <xslo:value-of select="."/>
2243         </xslo:for-each>
2244       </xslo:variable>
2245       <xslo:value-of select="normalize-space($raw_heading)"/>
2246     </z:index>
2247   </xslo:template>
2248   <xslo:template match="*">
2249     <z:index name="Any:w Any:p">
2250       <xslo:value-of select="."/>
2251     </z:index>
2252   </xslo:template>
2253   <xslo:template name="chopPunctuation">
2254     <xslo:param name="chopString"/>
2255     <xslo:variable name="length" select="string-length($chopString)"/>
2256     <xslo:choose>
2257       <xslo:when test="$length=0"/>
2258       <xslo:when test="contains('-,.:=;!%/', substring($chopString,$length,1))">
2259         <xslo:call-template name="chopPunctuation">
2260           <xslo:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
2261         </xslo:call-template>
2262       </xslo:when>
2263       <xslo:when test="not($chopString)"/>
2264       <xslo:otherwise>
2265         <xslo:value-of select="$chopString"/>
2266       </xslo:otherwise>
2267     </xslo:choose>
2268     <xslo:text/>
2269   </xslo:template>
2270 </xslo:stylesheet>