1 <?xml version="1.0" encoding="UTF-8"?>
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).
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">
22 <xslo:apply-templates select="marc:collection/marc:record"/>
25 <xslo:if test="marc:record">
26 <xslo:apply-templates select="marc:record"/>
29 <xslo:template match="marc:record">
30 <xslo:variable name="controlField001" select="normalize-space(marc:controlfield[@tag='001'])"/>
31 <z:record type="update">
32 <xslo:attribute name="z:id">
33 <xslo:value-of select="$controlField001"/>
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"/>
44 <xslo:template match="marc:leader">
45 <z:index name="Record-status:w">
46 <xslo:value-of select="substring(., 6, 1)"/>
48 <z:index name="Encoding-level:w">
49 <xslo:value-of select="substring(., 18, 1)"/>
52 <xslo:template match="marc:controlfield[@tag='001']">
53 <z:index name="Local-Number:w Local-Number:s">
54 <xslo:value-of select="."/>
57 <xslo:template match="marc:controlfield[@tag='008']">
58 <z:index name="Kind-of-record:w">
59 <xslo:value-of select="substring(., 10, 1)"/>
61 <z:index name="Descriptive-cataloging-rules:w">
62 <xslo:value-of select="substring(., 11, 1)"/>
64 <z:index name="Heading-use-main-or-added-entry:w">
65 <xslo:value-of select="substring(., 15, 1)"/>
67 <z:index name="Heading-use-subject-added-entry:w">
68 <xslo:value-of select="substring(., 16, 1)"/>
70 <z:index name="Heading-use-series-added-entry:w">
71 <xslo:value-of select="substring(., 17, 1)"/>
74 <xslo:template mode="index_subfields" match="marc:datafield[@tag='010']">
75 <xslo:for-each select="marc:subfield">
76 <xslo:if test="contains('az', @code)">
77 <z:index name="LC-card-number:w LC-card-number:p">
78 <xslo:value-of select="."/>
83 <xslo:template mode="index_subfields" match="marc:datafield[@tag='040']">
84 <xslo:for-each select="marc:subfield">
85 <xslo:if test="contains('acd', @code)">
86 <z:index name="Record-source:w Record-source:p">
87 <xslo:value-of select="."/>
92 <xslo:template mode="index_subfields" match="marc:datafield[@tag='100']">
93 <xslo:for-each select="marc:subfield">
94 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)">
95 <z:index name="Personal-name:w Personal-name:p Personal-name:s">
96 <xslo:value-of select="."/>
101 <xslo:template mode="index_subfields" match="marc:datafield[@tag='110']">
102 <xslo:for-each select="marc:subfield">
103 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)">
104 <z:index name="Corporate-name:w Corporate-name:p">
105 <xslo:value-of select="."/>
110 <xslo:template mode="index_subfields" match="marc:datafield[@tag='111']">
111 <xslo:for-each select="marc:subfield">
112 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)">
113 <z:index name="Meeting-name:w Meeting-name:p">
114 <xslo:value-of select="."/>
119 <xslo:template mode="index_subfields" match="marc:datafield[@tag='130']">
120 <xslo:for-each select="marc:subfield">
121 <xslo:if test="contains('adfghklmnoprstvxyz', @code)">
122 <z:index name="Title-uniform:w Title-uniform:p">
123 <xslo:value-of select="."/>
128 <xslo:template mode="index_subfields" match="marc:datafield[@tag='148']">
129 <xslo:for-each select="marc:subfield">
130 <xslo:if test="contains('avxyz', @code)">
131 <z:index name="Chronological-term:w Chronological-term:p">
132 <xslo:value-of select="."/>
137 <xslo:template mode="index_subfields" match="marc:datafield[@tag='150']">
138 <xslo:for-each select="marc:subfield">
139 <xslo:if test="contains('abvxyz', @code)">
140 <z:index name="Subject-topical:w Subject-topical:p">
141 <xslo:value-of select="."/>
146 <xslo:template mode="index_subfields" match="marc:datafield[@tag='151']">
147 <xslo:for-each select="marc:subfield">
148 <xslo:if test="contains('avxyz', @code)">
149 <z:index name="Name-geographic:w Name-geographic:p">
150 <xslo:value-of select="."/>
155 <xslo:template mode="index_subfields" match="marc:datafield[@tag='155']">
156 <xslo:for-each select="marc:subfield">
157 <xslo:if test="contains('avxyz', @code)">
158 <z:index name="Term-genre-form:w Term-genre-form:p">
159 <xslo:value-of select="."/>
164 <xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
165 <xslo:for-each select="marc:subfield">
166 <xslo:if test="contains('a', @code)">
167 <z:index name="authtype:w">
168 <xslo:value-of select="."/>
173 <xslo:template mode="index_heading" match="marc:datafield[@tag='100']">
174 <z:index name="Personal-name-heading:w Personal-name-heading:p Personal-name-heading:s Heading:w Heading:p Heading:s">
175 <xslo:variable name="raw_heading">
176 <xslo:for-each select="marc:subfield">
177 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Personal-name-heading:w Personal-name-heading:p Personal-name-heading:s Heading:w Heading:p Heading:s">
178 <xslo:if test="position() > 1">
180 <xslo:when test="contains('vxyz', @code)">
181 <xslo:text>--</xslo:text>
184 <xslo:value-of select="substring(' ', 1, 1)"/>
188 <xslo:value-of select="."/>
192 <xslo:value-of select="normalize-space($raw_heading)"/>
194 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
195 <xslo:variable name="raw_heading">
196 <xslo:for-each select="marc:subfield">
197 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
198 <xslo:if test="position() > 1">
200 <xslo:when test="contains('', @code)">
201 <xslo:text>--</xslo:text>
204 <xslo:value-of select="substring(' ', 1, 1)"/>
208 <xslo:value-of select="."/>
212 <xslo:value-of select="normalize-space($raw_heading)"/>
215 <xslo:template mode="index_heading" match="marc:datafield[@tag='400']">
216 <z:index name="Personal-name-see-from:w Personal-name-see-from:p Personal-name-see-from:s See-from:w See-from:p See-from:s">
217 <xslo:variable name="raw_heading">
218 <xslo:for-each select="marc:subfield">
219 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Personal-name-see-from:w Personal-name-see-from:p Personal-name-see-from:s See-from:w See-from:p See-from:s">
220 <xslo:if test="position() > 1">
222 <xslo:when test="contains('vxyz', @code)">
223 <xslo:text>--</xslo:text>
226 <xslo:value-of select="substring(' ', 1, 1)"/>
230 <xslo:value-of select="."/>
234 <xslo:value-of select="normalize-space($raw_heading)"/>
237 <xslo:template mode="index_heading" match="marc:datafield[@tag='500']">
238 <z:index name="Personal-name-see-also-from:w Personal-name-see-also-from:p Personal-name-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
239 <xslo:variable name="raw_heading">
240 <xslo:for-each select="marc:subfield">
241 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Personal-name-see-also-from:w Personal-name-see-also-from:p Personal-name-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
242 <xslo:if test="position() > 1">
244 <xslo:when test="contains('vxyz', @code)">
245 <xslo:text>--</xslo:text>
248 <xslo:value-of select="substring(' ', 1, 1)"/>
252 <xslo:value-of select="."/>
256 <xslo:value-of select="normalize-space($raw_heading)"/>
259 <xslo:template mode="index_heading" match="marc:datafield[@tag='110']">
260 <z:index name="Corporate-name-heading:w Corporate-name-heading:p Corporate-name-heading:s Heading:w Heading:p Heading:s">
261 <xslo:variable name="raw_heading">
262 <xslo:for-each select="marc:subfield">
263 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Corporate-name-heading:w Corporate-name-heading:p Corporate-name-heading:s Heading:w Heading:p Heading:s">
264 <xslo:if test="position() > 1">
266 <xslo:when test="contains('vxyz', @code)">
267 <xslo:text>--</xslo:text>
270 <xslo:value-of select="substring(' ', 1, 1)"/>
274 <xslo:value-of select="."/>
278 <xslo:value-of select="normalize-space($raw_heading)"/>
280 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
281 <xslo:variable name="raw_heading">
282 <xslo:for-each select="marc:subfield">
283 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
284 <xslo:if test="position() > 1">
286 <xslo:when test="contains('', @code)">
287 <xslo:text>--</xslo:text>
290 <xslo:value-of select="substring(' ', 1, 1)"/>
294 <xslo:value-of select="."/>
298 <xslo:value-of select="normalize-space($raw_heading)"/>
301 <xslo:template mode="index_heading" match="marc:datafield[@tag='410']">
302 <z:index name="Corporate-name-see-from:w Corporate-name-see-from:p Corporate-name-see-from:s See-from:w See-from:p See-from:s">
303 <xslo:variable name="raw_heading">
304 <xslo:for-each select="marc:subfield">
305 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Corporate-name-see-from:w Corporate-name-see-from:p Corporate-name-see-from:s See-from:w See-from:p See-from:s">
306 <xslo:if test="position() > 1">
308 <xslo:when test="contains('vxyz', @code)">
309 <xslo:text>--</xslo:text>
312 <xslo:value-of select="substring(' ', 1, 1)"/>
316 <xslo:value-of select="."/>
320 <xslo:value-of select="normalize-space($raw_heading)"/>
323 <xslo:template mode="index_heading" match="marc:datafield[@tag='510']">
324 <z:index name="Corporate-name-see-also-from:w Corporate-name-see-also-from:p Corporate-name-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
325 <xslo:variable name="raw_heading">
326 <xslo:for-each select="marc:subfield">
327 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Corporate-name-see-also-from:w Corporate-name-see-also-from:p Corporate-name-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
328 <xslo:if test="position() > 1">
330 <xslo:when test="contains('vxyz', @code)">
331 <xslo:text>--</xslo:text>
334 <xslo:value-of select="substring(' ', 1, 1)"/>
338 <xslo:value-of select="."/>
342 <xslo:value-of select="normalize-space($raw_heading)"/>
345 <xslo:template mode="index_heading" match="marc:datafield[@tag='111']">
346 <z:index name="Meeting-name-heading:w Meeting-name-heading:p Meeting-name-heading:s Heading:w Heading:p Heading:s">
347 <xslo:variable name="raw_heading">
348 <xslo:for-each select="marc:subfield">
349 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Meeting-name-heading:w Meeting-name-heading:p Meeting-name-heading:s Heading:w Heading:p Heading:s">
350 <xslo:if test="position() > 1">
352 <xslo:when test="contains('vxyz', @code)">
353 <xslo:text>--</xslo:text>
356 <xslo:value-of select="substring(' ', 1, 1)"/>
360 <xslo:value-of select="."/>
364 <xslo:value-of select="normalize-space($raw_heading)"/>
366 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
367 <xslo:variable name="raw_heading">
368 <xslo:for-each select="marc:subfield">
369 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
370 <xslo:if test="position() > 1">
372 <xslo:when test="contains('', @code)">
373 <xslo:text>--</xslo:text>
376 <xslo:value-of select="substring(' ', 1, 1)"/>
380 <xslo:value-of select="."/>
384 <xslo:value-of select="normalize-space($raw_heading)"/>
387 <xslo:template mode="index_heading" match="marc:datafield[@tag='411']">
388 <z:index name="Meeting-name-see-from:w Meeting-name-see-from:p Meeting-name-see-from:s See-from:w See-from:p See-from:s">
389 <xslo:variable name="raw_heading">
390 <xslo:for-each select="marc:subfield">
391 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Meeting-name-see-from:w Meeting-name-see-from:p Meeting-name-see-from:s See-from:w See-from:p See-from:s">
392 <xslo:if test="position() > 1">
394 <xslo:when test="contains('vxyz', @code)">
395 <xslo:text>--</xslo:text>
398 <xslo:value-of select="substring(' ', 1, 1)"/>
402 <xslo:value-of select="."/>
406 <xslo:value-of select="normalize-space($raw_heading)"/>
409 <xslo:template mode="index_heading" match="marc:datafield[@tag='511']">
410 <z:index name="Meeting-name-see-also-from:w Meeting-name-see-also-from:p Meeting-name-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
411 <xslo:variable name="raw_heading">
412 <xslo:for-each select="marc:subfield">
413 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Meeting-name-see-also-from:w Meeting-name-see-also-from:p Meeting-name-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
414 <xslo:if test="position() > 1">
416 <xslo:when test="contains('vxyz', @code)">
417 <xslo:text>--</xslo:text>
420 <xslo:value-of select="substring(' ', 1, 1)"/>
424 <xslo:value-of select="."/>
428 <xslo:value-of select="normalize-space($raw_heading)"/>
431 <xslo:template mode="index_heading" match="marc:datafield[@tag='130']">
432 <z:index name="Title-uniform-heading:w Title-uniform-heading:p Title-uniform-heading:s Heading:w Heading:p Heading:s">
433 <xslo:variable name="raw_heading">
434 <xslo:for-each select="marc:subfield">
435 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Title-uniform-heading:w Title-uniform-heading:p Title-uniform-heading:s Heading:w Heading:p Heading:s">
436 <xslo:if test="position() > 1">
438 <xslo:when test="contains('vxyz', @code)">
439 <xslo:text>--</xslo:text>
442 <xslo:value-of select="substring(' ', 1, 1)"/>
446 <xslo:value-of select="."/>
450 <xslo:value-of select="normalize-space($raw_heading)"/>
452 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
453 <xslo:variable name="raw_heading">
454 <xslo:for-each select="marc:subfield">
455 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
456 <xslo:if test="position() > 1">
458 <xslo:when test="contains('', @code)">
459 <xslo:text>--</xslo:text>
462 <xslo:value-of select="substring(' ', 1, 1)"/>
466 <xslo:value-of select="."/>
470 <xslo:value-of select="normalize-space($raw_heading)"/>
473 <xslo:template mode="index_heading" match="marc:datafield[@tag='430']">
474 <z:index name="Title-uniform-see-from:w Title-uniform-see-from:p Title-uniform-see-from:s See-from:w See-from:p See-from:s">
475 <xslo:variable name="raw_heading">
476 <xslo:for-each select="marc:subfield">
477 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Title-uniform-see-from:w Title-uniform-see-from:p Title-uniform-see-from:s See-from:w See-from:p See-from:s">
478 <xslo:if test="position() > 1">
480 <xslo:when test="contains('vxyz', @code)">
481 <xslo:text>--</xslo:text>
484 <xslo:value-of select="substring(' ', 1, 1)"/>
488 <xslo:value-of select="."/>
492 <xslo:value-of select="normalize-space($raw_heading)"/>
495 <xslo:template mode="index_heading" match="marc:datafield[@tag='530']">
496 <z:index name="Title-uniform-see-also-from:w Title-uniform-see-also-from:p Title-uniform-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
497 <xslo:variable name="raw_heading">
498 <xslo:for-each select="marc:subfield">
499 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Title-uniform-see-also-from:w Title-uniform-see-also-from:p Title-uniform-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
500 <xslo:if test="position() > 1">
502 <xslo:when test="contains('vxyz', @code)">
503 <xslo:text>--</xslo:text>
506 <xslo:value-of select="substring(' ', 1, 1)"/>
510 <xslo:value-of select="."/>
514 <xslo:value-of select="normalize-space($raw_heading)"/>
517 <xslo:template mode="index_heading" match="marc:datafield[@tag='148']">
518 <z:index name="Chronological-term-heading:w Chronological-term-heading:p Chronological-term-heading:s Heading:w Heading:p Heading:s">
519 <xslo:variable name="raw_heading">
520 <xslo:for-each select="marc:subfield">
521 <xslo:if test="contains('avxyz', @code)" name="Chronological-term-heading:w Chronological-term-heading:p Chronological-term-heading:s Heading:w Heading:p Heading:s">
522 <xslo:if test="position() > 1">
524 <xslo:when test="contains('vxyz', @code)">
525 <xslo:text>--</xslo:text>
528 <xslo:value-of select="substring(' ', 1, 1)"/>
532 <xslo:value-of select="."/>
536 <xslo:value-of select="normalize-space($raw_heading)"/>
538 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
539 <xslo:variable name="raw_heading">
540 <xslo:for-each select="marc:subfield">
541 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
542 <xslo:if test="position() > 1">
544 <xslo:when test="contains('', @code)">
545 <xslo:text>--</xslo:text>
548 <xslo:value-of select="substring(' ', 1, 1)"/>
552 <xslo:value-of select="."/>
556 <xslo:value-of select="normalize-space($raw_heading)"/>
559 <xslo:template mode="index_heading" match="marc:datafield[@tag='448']">
560 <z:index name="Chronological-term-see-from:w Chronological-term-see-from:p Chronological-term-see-from:s See-from:w See-from:p See-from:s">
561 <xslo:variable name="raw_heading">
562 <xslo:for-each select="marc:subfield">
563 <xslo:if test="contains('avxyz', @code)" name="Chronological-term-see-from:w Chronological-term-see-from:p Chronological-term-see-from:s See-from:w See-from:p See-from:s">
564 <xslo:if test="position() > 1">
566 <xslo:when test="contains('vxyz', @code)">
567 <xslo:text>--</xslo:text>
570 <xslo:value-of select="substring(' ', 1, 1)"/>
574 <xslo:value-of select="."/>
578 <xslo:value-of select="normalize-space($raw_heading)"/>
581 <xslo:template mode="index_heading" match="marc:datafield[@tag='548']">
582 <z:index name="Chronological-term-see-also-from:w Chronological-term-see-also-from:p Chronological-term-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
583 <xslo:variable name="raw_heading">
584 <xslo:for-each select="marc:subfield">
585 <xslo:if test="contains('avxyz', @code)" name="Chronological-term-see-also-from:w Chronological-term-see-also-from:p Chronological-term-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
586 <xslo:if test="position() > 1">
588 <xslo:when test="contains('vxyz', @code)">
589 <xslo:text>--</xslo:text>
592 <xslo:value-of select="substring(' ', 1, 1)"/>
596 <xslo:value-of select="."/>
600 <xslo:value-of select="normalize-space($raw_heading)"/>
603 <xslo:template mode="index_heading" match="marc:datafield[@tag='150']">
604 <z:index name="Subject-topical-heading:w Subject-topical-heading:p Subject-topical-heading:s Heading:w Heading:p Heading:s">
605 <xslo:variable name="raw_heading">
606 <xslo:for-each select="marc:subfield">
607 <xslo:if test="contains('abvxyz', @code)" name="Subject-topical-heading:w Subject-topical-heading:p Subject-topical-heading:s Heading:w Heading:p Heading:s">
608 <xslo:if test="position() > 1">
610 <xslo:when test="contains('vxyz', @code)">
611 <xslo:text>--</xslo:text>
614 <xslo:value-of select="substring(' ', 1, 1)"/>
618 <xslo:value-of select="."/>
622 <xslo:value-of select="normalize-space($raw_heading)"/>
624 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
625 <xslo:variable name="raw_heading">
626 <xslo:for-each select="marc:subfield">
627 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
628 <xslo:if test="position() > 1">
630 <xslo:when test="contains('', @code)">
631 <xslo:text>--</xslo:text>
634 <xslo:value-of select="substring(' ', 1, 1)"/>
638 <xslo:value-of select="."/>
642 <xslo:value-of select="normalize-space($raw_heading)"/>
645 <xslo:template mode="index_heading" match="marc:datafield[@tag='450']">
646 <z:index name="Subject-topical-see-from:w Subject-topical-see-from:p Subject-topical-see-from:s See-from:w See-from:p See-from:s">
647 <xslo:variable name="raw_heading">
648 <xslo:for-each select="marc:subfield">
649 <xslo:if test="contains('abvxyz', @code)" name="Subject-topical-see-from:w Subject-topical-see-from:p Subject-topical-see-from:s See-from:w See-from:p See-from:s">
650 <xslo:if test="position() > 1">
652 <xslo:when test="contains('vxyz', @code)">
653 <xslo:text>--</xslo:text>
656 <xslo:value-of select="substring(' ', 1, 1)"/>
660 <xslo:value-of select="."/>
664 <xslo:value-of select="normalize-space($raw_heading)"/>
667 <xslo:template mode="index_heading" match="marc:datafield[@tag='550']">
668 <z:index name="Subject-topical-see-also-from:w Subject-topical-see-also-from:p Subject-topical-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
669 <xslo:variable name="raw_heading">
670 <xslo:for-each select="marc:subfield">
671 <xslo:if test="contains('abvxyz', @code)" name="Subject-topical-see-also-from:w Subject-topical-see-also-from:p Subject-topical-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
672 <xslo:if test="position() > 1">
674 <xslo:when test="contains('vxyz', @code)">
675 <xslo:text>--</xslo:text>
678 <xslo:value-of select="substring(' ', 1, 1)"/>
682 <xslo:value-of select="."/>
686 <xslo:value-of select="normalize-space($raw_heading)"/>
689 <xslo:template mode="index_heading" match="marc:datafield[@tag='151']">
690 <z:index name="Name-geographic-heading:w Name-geographic-heading:p Name-geographic-heading:s Heading:w Heading:p Heading:s">
691 <xslo:variable name="raw_heading">
692 <xslo:for-each select="marc:subfield">
693 <xslo:if test="contains('avxyz', @code)" name="Name-geographic-heading:w Name-geographic-heading:p Name-geographic-heading:s Heading:w Heading:p Heading:s">
694 <xslo:if test="position() > 1">
696 <xslo:when test="contains('vxyz', @code)">
697 <xslo:text>--</xslo:text>
700 <xslo:value-of select="substring(' ', 1, 1)"/>
704 <xslo:value-of select="."/>
708 <xslo:value-of select="normalize-space($raw_heading)"/>
710 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
711 <xslo:variable name="raw_heading">
712 <xslo:for-each select="marc:subfield">
713 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
714 <xslo:if test="position() > 1">
716 <xslo:when test="contains('', @code)">
717 <xslo:text>--</xslo:text>
720 <xslo:value-of select="substring(' ', 1, 1)"/>
724 <xslo:value-of select="."/>
728 <xslo:value-of select="normalize-space($raw_heading)"/>
731 <xslo:template mode="index_heading" match="marc:datafield[@tag='451']">
732 <z:index name="Name-geographic-see-from:w Name-geographic-see-from:p Name-geographic-see-from:s See-from:w See-from:p See-from:s">
733 <xslo:variable name="raw_heading">
734 <xslo:for-each select="marc:subfield">
735 <xslo:if test="contains('avxyz', @code)" name="Name-geographic-see-from:w Name-geographic-see-from:p Name-geographic-see-from:s See-from:w See-from:p See-from:s">
736 <xslo:if test="position() > 1">
738 <xslo:when test="contains('vxyz', @code)">
739 <xslo:text>--</xslo:text>
742 <xslo:value-of select="substring(' ', 1, 1)"/>
746 <xslo:value-of select="."/>
750 <xslo:value-of select="normalize-space($raw_heading)"/>
753 <xslo:template mode="index_heading" match="marc:datafield[@tag='551']">
754 <z:index name="Name-geographic-see-also-from:w Name-geographic-see-also-from:p Name-geographic-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
755 <xslo:variable name="raw_heading">
756 <xslo:for-each select="marc:subfield">
757 <xslo:if test="contains('avxyz', @code)" name="Name-geographic-see-also-from:w Name-geographic-see-also-from:p Name-geographic-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
758 <xslo:if test="position() > 1">
760 <xslo:when test="contains('vxyz', @code)">
761 <xslo:text>--</xslo:text>
764 <xslo:value-of select="substring(' ', 1, 1)"/>
768 <xslo:value-of select="."/>
772 <xslo:value-of select="normalize-space($raw_heading)"/>
775 <xslo:template mode="index_heading" match="marc:datafield[@tag='155']">
776 <z:index name="Term-genre-form-heading:w Term-genre-form-heading:p Term-genre-form-heading:s Heading:w Heading:p Heading:s">
777 <xslo:variable name="raw_heading">
778 <xslo:for-each select="marc:subfield">
779 <xslo:if test="contains('avxyz', @code)" name="Term-genre-form-heading:w Term-genre-form-heading:p Term-genre-form-heading:s Heading:w Heading:p Heading:s">
780 <xslo:if test="position() > 1">
782 <xslo:when test="contains('vxyz', @code)">
783 <xslo:text>--</xslo:text>
786 <xslo:value-of select="substring(' ', 1, 1)"/>
790 <xslo:value-of select="."/>
794 <xslo:value-of select="normalize-space($raw_heading)"/>
796 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
797 <xslo:variable name="raw_heading">
798 <xslo:for-each select="marc:subfield">
799 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
800 <xslo:if test="position() > 1">
802 <xslo:when test="contains('', @code)">
803 <xslo:text>--</xslo:text>
806 <xslo:value-of select="substring(' ', 1, 1)"/>
810 <xslo:value-of select="."/>
814 <xslo:value-of select="normalize-space($raw_heading)"/>
817 <xslo:template mode="index_heading" match="marc:datafield[@tag='455']">
818 <z:index name="Term-genre-form-see-from:w Term-genre-form-see-from:p Term-genre-form-see-from:s See-from:w See-from:p See-from:s">
819 <xslo:variable name="raw_heading">
820 <xslo:for-each select="marc:subfield">
821 <xslo:if test="contains('avxyz', @code)" name="Term-genre-form-see-from:w Term-genre-form-see-from:p Term-genre-form-see-from:s See-from:w See-from:p See-from:s">
822 <xslo:if test="position() > 1">
824 <xslo:when test="contains('vxyz', @code)">
825 <xslo:text>--</xslo:text>
828 <xslo:value-of select="substring(' ', 1, 1)"/>
832 <xslo:value-of select="."/>
836 <xslo:value-of select="normalize-space($raw_heading)"/>
839 <xslo:template mode="index_heading" match="marc:datafield[@tag='555']">
840 <z:index name="Term-genre-form-see-also-from:w Term-genre-form-see-also-from:p Term-genre-form-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
841 <xslo:variable name="raw_heading">
842 <xslo:for-each select="marc:subfield">
843 <xslo:if test="contains('avxyz', @code)" name="Term-genre-form-see-also-from:w Term-genre-form-see-also-from:p Term-genre-form-see-also-from:s See-also-from:w See-also-from:p See-also-from:s">
844 <xslo:if test="position() > 1">
846 <xslo:when test="contains('vxyz', @code)">
847 <xslo:text>--</xslo:text>
850 <xslo:value-of select="substring(' ', 1, 1)"/>
854 <xslo:value-of select="."/>
858 <xslo:value-of select="normalize-space($raw_heading)"/>
861 <xslo:template mode="index_heading" match="marc:datafield[@tag='180']">
862 <z:index name="General-subdivision:w General-subdivision:p General-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
863 <xslo:variable name="raw_heading">
864 <xslo:for-each select="marc:subfield">
865 <xslo:if test="contains('vxyz', @code)" name="General-subdivision:w General-subdivision:p General-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
866 <xslo:if test="position() > 1">
868 <xslo:when test="contains('vxyz', @code)">
869 <xslo:text>--</xslo:text>
872 <xslo:value-of select="substring(' ', 1, 1)"/>
876 <xslo:value-of select="."/>
880 <xslo:value-of select="normalize-space($raw_heading)"/>
883 <xslo:template mode="index_heading" match="marc:datafield[@tag='480']">
884 <z:index name="General-subdivision-see-from:w General-subdivision-see-from:p General-subdivision-see-from:s Subdivision-see-from:w Subdivision-see-from:p Subdivision-see-from:s">
885 <xslo:variable name="raw_heading">
886 <xslo:for-each select="marc:subfield">
887 <xslo:if test="contains('vxyz', @code)" name="General-subdivision-see-from:w General-subdivision-see-from:p General-subdivision-see-from:s Subdivision-see-from:w Subdivision-see-from:p Subdivision-see-from:s">
888 <xslo:if test="position() > 1">
890 <xslo:when test="contains('vxyz', @code)">
891 <xslo:text>--</xslo:text>
894 <xslo:value-of select="substring(' ', 1, 1)"/>
898 <xslo:value-of select="."/>
902 <xslo:value-of select="normalize-space($raw_heading)"/>
905 <xslo:template mode="index_heading" match="marc:datafield[@tag='580']">
906 <z:index name="General-subdivision-see-also-from:w General-subdivision-see-also-from:p General-subdivision-see-also-from:s Subdivision-see-also-from:w Subdivision-see-also-from:p Subdivision-see-also-from:s">
907 <xslo:variable name="raw_heading">
908 <xslo:for-each select="marc:subfield">
909 <xslo:if test="contains('vxyz', @code)" name="General-subdivision-see-also-from:w General-subdivision-see-also-from:p General-subdivision-see-also-from:s Subdivision-see-also-from:w Subdivision-see-also-from:p Subdivision-see-also-from:s">
910 <xslo:if test="position() > 1">
912 <xslo:when test="contains('vxyz', @code)">
913 <xslo:text>--</xslo:text>
916 <xslo:value-of select="substring(' ', 1, 1)"/>
920 <xslo:value-of select="."/>
924 <xslo:value-of select="normalize-space($raw_heading)"/>
927 <xslo:template mode="index_heading" match="marc:datafield[@tag='181']">
928 <z:index name="Geographic-subdivision:w Geographic-subdivision:p Geographic-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
929 <xslo:variable name="raw_heading">
930 <xslo:for-each select="marc:subfield">
931 <xslo:if test="contains('vxyz', @code)" name="Geographic-subdivision:w Geographic-subdivision:p Geographic-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
932 <xslo:if test="position() > 1">
934 <xslo:when test="contains('vxyz', @code)">
935 <xslo:text>--</xslo:text>
938 <xslo:value-of select="substring(' ', 1, 1)"/>
942 <xslo:value-of select="."/>
946 <xslo:value-of select="normalize-space($raw_heading)"/>
949 <xslo:template mode="index_heading" match="marc:datafield[@tag='481']">
950 <z:index name="Geographic-subdivision-see-from:w Geographic-subdivision-see-from:p Geographic-subdivision-see-from:s Subdivision-see-from:w Subdivision-see-from:p Subdivision-see-from:s">
951 <xslo:variable name="raw_heading">
952 <xslo:for-each select="marc:subfield">
953 <xslo:if test="contains('vxyz', @code)" name="Geographic-subdivision-see-from:w Geographic-subdivision-see-from:p Geographic-subdivision-see-from:s Subdivision-see-from:w Subdivision-see-from:p Subdivision-see-from:s">
954 <xslo:if test="position() > 1">
956 <xslo:when test="contains('vxyz', @code)">
957 <xslo:text>--</xslo:text>
960 <xslo:value-of select="substring(' ', 1, 1)"/>
964 <xslo:value-of select="."/>
968 <xslo:value-of select="normalize-space($raw_heading)"/>
971 <xslo:template mode="index_heading" match="marc:datafield[@tag='581']">
972 <z:index name="Geographic-subdivision-see-also-from:w Geographic-subdivision-see-also-from:p Geographic-subdivision-see-also-from:s Subdivision-see-also-from:w Subdivision-see-also-from:p Subdivision-see-also-from:s">
973 <xslo:variable name="raw_heading">
974 <xslo:for-each select="marc:subfield">
975 <xslo:if test="contains('vxyz', @code)" name="Geographic-subdivision-see-also-from:w Geographic-subdivision-see-also-from:p Geographic-subdivision-see-also-from:s Subdivision-see-also-from:w Subdivision-see-also-from:p Subdivision-see-also-from:s">
976 <xslo:if test="position() > 1">
978 <xslo:when test="contains('vxyz', @code)">
979 <xslo:text>--</xslo:text>
982 <xslo:value-of select="substring(' ', 1, 1)"/>
986 <xslo:value-of select="."/>
990 <xslo:value-of select="normalize-space($raw_heading)"/>
993 <xslo:template mode="index_heading" match="marc:datafield[@tag='182']">
994 <z:index name="Chronological-subdivision:w Chronological-subdivision:p Chronological-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
995 <xslo:variable name="raw_heading">
996 <xslo:for-each select="marc:subfield">
997 <xslo:if test="contains('vxyz', @code)" name="Chronological-subdivision:w Chronological-subdivision:p Chronological-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
998 <xslo:if test="position() > 1">
1000 <xslo:when test="contains('vxyz', @code)">
1001 <xslo:text>--</xslo:text>
1004 <xslo:value-of select="substring(' ', 1, 1)"/>
1008 <xslo:value-of select="."/>
1012 <xslo:value-of select="normalize-space($raw_heading)"/>
1015 <xslo:template mode="index_heading" match="marc:datafield[@tag='482']">
1016 <z:index name="Chronological-subdivision-see-from:w Chronological-subdivision-see-from:p Chronological-subdivision-see-from:s Subdivision-see-from:w Subdivision-see-from:p Subdivision-see-from:s">
1017 <xslo:variable name="raw_heading">
1018 <xslo:for-each select="marc:subfield">
1019 <xslo:if test="contains('vxyz', @code)" name="Chronological-subdivision-see-from:w Chronological-subdivision-see-from:p Chronological-subdivision-see-from:s Subdivision-see-from:w Subdivision-see-from:p Subdivision-see-from:s">
1020 <xslo:if test="position() > 1">
1022 <xslo:when test="contains('vxyz', @code)">
1023 <xslo:text>--</xslo:text>
1026 <xslo:value-of select="substring(' ', 1, 1)"/>
1030 <xslo:value-of select="."/>
1034 <xslo:value-of select="normalize-space($raw_heading)"/>
1037 <xslo:template mode="index_heading" match="marc:datafield[@tag='582']">
1038 <z:index name="Chronological-subdivision-see-also-from:w Chronological-subdivision-see-also-from:p Chronological-subdivision-see-also-from:s Subdivision-see-also-from:w Subdivision-see-also-from:p Subdivision-see-also-from:s">
1039 <xslo:variable name="raw_heading">
1040 <xslo:for-each select="marc:subfield">
1041 <xslo:if test="contains('vxyz', @code)" name="Chronological-subdivision-see-also-from:w Chronological-subdivision-see-also-from:p Chronological-subdivision-see-also-from:s Subdivision-see-also-from:w Subdivision-see-also-from:p Subdivision-see-also-from:s">
1042 <xslo:if test="position() > 1">
1044 <xslo:when test="contains('vxyz', @code)">
1045 <xslo:text>--</xslo:text>
1048 <xslo:value-of select="substring(' ', 1, 1)"/>
1052 <xslo:value-of select="."/>
1056 <xslo:value-of select="normalize-space($raw_heading)"/>
1059 <xslo:template mode="index_heading" match="marc:datafield[@tag='185']">
1060 <z:index name="Form-subdivision:w Form-subdivision:p Form-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
1061 <xslo:variable name="raw_heading">
1062 <xslo:for-each select="marc:subfield">
1063 <xslo:if test="contains('vxyz', @code)" name="Form-subdivision:w Form-subdivision:p Form-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
1064 <xslo:if test="position() > 1">
1066 <xslo:when test="contains('vxyz', @code)">
1067 <xslo:text>--</xslo:text>
1070 <xslo:value-of select="substring(' ', 1, 1)"/>
1074 <xslo:value-of select="."/>
1078 <xslo:value-of select="normalize-space($raw_heading)"/>
1081 <xslo:template mode="index_heading" match="marc:datafield[@tag='485']">
1082 <z:index name="Form-subdivision-see-from:w Form-subdivision-see-from:p Form-subdivision-see-from:s Subdivision-see-from:w Subdivision-see-from:p Subdivision-see-from:s">
1083 <xslo:variable name="raw_heading">
1084 <xslo:for-each select="marc:subfield">
1085 <xslo:if test="contains('vxyz', @code)" name="Form-subdivision-see-from:w Form-subdivision-see-from:p Form-subdivision-see-from:s Subdivision-see-from:w Subdivision-see-from:p Subdivision-see-from:s">
1086 <xslo:if test="position() > 1">
1088 <xslo:when test="contains('vxyz', @code)">
1089 <xslo:text>--</xslo:text>
1092 <xslo:value-of select="substring(' ', 1, 1)"/>
1096 <xslo:value-of select="."/>
1100 <xslo:value-of select="normalize-space($raw_heading)"/>
1103 <xslo:template mode="index_heading" match="marc:datafield[@tag='585']">
1104 <z:index name="Form-subdivision-see-also-from:w Form-subdivision-see-also-from:p Form-subdivision-see-also-from:s Subdivision-see-also-from:w Subdivision-see-also-from:p Subdivision-see-also-from:s">
1105 <xslo:variable name="raw_heading">
1106 <xslo:for-each select="marc:subfield">
1107 <xslo:if test="contains('vxyz', @code)" name="Form-subdivision-see-also-from:w Form-subdivision-see-also-from:p Form-subdivision-see-also-from:s Subdivision-see-also-from:w Subdivision-see-also-from:p Subdivision-see-also-from:s">
1108 <xslo:if test="position() > 1">
1110 <xslo:when test="contains('vxyz', @code)">
1111 <xslo:text>--</xslo:text>
1114 <xslo:value-of select="substring(' ', 1, 1)"/>
1118 <xslo:value-of select="."/>
1122 <xslo:value-of select="normalize-space($raw_heading)"/>
1125 <xslo:template mode="index_heading_conditional" match="marc:datafield[@tag='450']">
1126 <xslo:if test="substring(marc:subfield[@code='w']/text(), 2, 1)">
1127 <z:index name="Previous-heading-see-from:p">
1128 <xslo:variable name="raw_heading">
1129 <xslo:for-each select="marc:subfield">
1130 <xslo:if test="contains('abvxyz', @code)" name="Previous-heading-see-from:p">
1131 <xslo:if test="position() > 1">
1133 <xslo:when test="contains('vxyz', @code)">
1134 <xslo:text>--</xslo:text>
1137 <xslo:value-of select="substring(' ', 1, 1)"/>
1141 <xslo:value-of select="."/>
1145 <xslo:value-of select="normalize-space($raw_heading)"/>
1149 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='100']">
1150 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1151 <xslo:variable name="raw_heading">
1152 <xslo:for-each select="marc:subfield">
1153 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1154 <xslo:if test="position() > 1">
1156 <xslo:when test="contains('vxyz', @code)">
1158 <xslo:when test="@code = $general_subdivision_subfield">
1159 <xslo:text> generalsubdiv </xslo:text>
1161 <xslo:when test="@code = $form_subdivision_subfield">
1162 <xslo:text> formsubdiv </xslo:text>
1164 <xslo:when test="@code = $chronological_subdivision_subfield">
1165 <xslo:text> chronologicalsubdiv </xslo:text>
1167 <xslo:when test="@code = $geographic_subdivision_subfield">
1168 <xslo:text> geographicsubdiv </xslo:text>
1173 <xslo:value-of select="substring(' ', 1, 1)"/>
1177 <xslo:call-template name="chopPunctuation">
1178 <xslo:with-param name="chopString">
1179 <xslo:value-of select="."/>
1181 </xslo:call-template>
1185 <xslo:value-of select="normalize-space($raw_heading)"/>
1188 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='400']">
1189 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1190 <xslo:variable name="raw_heading">
1191 <xslo:for-each select="marc:subfield">
1192 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1193 <xslo:if test="position() > 1">
1195 <xslo:when test="contains('vxyz', @code)">
1197 <xslo:when test="@code = $general_subdivision_subfield">
1198 <xslo:text> generalsubdiv </xslo:text>
1200 <xslo:when test="@code = $form_subdivision_subfield">
1201 <xslo:text> formsubdiv </xslo:text>
1203 <xslo:when test="@code = $chronological_subdivision_subfield">
1204 <xslo:text> chronologicalsubdiv </xslo:text>
1206 <xslo:when test="@code = $geographic_subdivision_subfield">
1207 <xslo:text> geographicsubdiv </xslo:text>
1212 <xslo:value-of select="substring(' ', 1, 1)"/>
1216 <xslo:call-template name="chopPunctuation">
1217 <xslo:with-param name="chopString">
1218 <xslo:value-of select="."/>
1220 </xslo:call-template>
1224 <xslo:value-of select="normalize-space($raw_heading)"/>
1227 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='500']">
1228 <z:index name="Match:w Match:p">
1229 <xslo:variable name="raw_heading">
1230 <xslo:for-each select="marc:subfield">
1231 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Match:w Match:p">
1232 <xslo:if test="position() > 1">
1234 <xslo:when test="contains('vxyz', @code)">
1236 <xslo:when test="@code = $general_subdivision_subfield">
1237 <xslo:text> generalsubdiv </xslo:text>
1239 <xslo:when test="@code = $form_subdivision_subfield">
1240 <xslo:text> formsubdiv </xslo:text>
1242 <xslo:when test="@code = $chronological_subdivision_subfield">
1243 <xslo:text> chronologicalsubdiv </xslo:text>
1245 <xslo:when test="@code = $geographic_subdivision_subfield">
1246 <xslo:text> geographicsubdiv </xslo:text>
1251 <xslo:value-of select="substring(' ', 1, 1)"/>
1255 <xslo:call-template name="chopPunctuation">
1256 <xslo:with-param name="chopString">
1257 <xslo:value-of select="."/>
1259 </xslo:call-template>
1263 <xslo:value-of select="normalize-space($raw_heading)"/>
1266 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='110']">
1267 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1268 <xslo:variable name="raw_heading">
1269 <xslo:for-each select="marc:subfield">
1270 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1271 <xslo:if test="position() > 1">
1273 <xslo:when test="contains('vxyz', @code)">
1275 <xslo:when test="@code = $general_subdivision_subfield">
1276 <xslo:text> generalsubdiv </xslo:text>
1278 <xslo:when test="@code = $form_subdivision_subfield">
1279 <xslo:text> formsubdiv </xslo:text>
1281 <xslo:when test="@code = $chronological_subdivision_subfield">
1282 <xslo:text> chronologicalsubdiv </xslo:text>
1284 <xslo:when test="@code = $geographic_subdivision_subfield">
1285 <xslo:text> geographicsubdiv </xslo:text>
1290 <xslo:value-of select="substring(' ', 1, 1)"/>
1294 <xslo:call-template name="chopPunctuation">
1295 <xslo:with-param name="chopString">
1296 <xslo:value-of select="."/>
1298 </xslo:call-template>
1302 <xslo:value-of select="normalize-space($raw_heading)"/>
1305 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='410']">
1306 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1307 <xslo:variable name="raw_heading">
1308 <xslo:for-each select="marc:subfield">
1309 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1310 <xslo:if test="position() > 1">
1312 <xslo:when test="contains('vxyz', @code)">
1314 <xslo:when test="@code = $general_subdivision_subfield">
1315 <xslo:text> generalsubdiv </xslo:text>
1317 <xslo:when test="@code = $form_subdivision_subfield">
1318 <xslo:text> formsubdiv </xslo:text>
1320 <xslo:when test="@code = $chronological_subdivision_subfield">
1321 <xslo:text> chronologicalsubdiv </xslo:text>
1323 <xslo:when test="@code = $geographic_subdivision_subfield">
1324 <xslo:text> geographicsubdiv </xslo:text>
1329 <xslo:value-of select="substring(' ', 1, 1)"/>
1333 <xslo:call-template name="chopPunctuation">
1334 <xslo:with-param name="chopString">
1335 <xslo:value-of select="."/>
1337 </xslo:call-template>
1341 <xslo:value-of select="normalize-space($raw_heading)"/>
1344 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='510']">
1345 <z:index name="Match:w Match:p">
1346 <xslo:variable name="raw_heading">
1347 <xslo:for-each select="marc:subfield">
1348 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Match:w Match:p">
1349 <xslo:if test="position() > 1">
1351 <xslo:when test="contains('vxyz', @code)">
1353 <xslo:when test="@code = $general_subdivision_subfield">
1354 <xslo:text> generalsubdiv </xslo:text>
1356 <xslo:when test="@code = $form_subdivision_subfield">
1357 <xslo:text> formsubdiv </xslo:text>
1359 <xslo:when test="@code = $chronological_subdivision_subfield">
1360 <xslo:text> chronologicalsubdiv </xslo:text>
1362 <xslo:when test="@code = $geographic_subdivision_subfield">
1363 <xslo:text> geographicsubdiv </xslo:text>
1368 <xslo:value-of select="substring(' ', 1, 1)"/>
1372 <xslo:call-template name="chopPunctuation">
1373 <xslo:with-param name="chopString">
1374 <xslo:value-of select="."/>
1376 </xslo:call-template>
1380 <xslo:value-of select="normalize-space($raw_heading)"/>
1383 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='111']">
1384 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1385 <xslo:variable name="raw_heading">
1386 <xslo:for-each select="marc:subfield">
1387 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1388 <xslo:if test="position() > 1">
1390 <xslo:when test="contains('vxyz', @code)">
1392 <xslo:when test="@code = $general_subdivision_subfield">
1393 <xslo:text> generalsubdiv </xslo:text>
1395 <xslo:when test="@code = $form_subdivision_subfield">
1396 <xslo:text> formsubdiv </xslo:text>
1398 <xslo:when test="@code = $chronological_subdivision_subfield">
1399 <xslo:text> chronologicalsubdiv </xslo:text>
1401 <xslo:when test="@code = $geographic_subdivision_subfield">
1402 <xslo:text> geographicsubdiv </xslo:text>
1407 <xslo:value-of select="substring(' ', 1, 1)"/>
1411 <xslo:call-template name="chopPunctuation">
1412 <xslo:with-param name="chopString">
1413 <xslo:value-of select="."/>
1415 </xslo:call-template>
1419 <xslo:value-of select="normalize-space($raw_heading)"/>
1422 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='411']">
1423 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1424 <xslo:variable name="raw_heading">
1425 <xslo:for-each select="marc:subfield">
1426 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1427 <xslo:if test="position() > 1">
1429 <xslo:when test="contains('vxyz', @code)">
1431 <xslo:when test="@code = $general_subdivision_subfield">
1432 <xslo:text> generalsubdiv </xslo:text>
1434 <xslo:when test="@code = $form_subdivision_subfield">
1435 <xslo:text> formsubdiv </xslo:text>
1437 <xslo:when test="@code = $chronological_subdivision_subfield">
1438 <xslo:text> chronologicalsubdiv </xslo:text>
1440 <xslo:when test="@code = $geographic_subdivision_subfield">
1441 <xslo:text> geographicsubdiv </xslo:text>
1446 <xslo:value-of select="substring(' ', 1, 1)"/>
1450 <xslo:call-template name="chopPunctuation">
1451 <xslo:with-param name="chopString">
1452 <xslo:value-of select="."/>
1454 </xslo:call-template>
1458 <xslo:value-of select="normalize-space($raw_heading)"/>
1461 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='511']">
1462 <z:index name="Match:w Match:p">
1463 <xslo:variable name="raw_heading">
1464 <xslo:for-each select="marc:subfield">
1465 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Match:w Match:p">
1466 <xslo:if test="position() > 1">
1468 <xslo:when test="contains('vxyz', @code)">
1470 <xslo:when test="@code = $general_subdivision_subfield">
1471 <xslo:text> generalsubdiv </xslo:text>
1473 <xslo:when test="@code = $form_subdivision_subfield">
1474 <xslo:text> formsubdiv </xslo:text>
1476 <xslo:when test="@code = $chronological_subdivision_subfield">
1477 <xslo:text> chronologicalsubdiv </xslo:text>
1479 <xslo:when test="@code = $geographic_subdivision_subfield">
1480 <xslo:text> geographicsubdiv </xslo:text>
1485 <xslo:value-of select="substring(' ', 1, 1)"/>
1489 <xslo:call-template name="chopPunctuation">
1490 <xslo:with-param name="chopString">
1491 <xslo:value-of select="."/>
1493 </xslo:call-template>
1497 <xslo:value-of select="normalize-space($raw_heading)"/>
1500 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='130']">
1501 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1502 <xslo:variable name="raw_heading">
1503 <xslo:for-each select="marc:subfield">
1504 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1505 <xslo:if test="position() > 1">
1507 <xslo:when test="contains('vxyz', @code)">
1509 <xslo:when test="@code = $general_subdivision_subfield">
1510 <xslo:text> generalsubdiv </xslo:text>
1512 <xslo:when test="@code = $form_subdivision_subfield">
1513 <xslo:text> formsubdiv </xslo:text>
1515 <xslo:when test="@code = $chronological_subdivision_subfield">
1516 <xslo:text> chronologicalsubdiv </xslo:text>
1518 <xslo:when test="@code = $geographic_subdivision_subfield">
1519 <xslo:text> geographicsubdiv </xslo:text>
1524 <xslo:value-of select="substring(' ', 1, 1)"/>
1528 <xslo:call-template name="chopPunctuation">
1529 <xslo:with-param name="chopString">
1530 <xslo:value-of select="."/>
1532 </xslo:call-template>
1536 <xslo:value-of select="normalize-space($raw_heading)"/>
1539 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='430']">
1540 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1541 <xslo:variable name="raw_heading">
1542 <xslo:for-each select="marc:subfield">
1543 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1544 <xslo:if test="position() > 1">
1546 <xslo:when test="contains('vxyz', @code)">
1548 <xslo:when test="@code = $general_subdivision_subfield">
1549 <xslo:text> generalsubdiv </xslo:text>
1551 <xslo:when test="@code = $form_subdivision_subfield">
1552 <xslo:text> formsubdiv </xslo:text>
1554 <xslo:when test="@code = $chronological_subdivision_subfield">
1555 <xslo:text> chronologicalsubdiv </xslo:text>
1557 <xslo:when test="@code = $geographic_subdivision_subfield">
1558 <xslo:text> geographicsubdiv </xslo:text>
1563 <xslo:value-of select="substring(' ', 1, 1)"/>
1567 <xslo:call-template name="chopPunctuation">
1568 <xslo:with-param name="chopString">
1569 <xslo:value-of select="."/>
1571 </xslo:call-template>
1575 <xslo:value-of select="normalize-space($raw_heading)"/>
1578 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='530']">
1579 <z:index name="Match:w Match:p">
1580 <xslo:variable name="raw_heading">
1581 <xslo:for-each select="marc:subfield">
1582 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Match:w Match:p">
1583 <xslo:if test="position() > 1">
1585 <xslo:when test="contains('vxyz', @code)">
1587 <xslo:when test="@code = $general_subdivision_subfield">
1588 <xslo:text> generalsubdiv </xslo:text>
1590 <xslo:when test="@code = $form_subdivision_subfield">
1591 <xslo:text> formsubdiv </xslo:text>
1593 <xslo:when test="@code = $chronological_subdivision_subfield">
1594 <xslo:text> chronologicalsubdiv </xslo:text>
1596 <xslo:when test="@code = $geographic_subdivision_subfield">
1597 <xslo:text> geographicsubdiv </xslo:text>
1602 <xslo:value-of select="substring(' ', 1, 1)"/>
1606 <xslo:call-template name="chopPunctuation">
1607 <xslo:with-param name="chopString">
1608 <xslo:value-of select="."/>
1610 </xslo:call-template>
1614 <xslo:value-of select="normalize-space($raw_heading)"/>
1617 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='148']">
1618 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1619 <xslo:variable name="raw_heading">
1620 <xslo:for-each select="marc:subfield">
1621 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1622 <xslo:if test="position() > 1">
1624 <xslo:when test="contains('vxyz', @code)">
1626 <xslo:when test="@code = $general_subdivision_subfield">
1627 <xslo:text> generalsubdiv </xslo:text>
1629 <xslo:when test="@code = $form_subdivision_subfield">
1630 <xslo:text> formsubdiv </xslo:text>
1632 <xslo:when test="@code = $chronological_subdivision_subfield">
1633 <xslo:text> chronologicalsubdiv </xslo:text>
1635 <xslo:when test="@code = $geographic_subdivision_subfield">
1636 <xslo:text> geographicsubdiv </xslo:text>
1641 <xslo:value-of select="substring(' ', 1, 1)"/>
1645 <xslo:call-template name="chopPunctuation">
1646 <xslo:with-param name="chopString">
1647 <xslo:value-of select="."/>
1649 </xslo:call-template>
1653 <xslo:value-of select="normalize-space($raw_heading)"/>
1656 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='448']">
1657 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1658 <xslo:variable name="raw_heading">
1659 <xslo:for-each select="marc:subfield">
1660 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1661 <xslo:if test="position() > 1">
1663 <xslo:when test="contains('vxyz', @code)">
1665 <xslo:when test="@code = $general_subdivision_subfield">
1666 <xslo:text> generalsubdiv </xslo:text>
1668 <xslo:when test="@code = $form_subdivision_subfield">
1669 <xslo:text> formsubdiv </xslo:text>
1671 <xslo:when test="@code = $chronological_subdivision_subfield">
1672 <xslo:text> chronologicalsubdiv </xslo:text>
1674 <xslo:when test="@code = $geographic_subdivision_subfield">
1675 <xslo:text> geographicsubdiv </xslo:text>
1680 <xslo:value-of select="substring(' ', 1, 1)"/>
1684 <xslo:call-template name="chopPunctuation">
1685 <xslo:with-param name="chopString">
1686 <xslo:value-of select="."/>
1688 </xslo:call-template>
1692 <xslo:value-of select="normalize-space($raw_heading)"/>
1695 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='548']">
1696 <z:index name="Match:w Match:p">
1697 <xslo:variable name="raw_heading">
1698 <xslo:for-each select="marc:subfield">
1699 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p">
1700 <xslo:if test="position() > 1">
1702 <xslo:when test="contains('vxyz', @code)">
1704 <xslo:when test="@code = $general_subdivision_subfield">
1705 <xslo:text> generalsubdiv </xslo:text>
1707 <xslo:when test="@code = $form_subdivision_subfield">
1708 <xslo:text> formsubdiv </xslo:text>
1710 <xslo:when test="@code = $chronological_subdivision_subfield">
1711 <xslo:text> chronologicalsubdiv </xslo:text>
1713 <xslo:when test="@code = $geographic_subdivision_subfield">
1714 <xslo:text> geographicsubdiv </xslo:text>
1719 <xslo:value-of select="substring(' ', 1, 1)"/>
1723 <xslo:call-template name="chopPunctuation">
1724 <xslo:with-param name="chopString">
1725 <xslo:value-of select="."/>
1727 </xslo:call-template>
1731 <xslo:value-of select="normalize-space($raw_heading)"/>
1734 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='150']">
1735 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1736 <xslo:variable name="raw_heading">
1737 <xslo:for-each select="marc:subfield">
1738 <xslo:if test="contains('abvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1739 <xslo:if test="position() > 1">
1741 <xslo:when test="contains('vxyz', @code)">
1743 <xslo:when test="@code = $general_subdivision_subfield">
1744 <xslo:text> generalsubdiv </xslo:text>
1746 <xslo:when test="@code = $form_subdivision_subfield">
1747 <xslo:text> formsubdiv </xslo:text>
1749 <xslo:when test="@code = $chronological_subdivision_subfield">
1750 <xslo:text> chronologicalsubdiv </xslo:text>
1752 <xslo:when test="@code = $geographic_subdivision_subfield">
1753 <xslo:text> geographicsubdiv </xslo:text>
1758 <xslo:value-of select="substring(' ', 1, 1)"/>
1762 <xslo:call-template name="chopPunctuation">
1763 <xslo:with-param name="chopString">
1764 <xslo:value-of select="."/>
1766 </xslo:call-template>
1770 <xslo:value-of select="normalize-space($raw_heading)"/>
1773 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='450']">
1774 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1775 <xslo:variable name="raw_heading">
1776 <xslo:for-each select="marc:subfield">
1777 <xslo:if test="contains('abvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1778 <xslo:if test="position() > 1">
1780 <xslo:when test="contains('vxyz', @code)">
1782 <xslo:when test="@code = $general_subdivision_subfield">
1783 <xslo:text> generalsubdiv </xslo:text>
1785 <xslo:when test="@code = $form_subdivision_subfield">
1786 <xslo:text> formsubdiv </xslo:text>
1788 <xslo:when test="@code = $chronological_subdivision_subfield">
1789 <xslo:text> chronologicalsubdiv </xslo:text>
1791 <xslo:when test="@code = $geographic_subdivision_subfield">
1792 <xslo:text> geographicsubdiv </xslo:text>
1797 <xslo:value-of select="substring(' ', 1, 1)"/>
1801 <xslo:call-template name="chopPunctuation">
1802 <xslo:with-param name="chopString">
1803 <xslo:value-of select="."/>
1805 </xslo:call-template>
1809 <xslo:value-of select="normalize-space($raw_heading)"/>
1812 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='550']">
1813 <z:index name="Match:w Match:p">
1814 <xslo:variable name="raw_heading">
1815 <xslo:for-each select="marc:subfield">
1816 <xslo:if test="contains('abvxyz', @code)" name="Match:w Match:p">
1817 <xslo:if test="position() > 1">
1819 <xslo:when test="contains('vxyz', @code)">
1821 <xslo:when test="@code = $general_subdivision_subfield">
1822 <xslo:text> generalsubdiv </xslo:text>
1824 <xslo:when test="@code = $form_subdivision_subfield">
1825 <xslo:text> formsubdiv </xslo:text>
1827 <xslo:when test="@code = $chronological_subdivision_subfield">
1828 <xslo:text> chronologicalsubdiv </xslo:text>
1830 <xslo:when test="@code = $geographic_subdivision_subfield">
1831 <xslo:text> geographicsubdiv </xslo:text>
1836 <xslo:value-of select="substring(' ', 1, 1)"/>
1840 <xslo:call-template name="chopPunctuation">
1841 <xslo:with-param name="chopString">
1842 <xslo:value-of select="."/>
1844 </xslo:call-template>
1848 <xslo:value-of select="normalize-space($raw_heading)"/>
1851 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='151']">
1852 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1853 <xslo:variable name="raw_heading">
1854 <xslo:for-each select="marc:subfield">
1855 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1856 <xslo:if test="position() > 1">
1858 <xslo:when test="contains('vxyz', @code)">
1860 <xslo:when test="@code = $general_subdivision_subfield">
1861 <xslo:text> generalsubdiv </xslo:text>
1863 <xslo:when test="@code = $form_subdivision_subfield">
1864 <xslo:text> formsubdiv </xslo:text>
1866 <xslo:when test="@code = $chronological_subdivision_subfield">
1867 <xslo:text> chronologicalsubdiv </xslo:text>
1869 <xslo:when test="@code = $geographic_subdivision_subfield">
1870 <xslo:text> geographicsubdiv </xslo:text>
1875 <xslo:value-of select="substring(' ', 1, 1)"/>
1879 <xslo:call-template name="chopPunctuation">
1880 <xslo:with-param name="chopString">
1881 <xslo:value-of select="."/>
1883 </xslo:call-template>
1887 <xslo:value-of select="normalize-space($raw_heading)"/>
1890 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='451']">
1891 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1892 <xslo:variable name="raw_heading">
1893 <xslo:for-each select="marc:subfield">
1894 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1895 <xslo:if test="position() > 1">
1897 <xslo:when test="contains('vxyz', @code)">
1899 <xslo:when test="@code = $general_subdivision_subfield">
1900 <xslo:text> generalsubdiv </xslo:text>
1902 <xslo:when test="@code = $form_subdivision_subfield">
1903 <xslo:text> formsubdiv </xslo:text>
1905 <xslo:when test="@code = $chronological_subdivision_subfield">
1906 <xslo:text> chronologicalsubdiv </xslo:text>
1908 <xslo:when test="@code = $geographic_subdivision_subfield">
1909 <xslo:text> geographicsubdiv </xslo:text>
1914 <xslo:value-of select="substring(' ', 1, 1)"/>
1918 <xslo:call-template name="chopPunctuation">
1919 <xslo:with-param name="chopString">
1920 <xslo:value-of select="."/>
1922 </xslo:call-template>
1926 <xslo:value-of select="normalize-space($raw_heading)"/>
1929 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='551']">
1930 <z:index name="Match:w Match:p">
1931 <xslo:variable name="raw_heading">
1932 <xslo:for-each select="marc:subfield">
1933 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p">
1934 <xslo:if test="position() > 1">
1936 <xslo:when test="contains('vxyz', @code)">
1938 <xslo:when test="@code = $general_subdivision_subfield">
1939 <xslo:text> generalsubdiv </xslo:text>
1941 <xslo:when test="@code = $form_subdivision_subfield">
1942 <xslo:text> formsubdiv </xslo:text>
1944 <xslo:when test="@code = $chronological_subdivision_subfield">
1945 <xslo:text> chronologicalsubdiv </xslo:text>
1947 <xslo:when test="@code = $geographic_subdivision_subfield">
1948 <xslo:text> geographicsubdiv </xslo:text>
1953 <xslo:value-of select="substring(' ', 1, 1)"/>
1957 <xslo:call-template name="chopPunctuation">
1958 <xslo:with-param name="chopString">
1959 <xslo:value-of select="."/>
1961 </xslo:call-template>
1965 <xslo:value-of select="normalize-space($raw_heading)"/>
1968 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='155']">
1969 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1970 <xslo:variable name="raw_heading">
1971 <xslo:for-each select="marc:subfield">
1972 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1973 <xslo:if test="position() > 1">
1975 <xslo:when test="contains('vxyz', @code)">
1977 <xslo:when test="@code = $general_subdivision_subfield">
1978 <xslo:text> generalsubdiv </xslo:text>
1980 <xslo:when test="@code = $form_subdivision_subfield">
1981 <xslo:text> formsubdiv </xslo:text>
1983 <xslo:when test="@code = $chronological_subdivision_subfield">
1984 <xslo:text> chronologicalsubdiv </xslo:text>
1986 <xslo:when test="@code = $geographic_subdivision_subfield">
1987 <xslo:text> geographicsubdiv </xslo:text>
1992 <xslo:value-of select="substring(' ', 1, 1)"/>
1996 <xslo:call-template name="chopPunctuation">
1997 <xslo:with-param name="chopString">
1998 <xslo:value-of select="."/>
2000 </xslo:call-template>
2004 <xslo:value-of select="normalize-space($raw_heading)"/>
2007 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='455']">
2008 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
2009 <xslo:variable name="raw_heading">
2010 <xslo:for-each select="marc:subfield">
2011 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
2012 <xslo:if test="position() > 1">
2014 <xslo:when test="contains('vxyz', @code)">
2016 <xslo:when test="@code = $general_subdivision_subfield">
2017 <xslo:text> generalsubdiv </xslo:text>
2019 <xslo:when test="@code = $form_subdivision_subfield">
2020 <xslo:text> formsubdiv </xslo:text>
2022 <xslo:when test="@code = $chronological_subdivision_subfield">
2023 <xslo:text> chronologicalsubdiv </xslo:text>
2025 <xslo:when test="@code = $geographic_subdivision_subfield">
2026 <xslo:text> geographicsubdiv </xslo:text>
2031 <xslo:value-of select="substring(' ', 1, 1)"/>
2035 <xslo:call-template name="chopPunctuation">
2036 <xslo:with-param name="chopString">
2037 <xslo:value-of select="."/>
2039 </xslo:call-template>
2043 <xslo:value-of select="normalize-space($raw_heading)"/>
2046 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='555']">
2047 <z:index name="Match:w Match:p">
2048 <xslo:variable name="raw_heading">
2049 <xslo:for-each select="marc:subfield">
2050 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p">
2051 <xslo:if test="position() > 1">
2053 <xslo:when test="contains('vxyz', @code)">
2055 <xslo:when test="@code = $general_subdivision_subfield">
2056 <xslo:text> generalsubdiv </xslo:text>
2058 <xslo:when test="@code = $form_subdivision_subfield">
2059 <xslo:text> formsubdiv </xslo:text>
2061 <xslo:when test="@code = $chronological_subdivision_subfield">
2062 <xslo:text> chronologicalsubdiv </xslo:text>
2064 <xslo:when test="@code = $geographic_subdivision_subfield">
2065 <xslo:text> geographicsubdiv </xslo:text>
2070 <xslo:value-of select="substring(' ', 1, 1)"/>
2074 <xslo:call-template name="chopPunctuation">
2075 <xslo:with-param name="chopString">
2076 <xslo:value-of select="."/>
2078 </xslo:call-template>
2082 <xslo:value-of select="normalize-space($raw_heading)"/>
2085 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='180']">
2086 <z:index name="Match-subdivision:p Match-subdivision:s">
2087 <xslo:variable name="raw_heading">
2088 <xslo:for-each select="marc:subfield">
2089 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
2090 <xslo:if test="position() > 1">
2092 <xslo:when test="contains('vxyz', @code)">
2094 <xslo:when test="@code = $general_subdivision_subfield">
2095 <xslo:text> generalsubdiv </xslo:text>
2097 <xslo:when test="@code = $form_subdivision_subfield">
2098 <xslo:text> formsubdiv </xslo:text>
2100 <xslo:when test="@code = $chronological_subdivision_subfield">
2101 <xslo:text> chronologicalsubdiv </xslo:text>
2103 <xslo:when test="@code = $geographic_subdivision_subfield">
2104 <xslo:text> geographicsubdiv </xslo:text>
2109 <xslo:value-of select="substring(' ', 1, 1)"/>
2113 <xslo:call-template name="chopPunctuation">
2114 <xslo:with-param name="chopString">
2115 <xslo:value-of select="."/>
2117 </xslo:call-template>
2121 <xslo:value-of select="normalize-space($raw_heading)"/>
2124 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='480']">
2125 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2126 <xslo:variable name="raw_heading">
2127 <xslo:for-each select="marc:subfield">
2128 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2129 <xslo:if test="position() > 1">
2131 <xslo:when test="contains('vxyz', @code)">
2133 <xslo:when test="@code = $general_subdivision_subfield">
2134 <xslo:text> generalsubdiv </xslo:text>
2136 <xslo:when test="@code = $form_subdivision_subfield">
2137 <xslo:text> formsubdiv </xslo:text>
2139 <xslo:when test="@code = $chronological_subdivision_subfield">
2140 <xslo:text> chronologicalsubdiv </xslo:text>
2142 <xslo:when test="@code = $geographic_subdivision_subfield">
2143 <xslo:text> geographicsubdiv </xslo:text>
2148 <xslo:value-of select="substring(' ', 1, 1)"/>
2152 <xslo:call-template name="chopPunctuation">
2153 <xslo:with-param name="chopString">
2154 <xslo:value-of select="."/>
2156 </xslo:call-template>
2160 <xslo:value-of select="normalize-space($raw_heading)"/>
2163 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='181']">
2164 <z:index name="Match-subdivision:p Match-subdivision:s">
2165 <xslo:variable name="raw_heading">
2166 <xslo:for-each select="marc:subfield">
2167 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
2168 <xslo:if test="position() > 1">
2170 <xslo:when test="contains('vxyz', @code)">
2172 <xslo:when test="@code = $general_subdivision_subfield">
2173 <xslo:text> generalsubdiv </xslo:text>
2175 <xslo:when test="@code = $form_subdivision_subfield">
2176 <xslo:text> formsubdiv </xslo:text>
2178 <xslo:when test="@code = $chronological_subdivision_subfield">
2179 <xslo:text> chronologicalsubdiv </xslo:text>
2181 <xslo:when test="@code = $geographic_subdivision_subfield">
2182 <xslo:text> geographicsubdiv </xslo:text>
2187 <xslo:value-of select="substring(' ', 1, 1)"/>
2191 <xslo:call-template name="chopPunctuation">
2192 <xslo:with-param name="chopString">
2193 <xslo:value-of select="."/>
2195 </xslo:call-template>
2199 <xslo:value-of select="normalize-space($raw_heading)"/>
2202 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='481']">
2203 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2204 <xslo:variable name="raw_heading">
2205 <xslo:for-each select="marc:subfield">
2206 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2207 <xslo:if test="position() > 1">
2209 <xslo:when test="contains('vxyz', @code)">
2211 <xslo:when test="@code = $general_subdivision_subfield">
2212 <xslo:text> generalsubdiv </xslo:text>
2214 <xslo:when test="@code = $form_subdivision_subfield">
2215 <xslo:text> formsubdiv </xslo:text>
2217 <xslo:when test="@code = $chronological_subdivision_subfield">
2218 <xslo:text> chronologicalsubdiv </xslo:text>
2220 <xslo:when test="@code = $geographic_subdivision_subfield">
2221 <xslo:text> geographicsubdiv </xslo:text>
2226 <xslo:value-of select="substring(' ', 1, 1)"/>
2230 <xslo:call-template name="chopPunctuation">
2231 <xslo:with-param name="chopString">
2232 <xslo:value-of select="."/>
2234 </xslo:call-template>
2238 <xslo:value-of select="normalize-space($raw_heading)"/>
2241 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='182']">
2242 <z:index name="Match-subdivision:p Match-subdivision:s">
2243 <xslo:variable name="raw_heading">
2244 <xslo:for-each select="marc:subfield">
2245 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
2246 <xslo:if test="position() > 1">
2248 <xslo:when test="contains('vxyz', @code)">
2250 <xslo:when test="@code = $general_subdivision_subfield">
2251 <xslo:text> generalsubdiv </xslo:text>
2253 <xslo:when test="@code = $form_subdivision_subfield">
2254 <xslo:text> formsubdiv </xslo:text>
2256 <xslo:when test="@code = $chronological_subdivision_subfield">
2257 <xslo:text> chronologicalsubdiv </xslo:text>
2259 <xslo:when test="@code = $geographic_subdivision_subfield">
2260 <xslo:text> geographicsubdiv </xslo:text>
2265 <xslo:value-of select="substring(' ', 1, 1)"/>
2269 <xslo:call-template name="chopPunctuation">
2270 <xslo:with-param name="chopString">
2271 <xslo:value-of select="."/>
2273 </xslo:call-template>
2277 <xslo:value-of select="normalize-space($raw_heading)"/>
2280 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='482']">
2281 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2282 <xslo:variable name="raw_heading">
2283 <xslo:for-each select="marc:subfield">
2284 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2285 <xslo:if test="position() > 1">
2287 <xslo:when test="contains('vxyz', @code)">
2289 <xslo:when test="@code = $general_subdivision_subfield">
2290 <xslo:text> generalsubdiv </xslo:text>
2292 <xslo:when test="@code = $form_subdivision_subfield">
2293 <xslo:text> formsubdiv </xslo:text>
2295 <xslo:when test="@code = $chronological_subdivision_subfield">
2296 <xslo:text> chronologicalsubdiv </xslo:text>
2298 <xslo:when test="@code = $geographic_subdivision_subfield">
2299 <xslo:text> geographicsubdiv </xslo:text>
2304 <xslo:value-of select="substring(' ', 1, 1)"/>
2308 <xslo:call-template name="chopPunctuation">
2309 <xslo:with-param name="chopString">
2310 <xslo:value-of select="."/>
2312 </xslo:call-template>
2316 <xslo:value-of select="normalize-space($raw_heading)"/>
2319 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='485']">
2320 <z:index name="Match-subdivision:p Match-subdivision:s">
2321 <xslo:variable name="raw_heading">
2322 <xslo:for-each select="marc:subfield">
2323 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
2324 <xslo:if test="position() > 1">
2326 <xslo:when test="contains('vxyz', @code)">
2328 <xslo:when test="@code = $general_subdivision_subfield">
2329 <xslo:text> generalsubdiv </xslo:text>
2331 <xslo:when test="@code = $form_subdivision_subfield">
2332 <xslo:text> formsubdiv </xslo:text>
2334 <xslo:when test="@code = $chronological_subdivision_subfield">
2335 <xslo:text> chronologicalsubdiv </xslo:text>
2337 <xslo:when test="@code = $geographic_subdivision_subfield">
2338 <xslo:text> geographicsubdiv </xslo:text>
2343 <xslo:value-of select="substring(' ', 1, 1)"/>
2347 <xslo:call-template name="chopPunctuation">
2348 <xslo:with-param name="chopString">
2349 <xslo:value-of select="."/>
2351 </xslo:call-template>
2355 <xslo:value-of select="normalize-space($raw_heading)"/>
2358 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='185']">
2359 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2360 <xslo:variable name="raw_heading">
2361 <xslo:for-each select="marc:subfield">
2362 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2363 <xslo:if test="position() > 1">
2365 <xslo:when test="contains('vxyz', @code)">
2367 <xslo:when test="@code = $general_subdivision_subfield">
2368 <xslo:text> generalsubdiv </xslo:text>
2370 <xslo:when test="@code = $form_subdivision_subfield">
2371 <xslo:text> formsubdiv </xslo:text>
2373 <xslo:when test="@code = $chronological_subdivision_subfield">
2374 <xslo:text> chronologicalsubdiv </xslo:text>
2376 <xslo:when test="@code = $geographic_subdivision_subfield">
2377 <xslo:text> geographicsubdiv </xslo:text>
2382 <xslo:value-of select="substring(' ', 1, 1)"/>
2386 <xslo:call-template name="chopPunctuation">
2387 <xslo:with-param name="chopString">
2388 <xslo:value-of select="."/>
2390 </xslo:call-template>
2394 <xslo:value-of select="normalize-space($raw_heading)"/>
2397 <xslo:variable name="form_subdivision_subfield">v</xslo:variable>
2398 <xslo:variable name="general_subdivision_subfield">x</xslo:variable>
2399 <xslo:variable name="chronological_subdivision_subfield">y</xslo:variable>
2400 <xslo:variable name="geographic_subdivision_subfield">z</xslo:variable>
2401 <xslo:template mode="index_subject_thesaurus" match="marc:controlfield[@tag='008']">
2402 <xslo:variable name="thesaurus_code1" select="substring(., 12, 1)"/>
2403 <xslo:variable name="full_thesaurus_code">
2405 <xslo:when test="$thesaurus_code1 = 'a'">
2406 <xslo:text>lcsh</xslo:text>
2408 <xslo:when test="$thesaurus_code1 = 'b'">
2409 <xslo:text>lcac</xslo:text>
2411 <xslo:when test="$thesaurus_code1 = 'c'">
2412 <xslo:text>mesh</xslo:text>
2414 <xslo:when test="$thesaurus_code1 = 'd'">
2415 <xslo:text>nal</xslo:text>
2417 <xslo:when test="$thesaurus_code1 = 'k'">
2418 <xslo:text>cash</xslo:text>
2420 <xslo:when test="$thesaurus_code1 = 'n'">
2421 <xslo:text>notapplicable</xslo:text>
2423 <xslo:when test="$thesaurus_code1 = 'r'">
2424 <xslo:text>aat</xslo:text>
2426 <xslo:when test="$thesaurus_code1 = 's'">
2427 <xslo:text>sears</xslo:text>
2429 <xslo:when test="$thesaurus_code1 = 'v'">
2430 <xslo:text>rvm</xslo:text>
2432 <xslo:when test="$thesaurus_code1 = 'z'">
2434 <xslo:when test="//marc:datafield[@tag='040']/marc:subfield[@code='f']">
2435 <xslo:value-of select="//marc:datafield[@tag='040']/marc:subfield[@code='f']"/>
2438 <xslo:text>notdefined</xslo:text>
2443 <xslo:text>notdefined</xslo:text>
2447 <z:index name="Subject-heading-thesaurus:w">
2448 <xslo:value-of select="$full_thesaurus_code"/>
2451 <xslo:template match="*">
2452 <z:index name="Any:w Any:p">
2453 <xslo:value-of select="."/>
2456 <xslo:template name="chopPunctuation">
2457 <xslo:param name="chopString"/>
2458 <xslo:variable name="length" select="string-length($chopString)"/>
2460 <xslo:when test="$length=0"/>
2461 <xslo:when test="contains('-,.:=;!%/', substring($chopString,$length,1))">
2462 <xslo:call-template name="chopPunctuation">
2463 <xslo:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
2464 </xslo:call-template>
2466 <xslo:when test="not($chopString)"/>
2468 <xslo:value-of select="$chopString"/>