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 authority-koha-indexdefs.xml) and run:
7 `xsltproc koha-indexdefs-to-zebra.xsl authority-koha-indexdefs.xml >
8 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_heading"/>
15 <xslo:template match="text()" mode="index_match_heading"/>
16 <xslo:template match="text()" mode="index_subject_thesaurus"/>
17 <xslo:template match="/">
18 <xslo:if test="marc:collection">
20 <xslo:apply-templates select="marc:collection/marc:record"/>
23 <xslo:if test="marc:record">
24 <xslo:apply-templates select="marc:record"/>
27 <xslo:template match="marc:record">
28 <xslo:variable name="controlField001" select="normalize-space(marc:controlfield[@tag='001'])"/>
29 <z:record type="update">
30 <xslo:attribute name="z:id">
31 <xslo:value-of select="$controlField001"/>
33 <xslo:apply-templates/>
34 <xslo:apply-templates mode="index_subfields"/>
35 <xslo:apply-templates mode="index_heading"/>
36 <xslo:apply-templates mode="index_match_heading"/>
37 <xslo:apply-templates mode="index_subject_thesaurus"/>
40 <xslo:template match="marc:leader">
41 <z:index name="Record-status:w">
42 <xslo:value-of select="substring(., 6, 1)"/>
44 <z:index name="Encoding-level:w">
45 <xslo:value-of select="substring(., 18, 1)"/>
48 <xslo:template match="marc:controlfield[@tag='001']">
49 <z:index name="Local-Number:w Local-Number:s">
50 <xslo:value-of select="."/>
53 <xslo:template match="marc:controlfield[@tag='008']">
54 <z:index name="Kind-of-record:w">
55 <xslo:value-of select="substring(., 10, 1)"/>
57 <z:index name="Descriptive-cataloging-rules:w">
58 <xslo:value-of select="substring(., 11, 1)"/>
60 <z:index name="Heading-use-main-or-added-entry:w">
61 <xslo:value-of select="substring(., 15, 1)"/>
63 <z:index name="Heading-use-subject-added-entry:w">
64 <xslo:value-of select="substring(., 16, 1)"/>
66 <z:index name="Heading-use-series-added-entry:w">
67 <xslo:value-of select="substring(., 17, 1)"/>
70 <xslo:template mode="index_subfields" match="marc:datafield[@tag='100']">
71 <xslo:for-each select="marc:subfield">
72 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)">
73 <z:index name="Personal-name:w Personal-name:p Personal-name:s">
74 <xslo:value-of select="."/>
79 <xslo:template mode="index_subfields" match="marc:datafield[@tag='110']">
80 <xslo:for-each select="marc:subfield">
81 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)">
82 <z:index name="Corporate-name:w Corporate-name:p">
83 <xslo:value-of select="."/>
88 <xslo:template mode="index_subfields" match="marc:datafield[@tag='111']">
89 <xslo:for-each select="marc:subfield">
90 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)">
91 <z:index name="Meeting-name:w Meeting-name:p">
92 <xslo:value-of select="."/>
97 <xslo:template mode="index_subfields" match="marc:datafield[@tag='130']">
98 <xslo:for-each select="marc:subfield">
99 <xslo:if test="contains('adfghklmnoprstvxyz', @code)">
100 <z:index name="Title-uniform:w Title-uniform:p">
101 <xslo:value-of select="."/>
106 <xslo:template mode="index_subfields" match="marc:datafield[@tag='148']">
107 <xslo:for-each select="marc:subfield">
108 <xslo:if test="contains('avxyz', @code)">
109 <z:index name="Chronological-term:w Chronological-term:p">
110 <xslo:value-of select="."/>
115 <xslo:template mode="index_subfields" match="marc:datafield[@tag='150']">
116 <xslo:for-each select="marc:subfield">
117 <xslo:if test="contains('abvxyz', @code)">
118 <z:index name="Subject-topical:w Subject-topical:p">
119 <xslo:value-of select="."/>
124 <xslo:template mode="index_subfields" match="marc:datafield[@tag='151']">
125 <xslo:for-each select="marc:subfield">
126 <xslo:if test="contains('avxyz', @code)">
127 <z:index name="Name-geographic:w Name-geographic:p">
128 <xslo:value-of select="."/>
133 <xslo:template mode="index_subfields" match="marc:datafield[@tag='155']">
134 <xslo:for-each select="marc:subfield">
135 <xslo:if test="contains('avxyz', @code)">
136 <z:index name="Term-genre-form:w Term-genre-form:p">
137 <xslo:value-of select="."/>
142 <xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
143 <xslo:for-each select="marc:subfield">
144 <xslo:if test="contains('a', @code)">
145 <z:index name="authtype:w">
146 <xslo:value-of select="."/>
151 <xslo:template mode="index_heading" match="marc:datafield[@tag='100']">
152 <z:index name="Personal-name-heading:w Personal-name-heading:p Personal-name-heading:s Heading:w Heading:p Heading:s">
153 <xslo:variable name="raw_heading">
154 <xslo:for-each select="marc:subfield">
155 <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">
156 <xslo:if test="position() > 1">
158 <xslo:when test="contains('vxyz', @code)">
159 <xslo:text>--</xslo:text>
162 <xslo:value-of select="substring(' ', 1, 1)"/>
166 <xslo:value-of select="."/>
170 <xslo:value-of select="normalize-space($raw_heading)"/>
172 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
173 <xslo:variable name="raw_heading">
174 <xslo:for-each select="marc:subfield">
175 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
176 <xslo:if test="position() > 1">
178 <xslo:when test="contains('', @code)">
179 <xslo:text>--</xslo:text>
182 <xslo:value-of select="substring(' ', 1, 1)"/>
186 <xslo:value-of select="."/>
190 <xslo:value-of select="normalize-space($raw_heading)"/>
193 <xslo:template mode="index_heading" match="marc:datafield[@tag='400']">
194 <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">
195 <xslo:variable name="raw_heading">
196 <xslo:for-each select="marc:subfield">
197 <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">
198 <xslo:if test="position() > 1">
200 <xslo:when test="contains('vxyz', @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='500']">
216 <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">
217 <xslo:variable name="raw_heading">
218 <xslo:for-each select="marc:subfield">
219 <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">
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='110']">
238 <z:index name="Corporate-name-heading:w Corporate-name-heading:p Corporate-name-heading:s Heading:w Heading:p Heading:s">
239 <xslo:variable name="raw_heading">
240 <xslo:for-each select="marc:subfield">
241 <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">
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)"/>
258 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
259 <xslo:variable name="raw_heading">
260 <xslo:for-each select="marc:subfield">
261 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
262 <xslo:if test="position() > 1">
264 <xslo:when test="contains('', @code)">
265 <xslo:text>--</xslo:text>
268 <xslo:value-of select="substring(' ', 1, 1)"/>
272 <xslo:value-of select="."/>
276 <xslo:value-of select="normalize-space($raw_heading)"/>
279 <xslo:template mode="index_heading" match="marc:datafield[@tag='410']">
280 <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">
281 <xslo:variable name="raw_heading">
282 <xslo:for-each select="marc:subfield">
283 <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">
284 <xslo:if test="position() > 1">
286 <xslo:when test="contains('vxyz', @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='510']">
302 <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">
303 <xslo:variable name="raw_heading">
304 <xslo:for-each select="marc:subfield">
305 <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">
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='111']">
324 <z:index name="Meeting-name-heading:w Meeting-name-heading:p Meeting-name-heading:s Heading:w Heading:p Heading:s">
325 <xslo:variable name="raw_heading">
326 <xslo:for-each select="marc:subfield">
327 <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">
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)"/>
344 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
345 <xslo:variable name="raw_heading">
346 <xslo:for-each select="marc:subfield">
347 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
348 <xslo:if test="position() > 1">
350 <xslo:when test="contains('', @code)">
351 <xslo:text>--</xslo:text>
354 <xslo:value-of select="substring(' ', 1, 1)"/>
358 <xslo:value-of select="."/>
362 <xslo:value-of select="normalize-space($raw_heading)"/>
365 <xslo:template mode="index_heading" match="marc:datafield[@tag='411']">
366 <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">
367 <xslo:variable name="raw_heading">
368 <xslo:for-each select="marc:subfield">
369 <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">
370 <xslo:if test="position() > 1">
372 <xslo:when test="contains('vxyz', @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='511']">
388 <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">
389 <xslo:variable name="raw_heading">
390 <xslo:for-each select="marc:subfield">
391 <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">
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='130']">
410 <z:index name="Title-uniform-heading:w Title-uniform-heading:p Title-uniform-heading:s Heading:w Heading:p Heading:s">
411 <xslo:variable name="raw_heading">
412 <xslo:for-each select="marc:subfield">
413 <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">
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)"/>
430 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
431 <xslo:variable name="raw_heading">
432 <xslo:for-each select="marc:subfield">
433 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
434 <xslo:if test="position() > 1">
436 <xslo:when test="contains('', @code)">
437 <xslo:text>--</xslo:text>
440 <xslo:value-of select="substring(' ', 1, 1)"/>
444 <xslo:value-of select="."/>
448 <xslo:value-of select="normalize-space($raw_heading)"/>
451 <xslo:template mode="index_heading" match="marc:datafield[@tag='430']">
452 <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">
453 <xslo:variable name="raw_heading">
454 <xslo:for-each select="marc:subfield">
455 <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">
456 <xslo:if test="position() > 1">
458 <xslo:when test="contains('vxyz', @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='530']">
474 <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">
475 <xslo:variable name="raw_heading">
476 <xslo:for-each select="marc:subfield">
477 <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">
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='148']">
496 <z:index name="Chronological-term-heading:w Chronological-term-heading:p Chronological-term-heading:s Heading:w Heading:p Heading:s">
497 <xslo:variable name="raw_heading">
498 <xslo:for-each select="marc:subfield">
499 <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">
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)"/>
516 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
517 <xslo:variable name="raw_heading">
518 <xslo:for-each select="marc:subfield">
519 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
520 <xslo:if test="position() > 1">
522 <xslo:when test="contains('', @code)">
523 <xslo:text>--</xslo:text>
526 <xslo:value-of select="substring(' ', 1, 1)"/>
530 <xslo:value-of select="."/>
534 <xslo:value-of select="normalize-space($raw_heading)"/>
537 <xslo:template mode="index_heading" match="marc:datafield[@tag='448']">
538 <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">
539 <xslo:variable name="raw_heading">
540 <xslo:for-each select="marc:subfield">
541 <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">
542 <xslo:if test="position() > 1">
544 <xslo:when test="contains('vxyz', @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='548']">
560 <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">
561 <xslo:variable name="raw_heading">
562 <xslo:for-each select="marc:subfield">
563 <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">
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='150']">
582 <z:index name="Subject-topical-heading:w Subject-topical-heading:p Subject-topical-heading:s Heading:w Heading:p Heading:s">
583 <xslo:variable name="raw_heading">
584 <xslo:for-each select="marc:subfield">
585 <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">
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)"/>
602 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
603 <xslo:variable name="raw_heading">
604 <xslo:for-each select="marc:subfield">
605 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
606 <xslo:if test="position() > 1">
608 <xslo:when test="contains('', @code)">
609 <xslo:text>--</xslo:text>
612 <xslo:value-of select="substring(' ', 1, 1)"/>
616 <xslo:value-of select="."/>
620 <xslo:value-of select="normalize-space($raw_heading)"/>
623 <xslo:template mode="index_heading" match="marc:datafield[@tag='450']">
624 <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">
625 <xslo:variable name="raw_heading">
626 <xslo:for-each select="marc:subfield">
627 <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">
628 <xslo:if test="position() > 1">
630 <xslo:when test="contains('vxyz', @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='550']">
646 <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">
647 <xslo:variable name="raw_heading">
648 <xslo:for-each select="marc:subfield">
649 <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">
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='151']">
668 <z:index name="Name-geographic-heading:w Name-geographic-heading:p Name-geographic-heading:s Heading:w Heading:p Heading:s">
669 <xslo:variable name="raw_heading">
670 <xslo:for-each select="marc:subfield">
671 <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">
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)"/>
688 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
689 <xslo:variable name="raw_heading">
690 <xslo:for-each select="marc:subfield">
691 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
692 <xslo:if test="position() > 1">
694 <xslo:when test="contains('', @code)">
695 <xslo:text>--</xslo:text>
698 <xslo:value-of select="substring(' ', 1, 1)"/>
702 <xslo:value-of select="."/>
706 <xslo:value-of select="normalize-space($raw_heading)"/>
709 <xslo:template mode="index_heading" match="marc:datafield[@tag='451']">
710 <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">
711 <xslo:variable name="raw_heading">
712 <xslo:for-each select="marc:subfield">
713 <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">
714 <xslo:if test="position() > 1">
716 <xslo:when test="contains('vxyz', @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='551']">
732 <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">
733 <xslo:variable name="raw_heading">
734 <xslo:for-each select="marc:subfield">
735 <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">
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='155']">
754 <z:index name="Term-genre-form-heading:w Term-genre-form-heading:p Term-genre-form-heading:s Heading:w Heading:p Heading:s">
755 <xslo:variable name="raw_heading">
756 <xslo:for-each select="marc:subfield">
757 <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">
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)"/>
774 <z:index name="Heading-Main:w Heading-Main:p Heading-Main:s">
775 <xslo:variable name="raw_heading">
776 <xslo:for-each select="marc:subfield">
777 <xslo:if test="contains('a', @code)" name="Heading-Main:w Heading-Main:p Heading-Main:s">
778 <xslo:if test="position() > 1">
780 <xslo:when test="contains('', @code)">
781 <xslo:text>--</xslo:text>
784 <xslo:value-of select="substring(' ', 1, 1)"/>
788 <xslo:value-of select="."/>
792 <xslo:value-of select="normalize-space($raw_heading)"/>
795 <xslo:template mode="index_heading" match="marc:datafield[@tag='455']">
796 <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">
797 <xslo:variable name="raw_heading">
798 <xslo:for-each select="marc:subfield">
799 <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">
800 <xslo:if test="position() > 1">
802 <xslo:when test="contains('vxyz', @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='555']">
818 <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">
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-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">
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='180']">
840 <z:index name="General-subdivision:w General-subdivision:p General-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
841 <xslo:variable name="raw_heading">
842 <xslo:for-each select="marc:subfield">
843 <xslo:if test="contains('vxyz', @code)" name="General-subdivision:w General-subdivision:p General-subdivision:s Subdivision:w Subdivision:p Subdivision: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='480']">
862 <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">
863 <xslo:variable name="raw_heading">
864 <xslo:for-each select="marc:subfield">
865 <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">
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='580']">
884 <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">
885 <xslo:variable name="raw_heading">
886 <xslo:for-each select="marc:subfield">
887 <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">
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='181']">
906 <z:index name="Geographic-subdivision:w Geographic-subdivision:p Geographic-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
907 <xslo:variable name="raw_heading">
908 <xslo:for-each select="marc:subfield">
909 <xslo:if test="contains('vxyz', @code)" name="Geographic-subdivision:w Geographic-subdivision:p Geographic-subdivision:s Subdivision:w Subdivision:p Subdivision: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='481']">
928 <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">
929 <xslo:variable name="raw_heading">
930 <xslo:for-each select="marc:subfield">
931 <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">
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='581']">
950 <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">
951 <xslo:variable name="raw_heading">
952 <xslo:for-each select="marc:subfield">
953 <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">
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='182']">
972 <z:index name="Chronological-subdivision:w Chronological-subdivision:p Chronological-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
973 <xslo:variable name="raw_heading">
974 <xslo:for-each select="marc:subfield">
975 <xslo:if test="contains('vxyz', @code)" name="Chronological-subdivision:w Chronological-subdivision:p Chronological-subdivision:s Subdivision:w Subdivision:p Subdivision: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='482']">
994 <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">
995 <xslo:variable name="raw_heading">
996 <xslo:for-each select="marc:subfield">
997 <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">
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='582']">
1016 <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">
1017 <xslo:variable name="raw_heading">
1018 <xslo:for-each select="marc:subfield">
1019 <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">
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='185']">
1038 <z:index name="Form-subdivision:w Form-subdivision:p Form-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
1039 <xslo:variable name="raw_heading">
1040 <xslo:for-each select="marc:subfield">
1041 <xslo:if test="contains('vxyz', @code)" name="Form-subdivision:w Form-subdivision:p Form-subdivision:s Subdivision:w Subdivision:p Subdivision: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='485']">
1060 <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">
1061 <xslo:variable name="raw_heading">
1062 <xslo:for-each select="marc:subfield">
1063 <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">
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='585']">
1082 <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">
1083 <xslo:variable name="raw_heading">
1084 <xslo:for-each select="marc:subfield">
1085 <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">
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_match_heading" match="marc:datafield[@tag='100']">
1104 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1105 <xslo:variable name="raw_heading">
1106 <xslo:for-each select="marc:subfield">
1107 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1108 <xslo:if test="position() > 1">
1110 <xslo:when test="contains('vxyz', @code)">
1112 <xslo:when test="@code = $general_subdivision_subfield">
1113 <xslo:text> generalsubdiv </xslo:text>
1115 <xslo:when test="@code = $form_subdivision_subfield">
1116 <xslo:text> formsubdiv </xslo:text>
1118 <xslo:when test="@code = $chronological_subdivision_subfield">
1119 <xslo:text> chronologicalsubdiv </xslo:text>
1121 <xslo:when test="@code = $geographic_subdivision_subfield">
1122 <xslo:text> geographicsubdiv </xslo:text>
1127 <xslo:value-of select="substring(' ', 1, 1)"/>
1131 <xslo:call-template name="chopPunctuation">
1132 <xslo:with-param name="chopString">
1133 <xslo:value-of select="."/>
1135 </xslo:call-template>
1139 <xslo:value-of select="normalize-space($raw_heading)"/>
1142 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='400']">
1143 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1144 <xslo:variable name="raw_heading">
1145 <xslo:for-each select="marc:subfield">
1146 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1147 <xslo:if test="position() > 1">
1149 <xslo:when test="contains('vxyz', @code)">
1151 <xslo:when test="@code = $general_subdivision_subfield">
1152 <xslo:text> generalsubdiv </xslo:text>
1154 <xslo:when test="@code = $form_subdivision_subfield">
1155 <xslo:text> formsubdiv </xslo:text>
1157 <xslo:when test="@code = $chronological_subdivision_subfield">
1158 <xslo:text> chronologicalsubdiv </xslo:text>
1160 <xslo:when test="@code = $geographic_subdivision_subfield">
1161 <xslo:text> geographicsubdiv </xslo:text>
1166 <xslo:value-of select="substring(' ', 1, 1)"/>
1170 <xslo:call-template name="chopPunctuation">
1171 <xslo:with-param name="chopString">
1172 <xslo:value-of select="."/>
1174 </xslo:call-template>
1178 <xslo:value-of select="normalize-space($raw_heading)"/>
1181 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='500']">
1182 <z:index name="Match:w Match:p">
1183 <xslo:variable name="raw_heading">
1184 <xslo:for-each select="marc:subfield">
1185 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Match:w Match:p">
1186 <xslo:if test="position() > 1">
1188 <xslo:when test="contains('vxyz', @code)">
1190 <xslo:when test="@code = $general_subdivision_subfield">
1191 <xslo:text> generalsubdiv </xslo:text>
1193 <xslo:when test="@code = $form_subdivision_subfield">
1194 <xslo:text> formsubdiv </xslo:text>
1196 <xslo:when test="@code = $chronological_subdivision_subfield">
1197 <xslo:text> chronologicalsubdiv </xslo:text>
1199 <xslo:when test="@code = $geographic_subdivision_subfield">
1200 <xslo:text> geographicsubdiv </xslo:text>
1205 <xslo:value-of select="substring(' ', 1, 1)"/>
1209 <xslo:call-template name="chopPunctuation">
1210 <xslo:with-param name="chopString">
1211 <xslo:value-of select="."/>
1213 </xslo:call-template>
1217 <xslo:value-of select="normalize-space($raw_heading)"/>
1220 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='110']">
1221 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1222 <xslo:variable name="raw_heading">
1223 <xslo:for-each select="marc:subfield">
1224 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1225 <xslo:if test="position() > 1">
1227 <xslo:when test="contains('vxyz', @code)">
1229 <xslo:when test="@code = $general_subdivision_subfield">
1230 <xslo:text> generalsubdiv </xslo:text>
1232 <xslo:when test="@code = $form_subdivision_subfield">
1233 <xslo:text> formsubdiv </xslo:text>
1235 <xslo:when test="@code = $chronological_subdivision_subfield">
1236 <xslo:text> chronologicalsubdiv </xslo:text>
1238 <xslo:when test="@code = $geographic_subdivision_subfield">
1239 <xslo:text> geographicsubdiv </xslo:text>
1244 <xslo:value-of select="substring(' ', 1, 1)"/>
1248 <xslo:call-template name="chopPunctuation">
1249 <xslo:with-param name="chopString">
1250 <xslo:value-of select="."/>
1252 </xslo:call-template>
1256 <xslo:value-of select="normalize-space($raw_heading)"/>
1259 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='410']">
1260 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1261 <xslo:variable name="raw_heading">
1262 <xslo:for-each select="marc:subfield">
1263 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1264 <xslo:if test="position() > 1">
1266 <xslo:when test="contains('vxyz', @code)">
1268 <xslo:when test="@code = $general_subdivision_subfield">
1269 <xslo:text> generalsubdiv </xslo:text>
1271 <xslo:when test="@code = $form_subdivision_subfield">
1272 <xslo:text> formsubdiv </xslo:text>
1274 <xslo:when test="@code = $chronological_subdivision_subfield">
1275 <xslo:text> chronologicalsubdiv </xslo:text>
1277 <xslo:when test="@code = $geographic_subdivision_subfield">
1278 <xslo:text> geographicsubdiv </xslo:text>
1283 <xslo:value-of select="substring(' ', 1, 1)"/>
1287 <xslo:call-template name="chopPunctuation">
1288 <xslo:with-param name="chopString">
1289 <xslo:value-of select="."/>
1291 </xslo:call-template>
1295 <xslo:value-of select="normalize-space($raw_heading)"/>
1298 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='510']">
1299 <z:index name="Match:w Match:p">
1300 <xslo:variable name="raw_heading">
1301 <xslo:for-each select="marc:subfield">
1302 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Match:w Match:p">
1303 <xslo:if test="position() > 1">
1305 <xslo:when test="contains('vxyz', @code)">
1307 <xslo:when test="@code = $general_subdivision_subfield">
1308 <xslo:text> generalsubdiv </xslo:text>
1310 <xslo:when test="@code = $form_subdivision_subfield">
1311 <xslo:text> formsubdiv </xslo:text>
1313 <xslo:when test="@code = $chronological_subdivision_subfield">
1314 <xslo:text> chronologicalsubdiv </xslo:text>
1316 <xslo:when test="@code = $geographic_subdivision_subfield">
1317 <xslo:text> geographicsubdiv </xslo:text>
1322 <xslo:value-of select="substring(' ', 1, 1)"/>
1326 <xslo:call-template name="chopPunctuation">
1327 <xslo:with-param name="chopString">
1328 <xslo:value-of select="."/>
1330 </xslo:call-template>
1334 <xslo:value-of select="normalize-space($raw_heading)"/>
1337 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='111']">
1338 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1339 <xslo:variable name="raw_heading">
1340 <xslo:for-each select="marc:subfield">
1341 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1342 <xslo:if test="position() > 1">
1344 <xslo:when test="contains('vxyz', @code)">
1346 <xslo:when test="@code = $general_subdivision_subfield">
1347 <xslo:text> generalsubdiv </xslo:text>
1349 <xslo:when test="@code = $form_subdivision_subfield">
1350 <xslo:text> formsubdiv </xslo:text>
1352 <xslo:when test="@code = $chronological_subdivision_subfield">
1353 <xslo:text> chronologicalsubdiv </xslo:text>
1355 <xslo:when test="@code = $geographic_subdivision_subfield">
1356 <xslo:text> geographicsubdiv </xslo:text>
1361 <xslo:value-of select="substring(' ', 1, 1)"/>
1365 <xslo:call-template name="chopPunctuation">
1366 <xslo:with-param name="chopString">
1367 <xslo:value-of select="."/>
1369 </xslo:call-template>
1373 <xslo:value-of select="normalize-space($raw_heading)"/>
1376 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='411']">
1377 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1378 <xslo:variable name="raw_heading">
1379 <xslo:for-each select="marc:subfield">
1380 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1381 <xslo:if test="position() > 1">
1383 <xslo:when test="contains('vxyz', @code)">
1385 <xslo:when test="@code = $general_subdivision_subfield">
1386 <xslo:text> generalsubdiv </xslo:text>
1388 <xslo:when test="@code = $form_subdivision_subfield">
1389 <xslo:text> formsubdiv </xslo:text>
1391 <xslo:when test="@code = $chronological_subdivision_subfield">
1392 <xslo:text> chronologicalsubdiv </xslo:text>
1394 <xslo:when test="@code = $geographic_subdivision_subfield">
1395 <xslo:text> geographicsubdiv </xslo:text>
1400 <xslo:value-of select="substring(' ', 1, 1)"/>
1404 <xslo:call-template name="chopPunctuation">
1405 <xslo:with-param name="chopString">
1406 <xslo:value-of select="."/>
1408 </xslo:call-template>
1412 <xslo:value-of select="normalize-space($raw_heading)"/>
1415 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='511']">
1416 <z:index name="Match:w Match:p">
1417 <xslo:variable name="raw_heading">
1418 <xslo:for-each select="marc:subfield">
1419 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Match:w Match:p">
1420 <xslo:if test="position() > 1">
1422 <xslo:when test="contains('vxyz', @code)">
1424 <xslo:when test="@code = $general_subdivision_subfield">
1425 <xslo:text> generalsubdiv </xslo:text>
1427 <xslo:when test="@code = $form_subdivision_subfield">
1428 <xslo:text> formsubdiv </xslo:text>
1430 <xslo:when test="@code = $chronological_subdivision_subfield">
1431 <xslo:text> chronologicalsubdiv </xslo:text>
1433 <xslo:when test="@code = $geographic_subdivision_subfield">
1434 <xslo:text> geographicsubdiv </xslo:text>
1439 <xslo:value-of select="substring(' ', 1, 1)"/>
1443 <xslo:call-template name="chopPunctuation">
1444 <xslo:with-param name="chopString">
1445 <xslo:value-of select="."/>
1447 </xslo:call-template>
1451 <xslo:value-of select="normalize-space($raw_heading)"/>
1454 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='130']">
1455 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1456 <xslo:variable name="raw_heading">
1457 <xslo:for-each select="marc:subfield">
1458 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1459 <xslo:if test="position() > 1">
1461 <xslo:when test="contains('vxyz', @code)">
1463 <xslo:when test="@code = $general_subdivision_subfield">
1464 <xslo:text> generalsubdiv </xslo:text>
1466 <xslo:when test="@code = $form_subdivision_subfield">
1467 <xslo:text> formsubdiv </xslo:text>
1469 <xslo:when test="@code = $chronological_subdivision_subfield">
1470 <xslo:text> chronologicalsubdiv </xslo:text>
1472 <xslo:when test="@code = $geographic_subdivision_subfield">
1473 <xslo:text> geographicsubdiv </xslo:text>
1478 <xslo:value-of select="substring(' ', 1, 1)"/>
1482 <xslo:call-template name="chopPunctuation">
1483 <xslo:with-param name="chopString">
1484 <xslo:value-of select="."/>
1486 </xslo:call-template>
1490 <xslo:value-of select="normalize-space($raw_heading)"/>
1493 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='430']">
1494 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1495 <xslo:variable name="raw_heading">
1496 <xslo:for-each select="marc:subfield">
1497 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1498 <xslo:if test="position() > 1">
1500 <xslo:when test="contains('vxyz', @code)">
1502 <xslo:when test="@code = $general_subdivision_subfield">
1503 <xslo:text> generalsubdiv </xslo:text>
1505 <xslo:when test="@code = $form_subdivision_subfield">
1506 <xslo:text> formsubdiv </xslo:text>
1508 <xslo:when test="@code = $chronological_subdivision_subfield">
1509 <xslo:text> chronologicalsubdiv </xslo:text>
1511 <xslo:when test="@code = $geographic_subdivision_subfield">
1512 <xslo:text> geographicsubdiv </xslo:text>
1517 <xslo:value-of select="substring(' ', 1, 1)"/>
1521 <xslo:call-template name="chopPunctuation">
1522 <xslo:with-param name="chopString">
1523 <xslo:value-of select="."/>
1525 </xslo:call-template>
1529 <xslo:value-of select="normalize-space($raw_heading)"/>
1532 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='530']">
1533 <z:index name="Match:w Match:p">
1534 <xslo:variable name="raw_heading">
1535 <xslo:for-each select="marc:subfield">
1536 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Match:w Match:p">
1537 <xslo:if test="position() > 1">
1539 <xslo:when test="contains('vxyz', @code)">
1541 <xslo:when test="@code = $general_subdivision_subfield">
1542 <xslo:text> generalsubdiv </xslo:text>
1544 <xslo:when test="@code = $form_subdivision_subfield">
1545 <xslo:text> formsubdiv </xslo:text>
1547 <xslo:when test="@code = $chronological_subdivision_subfield">
1548 <xslo:text> chronologicalsubdiv </xslo:text>
1550 <xslo:when test="@code = $geographic_subdivision_subfield">
1551 <xslo:text> geographicsubdiv </xslo:text>
1556 <xslo:value-of select="substring(' ', 1, 1)"/>
1560 <xslo:call-template name="chopPunctuation">
1561 <xslo:with-param name="chopString">
1562 <xslo:value-of select="."/>
1564 </xslo:call-template>
1568 <xslo:value-of select="normalize-space($raw_heading)"/>
1571 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='148']">
1572 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1573 <xslo:variable name="raw_heading">
1574 <xslo:for-each select="marc:subfield">
1575 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1576 <xslo:if test="position() > 1">
1578 <xslo:when test="contains('vxyz', @code)">
1580 <xslo:when test="@code = $general_subdivision_subfield">
1581 <xslo:text> generalsubdiv </xslo:text>
1583 <xslo:when test="@code = $form_subdivision_subfield">
1584 <xslo:text> formsubdiv </xslo:text>
1586 <xslo:when test="@code = $chronological_subdivision_subfield">
1587 <xslo:text> chronologicalsubdiv </xslo:text>
1589 <xslo:when test="@code = $geographic_subdivision_subfield">
1590 <xslo:text> geographicsubdiv </xslo:text>
1595 <xslo:value-of select="substring(' ', 1, 1)"/>
1599 <xslo:call-template name="chopPunctuation">
1600 <xslo:with-param name="chopString">
1601 <xslo:value-of select="."/>
1603 </xslo:call-template>
1607 <xslo:value-of select="normalize-space($raw_heading)"/>
1610 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='448']">
1611 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1612 <xslo:variable name="raw_heading">
1613 <xslo:for-each select="marc:subfield">
1614 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1615 <xslo:if test="position() > 1">
1617 <xslo:when test="contains('vxyz', @code)">
1619 <xslo:when test="@code = $general_subdivision_subfield">
1620 <xslo:text> generalsubdiv </xslo:text>
1622 <xslo:when test="@code = $form_subdivision_subfield">
1623 <xslo:text> formsubdiv </xslo:text>
1625 <xslo:when test="@code = $chronological_subdivision_subfield">
1626 <xslo:text> chronologicalsubdiv </xslo:text>
1628 <xslo:when test="@code = $geographic_subdivision_subfield">
1629 <xslo:text> geographicsubdiv </xslo:text>
1634 <xslo:value-of select="substring(' ', 1, 1)"/>
1638 <xslo:call-template name="chopPunctuation">
1639 <xslo:with-param name="chopString">
1640 <xslo:value-of select="."/>
1642 </xslo:call-template>
1646 <xslo:value-of select="normalize-space($raw_heading)"/>
1649 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='548']">
1650 <z:index name="Match:w Match:p">
1651 <xslo:variable name="raw_heading">
1652 <xslo:for-each select="marc:subfield">
1653 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p">
1654 <xslo:if test="position() > 1">
1656 <xslo:when test="contains('vxyz', @code)">
1658 <xslo:when test="@code = $general_subdivision_subfield">
1659 <xslo:text> generalsubdiv </xslo:text>
1661 <xslo:when test="@code = $form_subdivision_subfield">
1662 <xslo:text> formsubdiv </xslo:text>
1664 <xslo:when test="@code = $chronological_subdivision_subfield">
1665 <xslo:text> chronologicalsubdiv </xslo:text>
1667 <xslo:when test="@code = $geographic_subdivision_subfield">
1668 <xslo:text> geographicsubdiv </xslo:text>
1673 <xslo:value-of select="substring(' ', 1, 1)"/>
1677 <xslo:call-template name="chopPunctuation">
1678 <xslo:with-param name="chopString">
1679 <xslo:value-of select="."/>
1681 </xslo:call-template>
1685 <xslo:value-of select="normalize-space($raw_heading)"/>
1688 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='150']">
1689 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1690 <xslo:variable name="raw_heading">
1691 <xslo:for-each select="marc:subfield">
1692 <xslo:if test="contains('abvxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1693 <xslo:if test="position() > 1">
1695 <xslo:when test="contains('vxyz', @code)">
1697 <xslo:when test="@code = $general_subdivision_subfield">
1698 <xslo:text> generalsubdiv </xslo:text>
1700 <xslo:when test="@code = $form_subdivision_subfield">
1701 <xslo:text> formsubdiv </xslo:text>
1703 <xslo:when test="@code = $chronological_subdivision_subfield">
1704 <xslo:text> chronologicalsubdiv </xslo:text>
1706 <xslo:when test="@code = $geographic_subdivision_subfield">
1707 <xslo:text> geographicsubdiv </xslo:text>
1712 <xslo:value-of select="substring(' ', 1, 1)"/>
1716 <xslo:call-template name="chopPunctuation">
1717 <xslo:with-param name="chopString">
1718 <xslo:value-of select="."/>
1720 </xslo:call-template>
1724 <xslo:value-of select="normalize-space($raw_heading)"/>
1727 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='450']">
1728 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1729 <xslo:variable name="raw_heading">
1730 <xslo:for-each select="marc:subfield">
1731 <xslo:if test="contains('abvxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1732 <xslo:if test="position() > 1">
1734 <xslo:when test="contains('vxyz', @code)">
1736 <xslo:when test="@code = $general_subdivision_subfield">
1737 <xslo:text> generalsubdiv </xslo:text>
1739 <xslo:when test="@code = $form_subdivision_subfield">
1740 <xslo:text> formsubdiv </xslo:text>
1742 <xslo:when test="@code = $chronological_subdivision_subfield">
1743 <xslo:text> chronologicalsubdiv </xslo:text>
1745 <xslo:when test="@code = $geographic_subdivision_subfield">
1746 <xslo:text> geographicsubdiv </xslo:text>
1751 <xslo:value-of select="substring(' ', 1, 1)"/>
1755 <xslo:call-template name="chopPunctuation">
1756 <xslo:with-param name="chopString">
1757 <xslo:value-of select="."/>
1759 </xslo:call-template>
1763 <xslo:value-of select="normalize-space($raw_heading)"/>
1766 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='550']">
1767 <z:index name="Match:w Match:p">
1768 <xslo:variable name="raw_heading">
1769 <xslo:for-each select="marc:subfield">
1770 <xslo:if test="contains('abvxyz', @code)" name="Match:w Match:p">
1771 <xslo:if test="position() > 1">
1773 <xslo:when test="contains('vxyz', @code)">
1775 <xslo:when test="@code = $general_subdivision_subfield">
1776 <xslo:text> generalsubdiv </xslo:text>
1778 <xslo:when test="@code = $form_subdivision_subfield">
1779 <xslo:text> formsubdiv </xslo:text>
1781 <xslo:when test="@code = $chronological_subdivision_subfield">
1782 <xslo:text> chronologicalsubdiv </xslo:text>
1784 <xslo:when test="@code = $geographic_subdivision_subfield">
1785 <xslo:text> geographicsubdiv </xslo:text>
1790 <xslo:value-of select="substring(' ', 1, 1)"/>
1794 <xslo:call-template name="chopPunctuation">
1795 <xslo:with-param name="chopString">
1796 <xslo:value-of select="."/>
1798 </xslo:call-template>
1802 <xslo:value-of select="normalize-space($raw_heading)"/>
1805 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='151']">
1806 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1807 <xslo:variable name="raw_heading">
1808 <xslo:for-each select="marc:subfield">
1809 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1810 <xslo:if test="position() > 1">
1812 <xslo:when test="contains('vxyz', @code)">
1814 <xslo:when test="@code = $general_subdivision_subfield">
1815 <xslo:text> generalsubdiv </xslo:text>
1817 <xslo:when test="@code = $form_subdivision_subfield">
1818 <xslo:text> formsubdiv </xslo:text>
1820 <xslo:when test="@code = $chronological_subdivision_subfield">
1821 <xslo:text> chronologicalsubdiv </xslo:text>
1823 <xslo:when test="@code = $geographic_subdivision_subfield">
1824 <xslo:text> geographicsubdiv </xslo:text>
1829 <xslo:value-of select="substring(' ', 1, 1)"/>
1833 <xslo:call-template name="chopPunctuation">
1834 <xslo:with-param name="chopString">
1835 <xslo:value-of select="."/>
1837 </xslo:call-template>
1841 <xslo:value-of select="normalize-space($raw_heading)"/>
1844 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='451']">
1845 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1846 <xslo:variable name="raw_heading">
1847 <xslo:for-each select="marc:subfield">
1848 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1849 <xslo:if test="position() > 1">
1851 <xslo:when test="contains('vxyz', @code)">
1853 <xslo:when test="@code = $general_subdivision_subfield">
1854 <xslo:text> generalsubdiv </xslo:text>
1856 <xslo:when test="@code = $form_subdivision_subfield">
1857 <xslo:text> formsubdiv </xslo:text>
1859 <xslo:when test="@code = $chronological_subdivision_subfield">
1860 <xslo:text> chronologicalsubdiv </xslo:text>
1862 <xslo:when test="@code = $geographic_subdivision_subfield">
1863 <xslo:text> geographicsubdiv </xslo:text>
1868 <xslo:value-of select="substring(' ', 1, 1)"/>
1872 <xslo:call-template name="chopPunctuation">
1873 <xslo:with-param name="chopString">
1874 <xslo:value-of select="."/>
1876 </xslo:call-template>
1880 <xslo:value-of select="normalize-space($raw_heading)"/>
1883 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='551']">
1884 <z:index name="Match:w Match:p">
1885 <xslo:variable name="raw_heading">
1886 <xslo:for-each select="marc:subfield">
1887 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p">
1888 <xslo:if test="position() > 1">
1890 <xslo:when test="contains('vxyz', @code)">
1892 <xslo:when test="@code = $general_subdivision_subfield">
1893 <xslo:text> generalsubdiv </xslo:text>
1895 <xslo:when test="@code = $form_subdivision_subfield">
1896 <xslo:text> formsubdiv </xslo:text>
1898 <xslo:when test="@code = $chronological_subdivision_subfield">
1899 <xslo:text> chronologicalsubdiv </xslo:text>
1901 <xslo:when test="@code = $geographic_subdivision_subfield">
1902 <xslo:text> geographicsubdiv </xslo:text>
1907 <xslo:value-of select="substring(' ', 1, 1)"/>
1911 <xslo:call-template name="chopPunctuation">
1912 <xslo:with-param name="chopString">
1913 <xslo:value-of select="."/>
1915 </xslo:call-template>
1919 <xslo:value-of select="normalize-space($raw_heading)"/>
1922 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='155']">
1923 <z:index name="Match:w Match:p Match-heading:p Match-heading:s">
1924 <xslo:variable name="raw_heading">
1925 <xslo:for-each select="marc:subfield">
1926 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading:p Match-heading:s">
1927 <xslo:if test="position() > 1">
1929 <xslo:when test="contains('vxyz', @code)">
1931 <xslo:when test="@code = $general_subdivision_subfield">
1932 <xslo:text> generalsubdiv </xslo:text>
1934 <xslo:when test="@code = $form_subdivision_subfield">
1935 <xslo:text> formsubdiv </xslo:text>
1937 <xslo:when test="@code = $chronological_subdivision_subfield">
1938 <xslo:text> chronologicalsubdiv </xslo:text>
1940 <xslo:when test="@code = $geographic_subdivision_subfield">
1941 <xslo:text> geographicsubdiv </xslo:text>
1946 <xslo:value-of select="substring(' ', 1, 1)"/>
1950 <xslo:call-template name="chopPunctuation">
1951 <xslo:with-param name="chopString">
1952 <xslo:value-of select="."/>
1954 </xslo:call-template>
1958 <xslo:value-of select="normalize-space($raw_heading)"/>
1961 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='455']">
1962 <z:index name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1963 <xslo:variable name="raw_heading">
1964 <xslo:for-each select="marc:subfield">
1965 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1966 <xslo:if test="position() > 1">
1968 <xslo:when test="contains('vxyz', @code)">
1970 <xslo:when test="@code = $general_subdivision_subfield">
1971 <xslo:text> generalsubdiv </xslo:text>
1973 <xslo:when test="@code = $form_subdivision_subfield">
1974 <xslo:text> formsubdiv </xslo:text>
1976 <xslo:when test="@code = $chronological_subdivision_subfield">
1977 <xslo:text> chronologicalsubdiv </xslo:text>
1979 <xslo:when test="@code = $geographic_subdivision_subfield">
1980 <xslo:text> geographicsubdiv </xslo:text>
1985 <xslo:value-of select="substring(' ', 1, 1)"/>
1989 <xslo:call-template name="chopPunctuation">
1990 <xslo:with-param name="chopString">
1991 <xslo:value-of select="."/>
1993 </xslo:call-template>
1997 <xslo:value-of select="normalize-space($raw_heading)"/>
2000 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='555']">
2001 <z:index name="Match:w Match:p">
2002 <xslo:variable name="raw_heading">
2003 <xslo:for-each select="marc:subfield">
2004 <xslo:if test="contains('avxyz', @code)" name="Match:w Match:p">
2005 <xslo:if test="position() > 1">
2007 <xslo:when test="contains('vxyz', @code)">
2009 <xslo:when test="@code = $general_subdivision_subfield">
2010 <xslo:text> generalsubdiv </xslo:text>
2012 <xslo:when test="@code = $form_subdivision_subfield">
2013 <xslo:text> formsubdiv </xslo:text>
2015 <xslo:when test="@code = $chronological_subdivision_subfield">
2016 <xslo:text> chronologicalsubdiv </xslo:text>
2018 <xslo:when test="@code = $geographic_subdivision_subfield">
2019 <xslo:text> geographicsubdiv </xslo:text>
2024 <xslo:value-of select="substring(' ', 1, 1)"/>
2028 <xslo:call-template name="chopPunctuation">
2029 <xslo:with-param name="chopString">
2030 <xslo:value-of select="."/>
2032 </xslo:call-template>
2036 <xslo:value-of select="normalize-space($raw_heading)"/>
2039 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='180']">
2040 <z:index name="Match-subdivision:p Match-subdivision:s">
2041 <xslo:variable name="raw_heading">
2042 <xslo:for-each select="marc:subfield">
2043 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
2044 <xslo:if test="position() > 1">
2046 <xslo:when test="contains('vxyz', @code)">
2048 <xslo:when test="@code = $general_subdivision_subfield">
2049 <xslo:text> generalsubdiv </xslo:text>
2051 <xslo:when test="@code = $form_subdivision_subfield">
2052 <xslo:text> formsubdiv </xslo:text>
2054 <xslo:when test="@code = $chronological_subdivision_subfield">
2055 <xslo:text> chronologicalsubdiv </xslo:text>
2057 <xslo:when test="@code = $geographic_subdivision_subfield">
2058 <xslo:text> geographicsubdiv </xslo:text>
2063 <xslo:value-of select="substring(' ', 1, 1)"/>
2067 <xslo:call-template name="chopPunctuation">
2068 <xslo:with-param name="chopString">
2069 <xslo:value-of select="."/>
2071 </xslo:call-template>
2075 <xslo:value-of select="normalize-space($raw_heading)"/>
2078 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='480']">
2079 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2080 <xslo:variable name="raw_heading">
2081 <xslo:for-each select="marc:subfield">
2082 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2083 <xslo:if test="position() > 1">
2085 <xslo:when test="contains('vxyz', @code)">
2087 <xslo:when test="@code = $general_subdivision_subfield">
2088 <xslo:text> generalsubdiv </xslo:text>
2090 <xslo:when test="@code = $form_subdivision_subfield">
2091 <xslo:text> formsubdiv </xslo:text>
2093 <xslo:when test="@code = $chronological_subdivision_subfield">
2094 <xslo:text> chronologicalsubdiv </xslo:text>
2096 <xslo:when test="@code = $geographic_subdivision_subfield">
2097 <xslo:text> geographicsubdiv </xslo:text>
2102 <xslo:value-of select="substring(' ', 1, 1)"/>
2106 <xslo:call-template name="chopPunctuation">
2107 <xslo:with-param name="chopString">
2108 <xslo:value-of select="."/>
2110 </xslo:call-template>
2114 <xslo:value-of select="normalize-space($raw_heading)"/>
2117 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='181']">
2118 <z:index name="Match-subdivision:p Match-subdivision:s">
2119 <xslo:variable name="raw_heading">
2120 <xslo:for-each select="marc:subfield">
2121 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
2122 <xslo:if test="position() > 1">
2124 <xslo:when test="contains('vxyz', @code)">
2126 <xslo:when test="@code = $general_subdivision_subfield">
2127 <xslo:text> generalsubdiv </xslo:text>
2129 <xslo:when test="@code = $form_subdivision_subfield">
2130 <xslo:text> formsubdiv </xslo:text>
2132 <xslo:when test="@code = $chronological_subdivision_subfield">
2133 <xslo:text> chronologicalsubdiv </xslo:text>
2135 <xslo:when test="@code = $geographic_subdivision_subfield">
2136 <xslo:text> geographicsubdiv </xslo:text>
2141 <xslo:value-of select="substring(' ', 1, 1)"/>
2145 <xslo:call-template name="chopPunctuation">
2146 <xslo:with-param name="chopString">
2147 <xslo:value-of select="."/>
2149 </xslo:call-template>
2153 <xslo:value-of select="normalize-space($raw_heading)"/>
2156 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='481']">
2157 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2158 <xslo:variable name="raw_heading">
2159 <xslo:for-each select="marc:subfield">
2160 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2161 <xslo:if test="position() > 1">
2163 <xslo:when test="contains('vxyz', @code)">
2165 <xslo:when test="@code = $general_subdivision_subfield">
2166 <xslo:text> generalsubdiv </xslo:text>
2168 <xslo:when test="@code = $form_subdivision_subfield">
2169 <xslo:text> formsubdiv </xslo:text>
2171 <xslo:when test="@code = $chronological_subdivision_subfield">
2172 <xslo:text> chronologicalsubdiv </xslo:text>
2174 <xslo:when test="@code = $geographic_subdivision_subfield">
2175 <xslo:text> geographicsubdiv </xslo:text>
2180 <xslo:value-of select="substring(' ', 1, 1)"/>
2184 <xslo:call-template name="chopPunctuation">
2185 <xslo:with-param name="chopString">
2186 <xslo:value-of select="."/>
2188 </xslo:call-template>
2192 <xslo:value-of select="normalize-space($raw_heading)"/>
2195 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='182']">
2196 <z:index name="Match-subdivision:p Match-subdivision:s">
2197 <xslo:variable name="raw_heading">
2198 <xslo:for-each select="marc:subfield">
2199 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
2200 <xslo:if test="position() > 1">
2202 <xslo:when test="contains('vxyz', @code)">
2204 <xslo:when test="@code = $general_subdivision_subfield">
2205 <xslo:text> generalsubdiv </xslo:text>
2207 <xslo:when test="@code = $form_subdivision_subfield">
2208 <xslo:text> formsubdiv </xslo:text>
2210 <xslo:when test="@code = $chronological_subdivision_subfield">
2211 <xslo:text> chronologicalsubdiv </xslo:text>
2213 <xslo:when test="@code = $geographic_subdivision_subfield">
2214 <xslo:text> geographicsubdiv </xslo:text>
2219 <xslo:value-of select="substring(' ', 1, 1)"/>
2223 <xslo:call-template name="chopPunctuation">
2224 <xslo:with-param name="chopString">
2225 <xslo:value-of select="."/>
2227 </xslo:call-template>
2231 <xslo:value-of select="normalize-space($raw_heading)"/>
2234 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='482']">
2235 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2236 <xslo:variable name="raw_heading">
2237 <xslo:for-each select="marc:subfield">
2238 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2239 <xslo:if test="position() > 1">
2241 <xslo:when test="contains('vxyz', @code)">
2243 <xslo:when test="@code = $general_subdivision_subfield">
2244 <xslo:text> generalsubdiv </xslo:text>
2246 <xslo:when test="@code = $form_subdivision_subfield">
2247 <xslo:text> formsubdiv </xslo:text>
2249 <xslo:when test="@code = $chronological_subdivision_subfield">
2250 <xslo:text> chronologicalsubdiv </xslo:text>
2252 <xslo:when test="@code = $geographic_subdivision_subfield">
2253 <xslo:text> geographicsubdiv </xslo:text>
2258 <xslo:value-of select="substring(' ', 1, 1)"/>
2262 <xslo:call-template name="chopPunctuation">
2263 <xslo:with-param name="chopString">
2264 <xslo:value-of select="."/>
2266 </xslo:call-template>
2270 <xslo:value-of select="normalize-space($raw_heading)"/>
2273 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='485']">
2274 <z:index name="Match-subdivision:p Match-subdivision:s">
2275 <xslo:variable name="raw_heading">
2276 <xslo:for-each select="marc:subfield">
2277 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
2278 <xslo:if test="position() > 1">
2280 <xslo:when test="contains('vxyz', @code)">
2282 <xslo:when test="@code = $general_subdivision_subfield">
2283 <xslo:text> generalsubdiv </xslo:text>
2285 <xslo:when test="@code = $form_subdivision_subfield">
2286 <xslo:text> formsubdiv </xslo:text>
2288 <xslo:when test="@code = $chronological_subdivision_subfield">
2289 <xslo:text> chronologicalsubdiv </xslo:text>
2291 <xslo:when test="@code = $geographic_subdivision_subfield">
2292 <xslo:text> geographicsubdiv </xslo:text>
2297 <xslo:value-of select="substring(' ', 1, 1)"/>
2301 <xslo:call-template name="chopPunctuation">
2302 <xslo:with-param name="chopString">
2303 <xslo:value-of select="."/>
2305 </xslo:call-template>
2309 <xslo:value-of select="normalize-space($raw_heading)"/>
2312 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='185']">
2313 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2314 <xslo:variable name="raw_heading">
2315 <xslo:for-each select="marc:subfield">
2316 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
2317 <xslo:if test="position() > 1">
2319 <xslo:when test="contains('vxyz', @code)">
2321 <xslo:when test="@code = $general_subdivision_subfield">
2322 <xslo:text> generalsubdiv </xslo:text>
2324 <xslo:when test="@code = $form_subdivision_subfield">
2325 <xslo:text> formsubdiv </xslo:text>
2327 <xslo:when test="@code = $chronological_subdivision_subfield">
2328 <xslo:text> chronologicalsubdiv </xslo:text>
2330 <xslo:when test="@code = $geographic_subdivision_subfield">
2331 <xslo:text> geographicsubdiv </xslo:text>
2336 <xslo:value-of select="substring(' ', 1, 1)"/>
2340 <xslo:call-template name="chopPunctuation">
2341 <xslo:with-param name="chopString">
2342 <xslo:value-of select="."/>
2344 </xslo:call-template>
2348 <xslo:value-of select="normalize-space($raw_heading)"/>
2351 <xslo:variable name="form_subdivision_subfield">v</xslo:variable>
2352 <xslo:variable name="general_subdivision_subfield">x</xslo:variable>
2353 <xslo:variable name="chronological_subdivision_subfield">y</xslo:variable>
2354 <xslo:variable name="geographic_subdivision_subfield">z</xslo:variable>
2355 <xslo:template mode="index_subject_thesaurus" match="marc:controlfield[@tag='008']">
2356 <xslo:variable name="thesaurus_code1" select="substring(., 12, 1)"/>
2357 <xslo:variable name="full_thesaurus_code">
2359 <xslo:when test="$thesaurus_code1 = 'a'">
2360 <xslo:text>lcsh</xslo:text>
2362 <xslo:when test="$thesaurus_code1 = 'b'">
2363 <xslo:text>lcac</xslo:text>
2365 <xslo:when test="$thesaurus_code1 = 'c'">
2366 <xslo:text>mesh</xslo:text>
2368 <xslo:when test="$thesaurus_code1 = 'd'">
2369 <xslo:text>nal</xslo:text>
2371 <xslo:when test="$thesaurus_code1 = 'k'">
2372 <xslo:text>cash</xslo:text>
2374 <xslo:when test="$thesaurus_code1 = 'n'">
2375 <xslo:text>notapplicable</xslo:text>
2377 <xslo:when test="$thesaurus_code1 = 'r'">
2378 <xslo:text>aat</xslo:text>
2380 <xslo:when test="$thesaurus_code1 = 's'">
2381 <xslo:text>sears</xslo:text>
2383 <xslo:when test="$thesaurus_code1 = 'v'">
2384 <xslo:text>rvm</xslo:text>
2386 <xslo:when test="$thesaurus_code1 = 'z'">
2388 <xslo:when test="//marc:datafield[@tag='040']/marc:subfield[@code='f']">
2389 <xslo:value-of select="//marc:datafield[@tag='040']/marc:subfield[@code='f']"/>
2392 <xslo:text>notdefined</xslo:text>
2397 <xslo:text>notdefined</xslo:text>
2401 <z:index name="Subject-heading-thesaurus:w">
2402 <xslo:value-of select="$full_thesaurus_code"/>
2405 <xslo:template match="*">
2406 <z:index name="Any:w Any:p">
2407 <xslo:value-of select="."/>
2410 <xslo:template name="chopPunctuation">
2411 <xslo:param name="chopString"/>
2412 <xslo:variable name="length" select="string-length($chopString)"/>
2414 <xslo:when test="$length=0"/>
2415 <xslo:when test="contains('-,.:=;!%/', substring($chopString,$length,1))">
2416 <xslo:call-template name="chopPunctuation">
2417 <xslo:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
2418 </xslo:call-template>
2420 <xslo:when test="not($chopString)"/>
2422 <xslo:value-of select="$chopString"/>