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