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">
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-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-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:value-of select="."/>
1135 <xslo:value-of select="normalize-space($raw_heading)"/>
1138 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='400']">
1139 <z:index name="Match-heading-see-from:p Match-heading-see-from:s">
1140 <xslo:variable name="raw_heading">
1141 <xslo:for-each select="marc:subfield">
1142 <xslo:if test="contains('abcdefghjklmnopqrstvxyz', @code)" name="Match-heading-see-from:p Match-heading-see-from:s">
1143 <xslo:if test="position() > 1">
1145 <xslo:when test="contains('vxyz', @code)">
1147 <xslo:when test="@code = $general_subdivision_subfield">
1148 <xslo:text> generalsubdiv </xslo:text>
1150 <xslo:when test="@code = $form_subdivision_subfield">
1151 <xslo:text> formsubdiv </xslo:text>
1153 <xslo:when test="@code = $chronological_subdivision_subfield">
1154 <xslo:text> chronologicalsubdiv </xslo:text>
1156 <xslo:when test="@code = $geographic_subdivision_subfield">
1157 <xslo:text> geographicsubdiv </xslo:text>
1162 <xslo:value-of select="substring(' ', 1, 1)"/>
1166 <xslo:value-of select="."/>
1170 <xslo:value-of select="normalize-space($raw_heading)"/>
1173 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='110']">
1174 <z:index name="Match-heading:p Match-heading:s">
1175 <xslo:variable name="raw_heading">
1176 <xslo:for-each select="marc:subfield">
1177 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Match-heading:p Match-heading:s">
1178 <xslo:if test="position() > 1">
1180 <xslo:when test="contains('vxyz', @code)">
1182 <xslo:when test="@code = $general_subdivision_subfield">
1183 <xslo:text> generalsubdiv </xslo:text>
1185 <xslo:when test="@code = $form_subdivision_subfield">
1186 <xslo:text> formsubdiv </xslo:text>
1188 <xslo:when test="@code = $chronological_subdivision_subfield">
1189 <xslo:text> chronologicalsubdiv </xslo:text>
1191 <xslo:when test="@code = $geographic_subdivision_subfield">
1192 <xslo:text> geographicsubdiv </xslo:text>
1197 <xslo:value-of select="substring(' ', 1, 1)"/>
1201 <xslo:value-of select="."/>
1205 <xslo:value-of select="normalize-space($raw_heading)"/>
1208 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='410']">
1209 <z:index name="Match-heading-see-from:p Match-heading-see-from:s">
1210 <xslo:variable name="raw_heading">
1211 <xslo:for-each select="marc:subfield">
1212 <xslo:if test="contains('abcdefghklmnoprstvxyz', @code)" name="Match-heading-see-from:p Match-heading-see-from:s">
1213 <xslo:if test="position() > 1">
1215 <xslo:when test="contains('vxyz', @code)">
1217 <xslo:when test="@code = $general_subdivision_subfield">
1218 <xslo:text> generalsubdiv </xslo:text>
1220 <xslo:when test="@code = $form_subdivision_subfield">
1221 <xslo:text> formsubdiv </xslo:text>
1223 <xslo:when test="@code = $chronological_subdivision_subfield">
1224 <xslo:text> chronologicalsubdiv </xslo:text>
1226 <xslo:when test="@code = $geographic_subdivision_subfield">
1227 <xslo:text> geographicsubdiv </xslo:text>
1232 <xslo:value-of select="substring(' ', 1, 1)"/>
1236 <xslo:value-of select="."/>
1240 <xslo:value-of select="normalize-space($raw_heading)"/>
1243 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='111']">
1244 <z:index name="Match-heading:p Match-heading:s">
1245 <xslo:variable name="raw_heading">
1246 <xslo:for-each select="marc:subfield">
1247 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Match-heading:p Match-heading:s">
1248 <xslo:if test="position() > 1">
1250 <xslo:when test="contains('vxyz', @code)">
1252 <xslo:when test="@code = $general_subdivision_subfield">
1253 <xslo:text> generalsubdiv </xslo:text>
1255 <xslo:when test="@code = $form_subdivision_subfield">
1256 <xslo:text> formsubdiv </xslo:text>
1258 <xslo:when test="@code = $chronological_subdivision_subfield">
1259 <xslo:text> chronologicalsubdiv </xslo:text>
1261 <xslo:when test="@code = $geographic_subdivision_subfield">
1262 <xslo:text> geographicsubdiv </xslo:text>
1267 <xslo:value-of select="substring(' ', 1, 1)"/>
1271 <xslo:value-of select="."/>
1275 <xslo:value-of select="normalize-space($raw_heading)"/>
1278 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='411']">
1279 <z:index name="Match-heading-see-from:p Match-heading-see-from:s">
1280 <xslo:variable name="raw_heading">
1281 <xslo:for-each select="marc:subfield">
1282 <xslo:if test="contains('acdefghjklnpqstvxyz', @code)" name="Match-heading-see-from:p Match-heading-see-from:s">
1283 <xslo:if test="position() > 1">
1285 <xslo:when test="contains('vxyz', @code)">
1287 <xslo:when test="@code = $general_subdivision_subfield">
1288 <xslo:text> generalsubdiv </xslo:text>
1290 <xslo:when test="@code = $form_subdivision_subfield">
1291 <xslo:text> formsubdiv </xslo:text>
1293 <xslo:when test="@code = $chronological_subdivision_subfield">
1294 <xslo:text> chronologicalsubdiv </xslo:text>
1296 <xslo:when test="@code = $geographic_subdivision_subfield">
1297 <xslo:text> geographicsubdiv </xslo:text>
1302 <xslo:value-of select="substring(' ', 1, 1)"/>
1306 <xslo:value-of select="."/>
1310 <xslo:value-of select="normalize-space($raw_heading)"/>
1313 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='130']">
1314 <z:index name="Match-heading:p Match-heading:s">
1315 <xslo:variable name="raw_heading">
1316 <xslo:for-each select="marc:subfield">
1317 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Match-heading:p Match-heading:s">
1318 <xslo:if test="position() > 1">
1320 <xslo:when test="contains('vxyz', @code)">
1322 <xslo:when test="@code = $general_subdivision_subfield">
1323 <xslo:text> generalsubdiv </xslo:text>
1325 <xslo:when test="@code = $form_subdivision_subfield">
1326 <xslo:text> formsubdiv </xslo:text>
1328 <xslo:when test="@code = $chronological_subdivision_subfield">
1329 <xslo:text> chronologicalsubdiv </xslo:text>
1331 <xslo:when test="@code = $geographic_subdivision_subfield">
1332 <xslo:text> geographicsubdiv </xslo:text>
1337 <xslo:value-of select="substring(' ', 1, 1)"/>
1341 <xslo:value-of select="."/>
1345 <xslo:value-of select="normalize-space($raw_heading)"/>
1348 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='430']">
1349 <z:index name="Match-heading-see-from:p Match-heading-see-from:s">
1350 <xslo:variable name="raw_heading">
1351 <xslo:for-each select="marc:subfield">
1352 <xslo:if test="contains('adfghklmnoprstvxyz', @code)" name="Match-heading-see-from:p Match-heading-see-from:s">
1353 <xslo:if test="position() > 1">
1355 <xslo:when test="contains('vxyz', @code)">
1357 <xslo:when test="@code = $general_subdivision_subfield">
1358 <xslo:text> generalsubdiv </xslo:text>
1360 <xslo:when test="@code = $form_subdivision_subfield">
1361 <xslo:text> formsubdiv </xslo:text>
1363 <xslo:when test="@code = $chronological_subdivision_subfield">
1364 <xslo:text> chronologicalsubdiv </xslo:text>
1366 <xslo:when test="@code = $geographic_subdivision_subfield">
1367 <xslo:text> geographicsubdiv </xslo:text>
1372 <xslo:value-of select="substring(' ', 1, 1)"/>
1376 <xslo:value-of select="."/>
1380 <xslo:value-of select="normalize-space($raw_heading)"/>
1383 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='148']">
1384 <z:index name="Match-heading:p Match-heading:s">
1385 <xslo:variable name="raw_heading">
1386 <xslo:for-each select="marc:subfield">
1387 <xslo:if test="contains('avxyz', @code)" name="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:value-of select="."/>
1415 <xslo:value-of select="normalize-space($raw_heading)"/>
1418 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='448']">
1419 <z:index name="Match-heading-see-from:p Match-heading-see-from:s">
1420 <xslo:variable name="raw_heading">
1421 <xslo:for-each select="marc:subfield">
1422 <xslo:if test="contains('avxyz', @code)" name="Match-heading-see-from:p Match-heading-see-from:s">
1423 <xslo:if test="position() > 1">
1425 <xslo:when test="contains('vxyz', @code)">
1427 <xslo:when test="@code = $general_subdivision_subfield">
1428 <xslo:text> generalsubdiv </xslo:text>
1430 <xslo:when test="@code = $form_subdivision_subfield">
1431 <xslo:text> formsubdiv </xslo:text>
1433 <xslo:when test="@code = $chronological_subdivision_subfield">
1434 <xslo:text> chronologicalsubdiv </xslo:text>
1436 <xslo:when test="@code = $geographic_subdivision_subfield">
1437 <xslo:text> geographicsubdiv </xslo:text>
1442 <xslo:value-of select="substring(' ', 1, 1)"/>
1446 <xslo:value-of select="."/>
1450 <xslo:value-of select="normalize-space($raw_heading)"/>
1453 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='150']">
1454 <z:index name="Match-heading:p Match-heading:s">
1455 <xslo:variable name="raw_heading">
1456 <xslo:for-each select="marc:subfield">
1457 <xslo:if test="contains('abvxyz', @code)" name="Match-heading:p Match-heading:s">
1458 <xslo:if test="position() > 1">
1460 <xslo:when test="contains('vxyz', @code)">
1462 <xslo:when test="@code = $general_subdivision_subfield">
1463 <xslo:text> generalsubdiv </xslo:text>
1465 <xslo:when test="@code = $form_subdivision_subfield">
1466 <xslo:text> formsubdiv </xslo:text>
1468 <xslo:when test="@code = $chronological_subdivision_subfield">
1469 <xslo:text> chronologicalsubdiv </xslo:text>
1471 <xslo:when test="@code = $geographic_subdivision_subfield">
1472 <xslo:text> geographicsubdiv </xslo:text>
1477 <xslo:value-of select="substring(' ', 1, 1)"/>
1481 <xslo:value-of select="."/>
1485 <xslo:value-of select="normalize-space($raw_heading)"/>
1488 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='450']">
1489 <z:index name="Match-heading-see-from:p Match-heading-see-from:s">
1490 <xslo:variable name="raw_heading">
1491 <xslo:for-each select="marc:subfield">
1492 <xslo:if test="contains('abvxyz', @code)" name="Match-heading-see-from:p Match-heading-see-from:s">
1493 <xslo:if test="position() > 1">
1495 <xslo:when test="contains('vxyz', @code)">
1497 <xslo:when test="@code = $general_subdivision_subfield">
1498 <xslo:text> generalsubdiv </xslo:text>
1500 <xslo:when test="@code = $form_subdivision_subfield">
1501 <xslo:text> formsubdiv </xslo:text>
1503 <xslo:when test="@code = $chronological_subdivision_subfield">
1504 <xslo:text> chronologicalsubdiv </xslo:text>
1506 <xslo:when test="@code = $geographic_subdivision_subfield">
1507 <xslo:text> geographicsubdiv </xslo:text>
1512 <xslo:value-of select="substring(' ', 1, 1)"/>
1516 <xslo:value-of select="."/>
1520 <xslo:value-of select="normalize-space($raw_heading)"/>
1523 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='151']">
1524 <z:index name="Match-heading:p Match-heading:s">
1525 <xslo:variable name="raw_heading">
1526 <xslo:for-each select="marc:subfield">
1527 <xslo:if test="contains('avxyz', @code)" name="Match-heading:p Match-heading:s">
1528 <xslo:if test="position() > 1">
1530 <xslo:when test="contains('vxyz', @code)">
1532 <xslo:when test="@code = $general_subdivision_subfield">
1533 <xslo:text> generalsubdiv </xslo:text>
1535 <xslo:when test="@code = $form_subdivision_subfield">
1536 <xslo:text> formsubdiv </xslo:text>
1538 <xslo:when test="@code = $chronological_subdivision_subfield">
1539 <xslo:text> chronologicalsubdiv </xslo:text>
1541 <xslo:when test="@code = $geographic_subdivision_subfield">
1542 <xslo:text> geographicsubdiv </xslo:text>
1547 <xslo:value-of select="substring(' ', 1, 1)"/>
1551 <xslo:value-of select="."/>
1555 <xslo:value-of select="normalize-space($raw_heading)"/>
1558 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='451']">
1559 <z:index name="Match-heading-see-from:p Match-heading-see-from:s">
1560 <xslo:variable name="raw_heading">
1561 <xslo:for-each select="marc:subfield">
1562 <xslo:if test="contains('avxyz', @code)" name="Match-heading-see-from:p Match-heading-see-from:s">
1563 <xslo:if test="position() > 1">
1565 <xslo:when test="contains('vxyz', @code)">
1567 <xslo:when test="@code = $general_subdivision_subfield">
1568 <xslo:text> generalsubdiv </xslo:text>
1570 <xslo:when test="@code = $form_subdivision_subfield">
1571 <xslo:text> formsubdiv </xslo:text>
1573 <xslo:when test="@code = $chronological_subdivision_subfield">
1574 <xslo:text> chronologicalsubdiv </xslo:text>
1576 <xslo:when test="@code = $geographic_subdivision_subfield">
1577 <xslo:text> geographicsubdiv </xslo:text>
1582 <xslo:value-of select="substring(' ', 1, 1)"/>
1586 <xslo:value-of select="."/>
1590 <xslo:value-of select="normalize-space($raw_heading)"/>
1593 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='155']">
1594 <z:index name="Match-heading:p Match-heading:s">
1595 <xslo:variable name="raw_heading">
1596 <xslo:for-each select="marc:subfield">
1597 <xslo:if test="contains('avxyz', @code)" name="Match-heading:p Match-heading:s">
1598 <xslo:if test="position() > 1">
1600 <xslo:when test="contains('vxyz', @code)">
1602 <xslo:when test="@code = $general_subdivision_subfield">
1603 <xslo:text> generalsubdiv </xslo:text>
1605 <xslo:when test="@code = $form_subdivision_subfield">
1606 <xslo:text> formsubdiv </xslo:text>
1608 <xslo:when test="@code = $chronological_subdivision_subfield">
1609 <xslo:text> chronologicalsubdiv </xslo:text>
1611 <xslo:when test="@code = $geographic_subdivision_subfield">
1612 <xslo:text> geographicsubdiv </xslo:text>
1617 <xslo:value-of select="substring(' ', 1, 1)"/>
1621 <xslo:value-of select="."/>
1625 <xslo:value-of select="normalize-space($raw_heading)"/>
1628 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='455']">
1629 <z:index name="Match-heading-see-from:p Match-heading-see-from:s">
1630 <xslo:variable name="raw_heading">
1631 <xslo:for-each select="marc:subfield">
1632 <xslo:if test="contains('avxyz', @code)" name="Match-heading-see-from:p Match-heading-see-from:s">
1633 <xslo:if test="position() > 1">
1635 <xslo:when test="contains('vxyz', @code)">
1637 <xslo:when test="@code = $general_subdivision_subfield">
1638 <xslo:text> generalsubdiv </xslo:text>
1640 <xslo:when test="@code = $form_subdivision_subfield">
1641 <xslo:text> formsubdiv </xslo:text>
1643 <xslo:when test="@code = $chronological_subdivision_subfield">
1644 <xslo:text> chronologicalsubdiv </xslo:text>
1646 <xslo:when test="@code = $geographic_subdivision_subfield">
1647 <xslo:text> geographicsubdiv </xslo:text>
1652 <xslo:value-of select="substring(' ', 1, 1)"/>
1656 <xslo:value-of select="."/>
1660 <xslo:value-of select="normalize-space($raw_heading)"/>
1663 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='180']">
1664 <z:index name="Match-subdivision:p Match-subdivision:s">
1665 <xslo:variable name="raw_heading">
1666 <xslo:for-each select="marc:subfield">
1667 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
1668 <xslo:if test="position() > 1">
1670 <xslo:when test="contains('vxyz', @code)">
1672 <xslo:when test="@code = $general_subdivision_subfield">
1673 <xslo:text> generalsubdiv </xslo:text>
1675 <xslo:when test="@code = $form_subdivision_subfield">
1676 <xslo:text> formsubdiv </xslo:text>
1678 <xslo:when test="@code = $chronological_subdivision_subfield">
1679 <xslo:text> chronologicalsubdiv </xslo:text>
1681 <xslo:when test="@code = $geographic_subdivision_subfield">
1682 <xslo:text> geographicsubdiv </xslo:text>
1687 <xslo:value-of select="substring(' ', 1, 1)"/>
1691 <xslo:value-of select="."/>
1695 <xslo:value-of select="normalize-space($raw_heading)"/>
1698 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='480']">
1699 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
1700 <xslo:variable name="raw_heading">
1701 <xslo:for-each select="marc:subfield">
1702 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
1703 <xslo:if test="position() > 1">
1705 <xslo:when test="contains('vxyz', @code)">
1707 <xslo:when test="@code = $general_subdivision_subfield">
1708 <xslo:text> generalsubdiv </xslo:text>
1710 <xslo:when test="@code = $form_subdivision_subfield">
1711 <xslo:text> formsubdiv </xslo:text>
1713 <xslo:when test="@code = $chronological_subdivision_subfield">
1714 <xslo:text> chronologicalsubdiv </xslo:text>
1716 <xslo:when test="@code = $geographic_subdivision_subfield">
1717 <xslo:text> geographicsubdiv </xslo:text>
1722 <xslo:value-of select="substring(' ', 1, 1)"/>
1726 <xslo:value-of select="."/>
1730 <xslo:value-of select="normalize-space($raw_heading)"/>
1733 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='181']">
1734 <z:index name="Match-subdivision:p Match-subdivision:s">
1735 <xslo:variable name="raw_heading">
1736 <xslo:for-each select="marc:subfield">
1737 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
1738 <xslo:if test="position() > 1">
1740 <xslo:when test="contains('vxyz', @code)">
1742 <xslo:when test="@code = $general_subdivision_subfield">
1743 <xslo:text> generalsubdiv </xslo:text>
1745 <xslo:when test="@code = $form_subdivision_subfield">
1746 <xslo:text> formsubdiv </xslo:text>
1748 <xslo:when test="@code = $chronological_subdivision_subfield">
1749 <xslo:text> chronologicalsubdiv </xslo:text>
1751 <xslo:when test="@code = $geographic_subdivision_subfield">
1752 <xslo:text> geographicsubdiv </xslo:text>
1757 <xslo:value-of select="substring(' ', 1, 1)"/>
1761 <xslo:value-of select="."/>
1765 <xslo:value-of select="normalize-space($raw_heading)"/>
1768 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='481']">
1769 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
1770 <xslo:variable name="raw_heading">
1771 <xslo:for-each select="marc:subfield">
1772 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
1773 <xslo:if test="position() > 1">
1775 <xslo:when test="contains('vxyz', @code)">
1777 <xslo:when test="@code = $general_subdivision_subfield">
1778 <xslo:text> generalsubdiv </xslo:text>
1780 <xslo:when test="@code = $form_subdivision_subfield">
1781 <xslo:text> formsubdiv </xslo:text>
1783 <xslo:when test="@code = $chronological_subdivision_subfield">
1784 <xslo:text> chronologicalsubdiv </xslo:text>
1786 <xslo:when test="@code = $geographic_subdivision_subfield">
1787 <xslo:text> geographicsubdiv </xslo:text>
1792 <xslo:value-of select="substring(' ', 1, 1)"/>
1796 <xslo:value-of select="."/>
1800 <xslo:value-of select="normalize-space($raw_heading)"/>
1803 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='182']">
1804 <z:index name="Match-subdivision:p Match-subdivision:s">
1805 <xslo:variable name="raw_heading">
1806 <xslo:for-each select="marc:subfield">
1807 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
1808 <xslo:if test="position() > 1">
1810 <xslo:when test="contains('vxyz', @code)">
1812 <xslo:when test="@code = $general_subdivision_subfield">
1813 <xslo:text> generalsubdiv </xslo:text>
1815 <xslo:when test="@code = $form_subdivision_subfield">
1816 <xslo:text> formsubdiv </xslo:text>
1818 <xslo:when test="@code = $chronological_subdivision_subfield">
1819 <xslo:text> chronologicalsubdiv </xslo:text>
1821 <xslo:when test="@code = $geographic_subdivision_subfield">
1822 <xslo:text> geographicsubdiv </xslo:text>
1827 <xslo:value-of select="substring(' ', 1, 1)"/>
1831 <xslo:value-of select="."/>
1835 <xslo:value-of select="normalize-space($raw_heading)"/>
1838 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='482']">
1839 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
1840 <xslo:variable name="raw_heading">
1841 <xslo:for-each select="marc:subfield">
1842 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
1843 <xslo:if test="position() > 1">
1845 <xslo:when test="contains('vxyz', @code)">
1847 <xslo:when test="@code = $general_subdivision_subfield">
1848 <xslo:text> generalsubdiv </xslo:text>
1850 <xslo:when test="@code = $form_subdivision_subfield">
1851 <xslo:text> formsubdiv </xslo:text>
1853 <xslo:when test="@code = $chronological_subdivision_subfield">
1854 <xslo:text> chronologicalsubdiv </xslo:text>
1856 <xslo:when test="@code = $geographic_subdivision_subfield">
1857 <xslo:text> geographicsubdiv </xslo:text>
1862 <xslo:value-of select="substring(' ', 1, 1)"/>
1866 <xslo:value-of select="."/>
1870 <xslo:value-of select="normalize-space($raw_heading)"/>
1873 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='485']">
1874 <z:index name="Match-subdivision:p Match-subdivision:s">
1875 <xslo:variable name="raw_heading">
1876 <xslo:for-each select="marc:subfield">
1877 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision:p Match-subdivision:s">
1878 <xslo:if test="position() > 1">
1880 <xslo:when test="contains('vxyz', @code)">
1882 <xslo:when test="@code = $general_subdivision_subfield">
1883 <xslo:text> generalsubdiv </xslo:text>
1885 <xslo:when test="@code = $form_subdivision_subfield">
1886 <xslo:text> formsubdiv </xslo:text>
1888 <xslo:when test="@code = $chronological_subdivision_subfield">
1889 <xslo:text> chronologicalsubdiv </xslo:text>
1891 <xslo:when test="@code = $geographic_subdivision_subfield">
1892 <xslo:text> geographicsubdiv </xslo:text>
1897 <xslo:value-of select="substring(' ', 1, 1)"/>
1901 <xslo:value-of select="."/>
1905 <xslo:value-of select="normalize-space($raw_heading)"/>
1908 <xslo:template mode="index_match_heading" match="marc:datafield[@tag='185']">
1909 <z:index name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
1910 <xslo:variable name="raw_heading">
1911 <xslo:for-each select="marc:subfield">
1912 <xslo:if test="contains('vxyz', @code)" name="Match-subdivision-see-from:p Match-subdivision-see-from:s">
1913 <xslo:if test="position() > 1">
1915 <xslo:when test="contains('vxyz', @code)">
1917 <xslo:when test="@code = $general_subdivision_subfield">
1918 <xslo:text> generalsubdiv </xslo:text>
1920 <xslo:when test="@code = $form_subdivision_subfield">
1921 <xslo:text> formsubdiv </xslo:text>
1923 <xslo:when test="@code = $chronological_subdivision_subfield">
1924 <xslo:text> chronologicalsubdiv </xslo:text>
1926 <xslo:when test="@code = $geographic_subdivision_subfield">
1927 <xslo:text> geographicsubdiv </xslo:text>
1932 <xslo:value-of select="substring(' ', 1, 1)"/>
1936 <xslo:value-of select="."/>
1940 <xslo:value-of select="normalize-space($raw_heading)"/>
1943 <xslo:variable name="form_subdivision_subfield">v</xslo:variable>
1944 <xslo:variable name="general_subdivision_subfield">x</xslo:variable>
1945 <xslo:variable name="chronological_subdivision_subfield">y</xslo:variable>
1946 <xslo:variable name="geographic_subdivision_subfield">z</xslo:variable>
1947 <xslo:template mode="index_subject_thesaurus" match="marc:controlfield[@tag='008']">
1948 <xslo:variable name="thesaurus_code1" select="substring(., 12, 1)"/>
1949 <xslo:variable name="full_thesaurus_code">
1951 <xslo:when test="$thesaurus_code1 = 'a'">
1952 <xslo:text>lcsh</xslo:text>
1954 <xslo:when test="$thesaurus_code1 = 'b'">
1955 <xslo:text>lcac</xslo:text>
1957 <xslo:when test="$thesaurus_code1 = 'c'">
1958 <xslo:text>mesh</xslo:text>
1960 <xslo:when test="$thesaurus_code1 = 'd'">
1961 <xslo:text>nal</xslo:text>
1963 <xslo:when test="$thesaurus_code1 = 'k'">
1964 <xslo:text>cash</xslo:text>
1966 <xslo:when test="$thesaurus_code1 = 'n'">
1967 <xslo:text>notapplicable</xslo:text>
1969 <xslo:when test="$thesaurus_code1 = 'r'">
1970 <xslo:text>aat</xslo:text>
1972 <xslo:when test="$thesaurus_code1 = 's'">
1973 <xslo:text>sears</xslo:text>
1975 <xslo:when test="$thesaurus_code1 = 'v'">
1976 <xslo:text>rvm</xslo:text>
1978 <xslo:when test="$thesaurus_code1 = 'z'">
1980 <xslo:when test="//marc:datafield[@tag='040']/marc:subfield[@code='f']">
1981 <xslo:value-of select="//marc:datafield[@tag='040']/marc:subfield[@code='f']"/>
1984 <xslo:text>notdefined</xslo:text>
1989 <xslo:text>notdefined</xslo:text>
1993 <z:index name="Subject-heading-thesaurus:w">
1994 <xslo:value-of select="$full_thesaurus_code"/>
1997 <xslo:template match="*">
1998 <z:index name="Any:w Any:p">
1999 <xslo:value-of select="."/>