1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 This file has been automatically generated from a Koha index definition file
4 with the stylesheet koha-indexdefs-to-zebra.xsl. Do not manually edit this file,
5 as it may be overwritten. To regenerate, edit the appropriate Koha index
6 definition file (probably something like {biblio,authority}-koha-indexdefs.xml) and run:
7 `xsltproc koha-indexdefs-to-zebra.xsl {biblio,authority}-koha-indexdefs.xml >
8 {biblio,authority}-zebra-indexdefs.xsl` (substituting the appropriate file names).
10 <xslo:stylesheet xmlns:
xslo=
"http://www.w3.org/1999/XSL/Transform" xmlns:
marc=
"http://www.loc.gov/MARC21/slim" xmlns:
z=
"http://indexdata.com/zebra-2.0" xmlns:
kohaidx=
"http://www.koha-community.org/schemas/index-defs" version=
"1.0">
11 <xslo:output indent=
"yes" method=
"xml" version=
"1.0" encoding=
"UTF-8"/>
12 <xslo:template match=
"text()"/>
13 <xslo:template match=
"text()" mode=
"index_subfields"/>
14 <xslo:template match=
"text()" mode=
"index_data_field"/>
15 <xslo:template match=
"text()" mode=
"index_heading"/>
16 <xslo:template match=
"text()" mode=
"index_heading_conditional"/>
17 <xslo:template match=
"text()" mode=
"index_match_heading"/>
18 <xslo:template match=
"text()" mode=
"index_subject_thesaurus"/>
19 <xslo:template match=
"/">
20 <xslo:if test=
"marc:collection">
22 <xslo:apply-templates select=
"marc:collection/marc:record"/>
25 <xslo:if test=
"marc:record">
26 <xslo:apply-templates select=
"marc:record"/>
29 <xslo:template match=
"marc:record">
30 <xslo:variable name=
"idfield" select=
"normalize-space(marc:controlfield[@tag='001'])"/>
31 <z:record type=
"update">
32 <xslo:attribute name=
"z:id">
33 <xslo:value-of select=
"$idfield"/>
35 <xslo:apply-templates/>
36 <xslo:apply-templates mode=
"index_subfields"/>
37 <xslo:apply-templates mode=
"index_data_field"/>
38 <xslo:apply-templates mode=
"index_heading"/>
39 <xslo:apply-templates mode=
"index_heading_conditional"/>
40 <xslo:apply-templates mode=
"index_match_heading"/>
41 <xslo:apply-templates mode=
"index_subject_thesaurus"/>
42 <xslo:apply-templates mode=
"index_all"/>
45 <xslo:template match=
"marc:leader">
46 <z:index name=
"Record-status:w">
47 <xslo:value-of select=
"substring(., 6, 1)"/>
49 <z:index name=
"Encoding-level:w">
50 <xslo:value-of select=
"substring(., 18, 1)"/>
53 <xslo:template match=
"marc:controlfield[@tag='001']">
54 <z:index name=
"Local-Number:w Local-Number:n Local-Number:s">
55 <xslo:value-of select=
"."/>
58 <xslo:template match=
"marc:controlfield[@tag='008']">
59 <z:index name=
"Kind-of-record:w">
60 <xslo:value-of select=
"substring(., 10, 1)"/>
62 <z:index name=
"Descriptive-cataloging-rules:w">
63 <xslo:value-of select=
"substring(., 11, 1)"/>
65 <z:index name=
"Heading-use-main-or-added-entry:w">
66 <xslo:value-of select=
"substring(., 15, 1)"/>
68 <z:index name=
"Heading-use-subject-added-entry:w">
69 <xslo:value-of select=
"substring(., 16, 1)"/>
71 <z:index name=
"Heading-use-series-added-entry:w">
72 <xslo:value-of select=
"substring(., 17, 1)"/>
75 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='010']">
76 <xslo:for-each select=
"marc:subfield">
77 <xslo:if test=
"contains('az', @code)">
78 <z:index name=
"LC-card-number:w LC-card-number:p">
79 <xslo:value-of select=
"."/>
84 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='040']">
85 <xslo:for-each select=
"marc:subfield">
86 <xslo:if test=
"contains('acd', @code)">
87 <z:index name=
"Record-source:w Record-source:p">
88 <xslo:value-of select=
"."/>
93 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='100']">
94 <xslo:for-each select=
"marc:subfield">
95 <xslo:if test=
"contains('abcdefghjklmnopqrstvxyz', @code)">
96 <z:index name=
"Personal-name:w Personal-name:p Personal-name:s">
97 <xslo:value-of select=
"."/>
102 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='110']">
103 <xslo:for-each select=
"marc:subfield">
104 <xslo:if test=
"contains('abcdefghklmnoprstvxyz', @code)">
105 <z:index name=
"Corporate-name:w Corporate-name:p">
106 <xslo:value-of select=
"."/>
111 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='111']">
112 <xslo:for-each select=
"marc:subfield">
113 <xslo:if test=
"contains('acdefghjklnpqstvxyz', @code)">
114 <z:index name=
"Meeting-name:w Meeting-name:p">
115 <xslo:value-of select=
"."/>
120 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='130']">
121 <xslo:for-each select=
"marc:subfield">
122 <xslo:if test=
"contains('adfghklmnoprstvxyz', @code)">
123 <z:index name=
"Title-uniform:w Title-uniform:p">
124 <xslo:value-of select=
"."/>
129 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='148']">
130 <xslo:for-each select=
"marc:subfield">
131 <xslo:if test=
"contains('avxyz', @code)">
132 <z:index name=
"Chronological-term:w Chronological-term:p">
133 <xslo:value-of select=
"."/>
138 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='150']">
139 <xslo:for-each select=
"marc:subfield">
140 <xslo:if test=
"contains('abvxyz', @code)">
141 <z:index name=
"Subject-topical:w Subject-topical:p">
142 <xslo:value-of select=
"."/>
147 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='151']">
148 <xslo:for-each select=
"marc:subfield">
149 <xslo:if test=
"contains('avxyz', @code)">
150 <z:index name=
"Name-geographic:w Name-geographic:p">
151 <xslo:value-of select=
"."/>
156 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='155']">
157 <xslo:for-each select=
"marc:subfield">
158 <xslo:if test=
"contains('avxyz', @code)">
159 <z:index name=
"Term-genre-form:w Term-genre-form:p">
160 <xslo:value-of select=
"."/>
165 <xslo:template mode=
"index_subfields" match=
"marc:datafield[@tag='942']">
166 <xslo:for-each select=
"marc:subfield">
167 <xslo:if test=
"contains('a', @code)">
168 <z:index name=
"authtype:w">
169 <xslo:value-of select=
"."/>
174 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='100']">
175 <z:index name=
"Personal-name-heading:w Personal-name-heading:p Personal-name-heading:s Heading:w Heading:p Heading:s">
176 <xslo:variable name=
"raw_heading">
177 <xslo:for-each select=
"marc:subfield">
178 <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">
179 <xslo:if test=
"position() > 1">
181 <xslo:when test=
"contains('vxyz', @code)">
182 <xslo:text>--
</xslo:text>
185 <xslo:value-of select=
"substring(' ', 1, 1)"/>
189 <xslo:value-of select=
"."/>
193 <xslo:value-of select=
"normalize-space($raw_heading)"/>
195 <z:index name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
196 <xslo:variable name=
"raw_heading">
197 <xslo:for-each select=
"marc:subfield">
198 <xslo:if test=
"contains('a', @code)" name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
199 <xslo:if test=
"position() > 1">
201 <xslo:when test=
"contains('', @code)">
202 <xslo:text>--
</xslo:text>
205 <xslo:value-of select=
"substring(' ', 1, 1)"/>
209 <xslo:value-of select=
"."/>
213 <xslo:value-of select=
"normalize-space($raw_heading)"/>
216 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='400']">
217 <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">
218 <xslo:variable name=
"raw_heading">
219 <xslo:for-each select=
"marc:subfield">
220 <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">
221 <xslo:if test=
"position() > 1">
223 <xslo:when test=
"contains('vxyz', @code)">
224 <xslo:text>--
</xslo:text>
227 <xslo:value-of select=
"substring(' ', 1, 1)"/>
231 <xslo:value-of select=
"."/>
235 <xslo:value-of select=
"normalize-space($raw_heading)"/>
238 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='500']">
239 <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">
240 <xslo:variable name=
"raw_heading">
241 <xslo:for-each select=
"marc:subfield">
242 <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">
243 <xslo:if test=
"position() > 1">
245 <xslo:when test=
"contains('vxyz', @code)">
246 <xslo:text>--
</xslo:text>
249 <xslo:value-of select=
"substring(' ', 1, 1)"/>
253 <xslo:value-of select=
"."/>
257 <xslo:value-of select=
"normalize-space($raw_heading)"/>
260 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='110']">
261 <z:index name=
"Corporate-name-heading:w Corporate-name-heading:p Corporate-name-heading:s Heading:w Heading:p Heading:s">
262 <xslo:variable name=
"raw_heading">
263 <xslo:for-each select=
"marc:subfield">
264 <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">
265 <xslo:if test=
"position() > 1">
267 <xslo:when test=
"contains('vxyz', @code)">
268 <xslo:text>--
</xslo:text>
271 <xslo:value-of select=
"substring(' ', 1, 1)"/>
275 <xslo:value-of select=
"."/>
279 <xslo:value-of select=
"normalize-space($raw_heading)"/>
281 <z:index name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
282 <xslo:variable name=
"raw_heading">
283 <xslo:for-each select=
"marc:subfield">
284 <xslo:if test=
"contains('a', @code)" name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
285 <xslo:if test=
"position() > 1">
287 <xslo:when test=
"contains('', @code)">
288 <xslo:text>--
</xslo:text>
291 <xslo:value-of select=
"substring(' ', 1, 1)"/>
295 <xslo:value-of select=
"."/>
299 <xslo:value-of select=
"normalize-space($raw_heading)"/>
302 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='410']">
303 <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">
304 <xslo:variable name=
"raw_heading">
305 <xslo:for-each select=
"marc:subfield">
306 <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">
307 <xslo:if test=
"position() > 1">
309 <xslo:when test=
"contains('vxyz', @code)">
310 <xslo:text>--
</xslo:text>
313 <xslo:value-of select=
"substring(' ', 1, 1)"/>
317 <xslo:value-of select=
"."/>
321 <xslo:value-of select=
"normalize-space($raw_heading)"/>
324 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='510']">
325 <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">
326 <xslo:variable name=
"raw_heading">
327 <xslo:for-each select=
"marc:subfield">
328 <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">
329 <xslo:if test=
"position() > 1">
331 <xslo:when test=
"contains('vxyz', @code)">
332 <xslo:text>--
</xslo:text>
335 <xslo:value-of select=
"substring(' ', 1, 1)"/>
339 <xslo:value-of select=
"."/>
343 <xslo:value-of select=
"normalize-space($raw_heading)"/>
346 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='111']">
347 <z:index name=
"Meeting-name-heading:w Meeting-name-heading:p Meeting-name-heading:s Heading:w Heading:p Heading:s">
348 <xslo:variable name=
"raw_heading">
349 <xslo:for-each select=
"marc:subfield">
350 <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">
351 <xslo:if test=
"position() > 1">
353 <xslo:when test=
"contains('vxyz', @code)">
354 <xslo:text>--
</xslo:text>
357 <xslo:value-of select=
"substring(' ', 1, 1)"/>
361 <xslo:value-of select=
"."/>
365 <xslo:value-of select=
"normalize-space($raw_heading)"/>
367 <z:index name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
368 <xslo:variable name=
"raw_heading">
369 <xslo:for-each select=
"marc:subfield">
370 <xslo:if test=
"contains('a', @code)" name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
371 <xslo:if test=
"position() > 1">
373 <xslo:when test=
"contains('', @code)">
374 <xslo:text>--
</xslo:text>
377 <xslo:value-of select=
"substring(' ', 1, 1)"/>
381 <xslo:value-of select=
"."/>
385 <xslo:value-of select=
"normalize-space($raw_heading)"/>
388 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='411']">
389 <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">
390 <xslo:variable name=
"raw_heading">
391 <xslo:for-each select=
"marc:subfield">
392 <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">
393 <xslo:if test=
"position() > 1">
395 <xslo:when test=
"contains('vxyz', @code)">
396 <xslo:text>--
</xslo:text>
399 <xslo:value-of select=
"substring(' ', 1, 1)"/>
403 <xslo:value-of select=
"."/>
407 <xslo:value-of select=
"normalize-space($raw_heading)"/>
410 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='511']">
411 <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">
412 <xslo:variable name=
"raw_heading">
413 <xslo:for-each select=
"marc:subfield">
414 <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">
415 <xslo:if test=
"position() > 1">
417 <xslo:when test=
"contains('vxyz', @code)">
418 <xslo:text>--
</xslo:text>
421 <xslo:value-of select=
"substring(' ', 1, 1)"/>
425 <xslo:value-of select=
"."/>
429 <xslo:value-of select=
"normalize-space($raw_heading)"/>
432 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='130']">
433 <z:index name=
"Title-uniform-heading:w Title-uniform-heading:p Title-uniform-heading:s Heading:w Heading:p Heading:s">
434 <xslo:variable name=
"raw_heading">
435 <xslo:for-each select=
"marc:subfield">
436 <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">
437 <xslo:if test=
"position() > 1">
439 <xslo:when test=
"contains('vxyz', @code)">
440 <xslo:text>--
</xslo:text>
443 <xslo:value-of select=
"substring(' ', 1, 1)"/>
447 <xslo:value-of select=
"."/>
451 <xslo:value-of select=
"normalize-space($raw_heading)"/>
453 <z:index name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
454 <xslo:variable name=
"raw_heading">
455 <xslo:for-each select=
"marc:subfield">
456 <xslo:if test=
"contains('a', @code)" name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
457 <xslo:if test=
"position() > 1">
459 <xslo:when test=
"contains('', @code)">
460 <xslo:text>--
</xslo:text>
463 <xslo:value-of select=
"substring(' ', 1, 1)"/>
467 <xslo:value-of select=
"."/>
471 <xslo:value-of select=
"normalize-space($raw_heading)"/>
474 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='430']">
475 <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">
476 <xslo:variable name=
"raw_heading">
477 <xslo:for-each select=
"marc:subfield">
478 <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">
479 <xslo:if test=
"position() > 1">
481 <xslo:when test=
"contains('vxyz', @code)">
482 <xslo:text>--
</xslo:text>
485 <xslo:value-of select=
"substring(' ', 1, 1)"/>
489 <xslo:value-of select=
"."/>
493 <xslo:value-of select=
"normalize-space($raw_heading)"/>
496 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='530']">
497 <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">
498 <xslo:variable name=
"raw_heading">
499 <xslo:for-each select=
"marc:subfield">
500 <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">
501 <xslo:if test=
"position() > 1">
503 <xslo:when test=
"contains('vxyz', @code)">
504 <xslo:text>--
</xslo:text>
507 <xslo:value-of select=
"substring(' ', 1, 1)"/>
511 <xslo:value-of select=
"."/>
515 <xslo:value-of select=
"normalize-space($raw_heading)"/>
518 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='148']">
519 <z:index name=
"Chronological-term-heading:w Chronological-term-heading:p Chronological-term-heading:s Heading:w Heading:p Heading:s">
520 <xslo:variable name=
"raw_heading">
521 <xslo:for-each select=
"marc:subfield">
522 <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">
523 <xslo:if test=
"position() > 1">
525 <xslo:when test=
"contains('vxyz', @code)">
526 <xslo:text>--
</xslo:text>
529 <xslo:value-of select=
"substring(' ', 1, 1)"/>
533 <xslo:value-of select=
"."/>
537 <xslo:value-of select=
"normalize-space($raw_heading)"/>
539 <z:index name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
540 <xslo:variable name=
"raw_heading">
541 <xslo:for-each select=
"marc:subfield">
542 <xslo:if test=
"contains('a', @code)" name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
543 <xslo:if test=
"position() > 1">
545 <xslo:when test=
"contains('', @code)">
546 <xslo:text>--
</xslo:text>
549 <xslo:value-of select=
"substring(' ', 1, 1)"/>
553 <xslo:value-of select=
"."/>
557 <xslo:value-of select=
"normalize-space($raw_heading)"/>
560 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='448']">
561 <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">
562 <xslo:variable name=
"raw_heading">
563 <xslo:for-each select=
"marc:subfield">
564 <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">
565 <xslo:if test=
"position() > 1">
567 <xslo:when test=
"contains('vxyz', @code)">
568 <xslo:text>--
</xslo:text>
571 <xslo:value-of select=
"substring(' ', 1, 1)"/>
575 <xslo:value-of select=
"."/>
579 <xslo:value-of select=
"normalize-space($raw_heading)"/>
582 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='548']">
583 <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">
584 <xslo:variable name=
"raw_heading">
585 <xslo:for-each select=
"marc:subfield">
586 <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">
587 <xslo:if test=
"position() > 1">
589 <xslo:when test=
"contains('vxyz', @code)">
590 <xslo:text>--
</xslo:text>
593 <xslo:value-of select=
"substring(' ', 1, 1)"/>
597 <xslo:value-of select=
"."/>
601 <xslo:value-of select=
"normalize-space($raw_heading)"/>
604 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='150']">
605 <z:index name=
"Subject-topical-heading:w Subject-topical-heading:p Subject-topical-heading:s Heading:w Heading:p Heading:s">
606 <xslo:variable name=
"raw_heading">
607 <xslo:for-each select=
"marc:subfield">
608 <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">
609 <xslo:if test=
"position() > 1">
611 <xslo:when test=
"contains('vxyz', @code)">
612 <xslo:text>--
</xslo:text>
615 <xslo:value-of select=
"substring(' ', 1, 1)"/>
619 <xslo:value-of select=
"."/>
623 <xslo:value-of select=
"normalize-space($raw_heading)"/>
625 <z:index name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
626 <xslo:variable name=
"raw_heading">
627 <xslo:for-each select=
"marc:subfield">
628 <xslo:if test=
"contains('a', @code)" name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
629 <xslo:if test=
"position() > 1">
631 <xslo:when test=
"contains('', @code)">
632 <xslo:text>--
</xslo:text>
635 <xslo:value-of select=
"substring(' ', 1, 1)"/>
639 <xslo:value-of select=
"."/>
643 <xslo:value-of select=
"normalize-space($raw_heading)"/>
646 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='450']">
647 <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">
648 <xslo:variable name=
"raw_heading">
649 <xslo:for-each select=
"marc:subfield">
650 <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">
651 <xslo:if test=
"position() > 1">
653 <xslo:when test=
"contains('vxyz', @code)">
654 <xslo:text>--
</xslo:text>
657 <xslo:value-of select=
"substring(' ', 1, 1)"/>
661 <xslo:value-of select=
"."/>
665 <xslo:value-of select=
"normalize-space($raw_heading)"/>
668 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='550']">
669 <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">
670 <xslo:variable name=
"raw_heading">
671 <xslo:for-each select=
"marc:subfield">
672 <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">
673 <xslo:if test=
"position() > 1">
675 <xslo:when test=
"contains('vxyz', @code)">
676 <xslo:text>--
</xslo:text>
679 <xslo:value-of select=
"substring(' ', 1, 1)"/>
683 <xslo:value-of select=
"."/>
687 <xslo:value-of select=
"normalize-space($raw_heading)"/>
690 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='151']">
691 <z:index name=
"Name-geographic-heading:w Name-geographic-heading:p Name-geographic-heading:s Heading:w Heading:p Heading:s">
692 <xslo:variable name=
"raw_heading">
693 <xslo:for-each select=
"marc:subfield">
694 <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">
695 <xslo:if test=
"position() > 1">
697 <xslo:when test=
"contains('vxyz', @code)">
698 <xslo:text>--
</xslo:text>
701 <xslo:value-of select=
"substring(' ', 1, 1)"/>
705 <xslo:value-of select=
"."/>
709 <xslo:value-of select=
"normalize-space($raw_heading)"/>
711 <z:index name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
712 <xslo:variable name=
"raw_heading">
713 <xslo:for-each select=
"marc:subfield">
714 <xslo:if test=
"contains('a', @code)" name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
715 <xslo:if test=
"position() > 1">
717 <xslo:when test=
"contains('', @code)">
718 <xslo:text>--
</xslo:text>
721 <xslo:value-of select=
"substring(' ', 1, 1)"/>
725 <xslo:value-of select=
"."/>
729 <xslo:value-of select=
"normalize-space($raw_heading)"/>
732 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='451']">
733 <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">
734 <xslo:variable name=
"raw_heading">
735 <xslo:for-each select=
"marc:subfield">
736 <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">
737 <xslo:if test=
"position() > 1">
739 <xslo:when test=
"contains('vxyz', @code)">
740 <xslo:text>--
</xslo:text>
743 <xslo:value-of select=
"substring(' ', 1, 1)"/>
747 <xslo:value-of select=
"."/>
751 <xslo:value-of select=
"normalize-space($raw_heading)"/>
754 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='551']">
755 <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">
756 <xslo:variable name=
"raw_heading">
757 <xslo:for-each select=
"marc:subfield">
758 <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">
759 <xslo:if test=
"position() > 1">
761 <xslo:when test=
"contains('vxyz', @code)">
762 <xslo:text>--
</xslo:text>
765 <xslo:value-of select=
"substring(' ', 1, 1)"/>
769 <xslo:value-of select=
"."/>
773 <xslo:value-of select=
"normalize-space($raw_heading)"/>
776 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='155']">
777 <z:index name=
"Term-genre-form-heading:w Term-genre-form-heading:p Term-genre-form-heading:s Heading:w Heading:p Heading:s">
778 <xslo:variable name=
"raw_heading">
779 <xslo:for-each select=
"marc:subfield">
780 <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">
781 <xslo:if test=
"position() > 1">
783 <xslo:when test=
"contains('vxyz', @code)">
784 <xslo:text>--
</xslo:text>
787 <xslo:value-of select=
"substring(' ', 1, 1)"/>
791 <xslo:value-of select=
"."/>
795 <xslo:value-of select=
"normalize-space($raw_heading)"/>
797 <z:index name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
798 <xslo:variable name=
"raw_heading">
799 <xslo:for-each select=
"marc:subfield">
800 <xslo:if test=
"contains('a', @code)" name=
"Heading-Main:w Heading-Main:p Heading-Main:s">
801 <xslo:if test=
"position() > 1">
803 <xslo:when test=
"contains('', @code)">
804 <xslo:text>--
</xslo:text>
807 <xslo:value-of select=
"substring(' ', 1, 1)"/>
811 <xslo:value-of select=
"."/>
815 <xslo:value-of select=
"normalize-space($raw_heading)"/>
818 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='455']">
819 <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">
820 <xslo:variable name=
"raw_heading">
821 <xslo:for-each select=
"marc:subfield">
822 <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">
823 <xslo:if test=
"position() > 1">
825 <xslo:when test=
"contains('vxyz', @code)">
826 <xslo:text>--
</xslo:text>
829 <xslo:value-of select=
"substring(' ', 1, 1)"/>
833 <xslo:value-of select=
"."/>
837 <xslo:value-of select=
"normalize-space($raw_heading)"/>
840 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='555']">
841 <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">
842 <xslo:variable name=
"raw_heading">
843 <xslo:for-each select=
"marc:subfield">
844 <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">
845 <xslo:if test=
"position() > 1">
847 <xslo:when test=
"contains('vxyz', @code)">
848 <xslo:text>--
</xslo:text>
851 <xslo:value-of select=
"substring(' ', 1, 1)"/>
855 <xslo:value-of select=
"."/>
859 <xslo:value-of select=
"normalize-space($raw_heading)"/>
862 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='180']">
863 <z:index name=
"General-subdivision:w General-subdivision:p General-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
864 <xslo:variable name=
"raw_heading">
865 <xslo:for-each select=
"marc:subfield">
866 <xslo:if test=
"contains('vxyz', @code)" name=
"General-subdivision:w General-subdivision:p General-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
867 <xslo:if test=
"position() > 1">
869 <xslo:when test=
"contains('vxyz', @code)">
870 <xslo:text>--
</xslo:text>
873 <xslo:value-of select=
"substring(' ', 1, 1)"/>
877 <xslo:value-of select=
"."/>
881 <xslo:value-of select=
"normalize-space($raw_heading)"/>
884 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='480']">
885 <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">
886 <xslo:variable name=
"raw_heading">
887 <xslo:for-each select=
"marc:subfield">
888 <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">
889 <xslo:if test=
"position() > 1">
891 <xslo:when test=
"contains('vxyz', @code)">
892 <xslo:text>--
</xslo:text>
895 <xslo:value-of select=
"substring(' ', 1, 1)"/>
899 <xslo:value-of select=
"."/>
903 <xslo:value-of select=
"normalize-space($raw_heading)"/>
906 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='580']">
907 <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">
908 <xslo:variable name=
"raw_heading">
909 <xslo:for-each select=
"marc:subfield">
910 <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">
911 <xslo:if test=
"position() > 1">
913 <xslo:when test=
"contains('vxyz', @code)">
914 <xslo:text>--
</xslo:text>
917 <xslo:value-of select=
"substring(' ', 1, 1)"/>
921 <xslo:value-of select=
"."/>
925 <xslo:value-of select=
"normalize-space($raw_heading)"/>
928 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='181']">
929 <z:index name=
"Geographic-subdivision:w Geographic-subdivision:p Geographic-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
930 <xslo:variable name=
"raw_heading">
931 <xslo:for-each select=
"marc:subfield">
932 <xslo:if test=
"contains('vxyz', @code)" name=
"Geographic-subdivision:w Geographic-subdivision:p Geographic-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
933 <xslo:if test=
"position() > 1">
935 <xslo:when test=
"contains('vxyz', @code)">
936 <xslo:text>--
</xslo:text>
939 <xslo:value-of select=
"substring(' ', 1, 1)"/>
943 <xslo:value-of select=
"."/>
947 <xslo:value-of select=
"normalize-space($raw_heading)"/>
950 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='481']">
951 <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">
952 <xslo:variable name=
"raw_heading">
953 <xslo:for-each select=
"marc:subfield">
954 <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">
955 <xslo:if test=
"position() > 1">
957 <xslo:when test=
"contains('vxyz', @code)">
958 <xslo:text>--
</xslo:text>
961 <xslo:value-of select=
"substring(' ', 1, 1)"/>
965 <xslo:value-of select=
"."/>
969 <xslo:value-of select=
"normalize-space($raw_heading)"/>
972 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='581']">
973 <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">
974 <xslo:variable name=
"raw_heading">
975 <xslo:for-each select=
"marc:subfield">
976 <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">
977 <xslo:if test=
"position() > 1">
979 <xslo:when test=
"contains('vxyz', @code)">
980 <xslo:text>--
</xslo:text>
983 <xslo:value-of select=
"substring(' ', 1, 1)"/>
987 <xslo:value-of select=
"."/>
991 <xslo:value-of select=
"normalize-space($raw_heading)"/>
994 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='182']">
995 <z:index name=
"Chronological-subdivision:w Chronological-subdivision:p Chronological-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
996 <xslo:variable name=
"raw_heading">
997 <xslo:for-each select=
"marc:subfield">
998 <xslo:if test=
"contains('vxyz', @code)" name=
"Chronological-subdivision:w Chronological-subdivision:p Chronological-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
999 <xslo:if test=
"position() > 1">
1001 <xslo:when test=
"contains('vxyz', @code)">
1002 <xslo:text>--
</xslo:text>
1005 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1009 <xslo:value-of select=
"."/>
1013 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1016 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='482']">
1017 <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">
1018 <xslo:variable name=
"raw_heading">
1019 <xslo:for-each select=
"marc:subfield">
1020 <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">
1021 <xslo:if test=
"position() > 1">
1023 <xslo:when test=
"contains('vxyz', @code)">
1024 <xslo:text>--
</xslo:text>
1027 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1031 <xslo:value-of select=
"."/>
1035 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1038 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='582']">
1039 <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">
1040 <xslo:variable name=
"raw_heading">
1041 <xslo:for-each select=
"marc:subfield">
1042 <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">
1043 <xslo:if test=
"position() > 1">
1045 <xslo:when test=
"contains('vxyz', @code)">
1046 <xslo:text>--
</xslo:text>
1049 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1053 <xslo:value-of select=
"."/>
1057 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1060 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='185']">
1061 <z:index name=
"Form-subdivision:w Form-subdivision:p Form-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
1062 <xslo:variable name=
"raw_heading">
1063 <xslo:for-each select=
"marc:subfield">
1064 <xslo:if test=
"contains('vxyz', @code)" name=
"Form-subdivision:w Form-subdivision:p Form-subdivision:s Subdivision:w Subdivision:p Subdivision:s">
1065 <xslo:if test=
"position() > 1">
1067 <xslo:when test=
"contains('vxyz', @code)">
1068 <xslo:text>--
</xslo:text>
1071 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1075 <xslo:value-of select=
"."/>
1079 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1082 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='485']">
1083 <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">
1084 <xslo:variable name=
"raw_heading">
1085 <xslo:for-each select=
"marc:subfield">
1086 <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">
1087 <xslo:if test=
"position() > 1">
1089 <xslo:when test=
"contains('vxyz', @code)">
1090 <xslo:text>--
</xslo:text>
1093 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1097 <xslo:value-of select=
"."/>
1101 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1104 <xslo:template mode=
"index_heading" match=
"marc:datafield[@tag='585']">
1105 <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">
1106 <xslo:variable name=
"raw_heading">
1107 <xslo:for-each select=
"marc:subfield">
1108 <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">
1109 <xslo:if test=
"position() > 1">
1111 <xslo:when test=
"contains('vxyz', @code)">
1112 <xslo:text>--
</xslo:text>
1115 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1119 <xslo:value-of select=
"."/>
1123 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1126 <xslo:template mode=
"index_heading_conditional" match=
"marc:datafield[@tag='450']">
1127 <xslo:if test=
"substring(marc:subfield[@code='w']/text(), 2, 1)">
1128 <z:index name=
"Previous-heading-see-from:p">
1129 <xslo:variable name=
"raw_heading">
1130 <xslo:for-each select=
"marc:subfield">
1131 <xslo:if test=
"contains('abvxyz', @code)" name=
"Previous-heading-see-from:p">
1132 <xslo:if test=
"position() > 1">
1134 <xslo:when test=
"contains('vxyz', @code)">
1135 <xslo:text>--
</xslo:text>
1138 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1142 <xslo:value-of select=
"."/>
1146 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1150 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='100']">
1151 <z:index name=
"Match:w Match:p Match-heading:p Match-heading:s">
1152 <xslo:variable name=
"raw_heading">
1153 <xslo:for-each select=
"marc:subfield">
1154 <xslo:if test=
"contains('abcdefghjklmnopqrstvxyz', @code)" name=
"Match:w Match:p Match-heading:p Match-heading:s">
1155 <xslo:if test=
"position() > 1">
1157 <xslo:when test=
"contains('vxyz', @code)">
1159 <xslo:when test=
"@code = $general_subdivision_subfield">
1160 <xslo:text> generalsubdiv
</xslo:text>
1162 <xslo:when test=
"@code = $form_subdivision_subfield">
1163 <xslo:text> formsubdiv
</xslo:text>
1165 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1166 <xslo:text> chronologicalsubdiv
</xslo:text>
1168 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1169 <xslo:text> geographicsubdiv
</xslo:text>
1174 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1178 <xslo:call-template name=
"chopPunctuation">
1179 <xslo:with-param name=
"chopString">
1180 <xslo:value-of select=
"."/>
1182 </xslo:call-template>
1186 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1189 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='400']">
1190 <z:index name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1191 <xslo:variable name=
"raw_heading">
1192 <xslo:for-each select=
"marc:subfield">
1193 <xslo:if test=
"contains('abcdefghjklmnopqrstvxyz', @code)" name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1194 <xslo:if test=
"position() > 1">
1196 <xslo:when test=
"contains('vxyz', @code)">
1198 <xslo:when test=
"@code = $general_subdivision_subfield">
1199 <xslo:text> generalsubdiv
</xslo:text>
1201 <xslo:when test=
"@code = $form_subdivision_subfield">
1202 <xslo:text> formsubdiv
</xslo:text>
1204 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1205 <xslo:text> chronologicalsubdiv
</xslo:text>
1207 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1208 <xslo:text> geographicsubdiv
</xslo:text>
1213 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1217 <xslo:call-template name=
"chopPunctuation">
1218 <xslo:with-param name=
"chopString">
1219 <xslo:value-of select=
"."/>
1221 </xslo:call-template>
1225 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1228 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='500']">
1229 <z:index name=
"Match:w Match:p">
1230 <xslo:variable name=
"raw_heading">
1231 <xslo:for-each select=
"marc:subfield">
1232 <xslo:if test=
"contains('abcdefghjklmnopqrstvxyz', @code)" name=
"Match:w Match:p">
1233 <xslo:if test=
"position() > 1">
1235 <xslo:when test=
"contains('vxyz', @code)">
1237 <xslo:when test=
"@code = $general_subdivision_subfield">
1238 <xslo:text> generalsubdiv
</xslo:text>
1240 <xslo:when test=
"@code = $form_subdivision_subfield">
1241 <xslo:text> formsubdiv
</xslo:text>
1243 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1244 <xslo:text> chronologicalsubdiv
</xslo:text>
1246 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1247 <xslo:text> geographicsubdiv
</xslo:text>
1252 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1256 <xslo:call-template name=
"chopPunctuation">
1257 <xslo:with-param name=
"chopString">
1258 <xslo:value-of select=
"."/>
1260 </xslo:call-template>
1264 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1267 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='110']">
1268 <z:index name=
"Match:w Match:p Match-heading:p Match-heading:s">
1269 <xslo:variable name=
"raw_heading">
1270 <xslo:for-each select=
"marc:subfield">
1271 <xslo:if test=
"contains('abcdefghklmnoprstvxyz', @code)" name=
"Match:w Match:p Match-heading:p Match-heading:s">
1272 <xslo:if test=
"position() > 1">
1274 <xslo:when test=
"contains('vxyz', @code)">
1276 <xslo:when test=
"@code = $general_subdivision_subfield">
1277 <xslo:text> generalsubdiv
</xslo:text>
1279 <xslo:when test=
"@code = $form_subdivision_subfield">
1280 <xslo:text> formsubdiv
</xslo:text>
1282 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1283 <xslo:text> chronologicalsubdiv
</xslo:text>
1285 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1286 <xslo:text> geographicsubdiv
</xslo:text>
1291 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1295 <xslo:call-template name=
"chopPunctuation">
1296 <xslo:with-param name=
"chopString">
1297 <xslo:value-of select=
"."/>
1299 </xslo:call-template>
1303 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1306 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='410']">
1307 <z:index name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1308 <xslo:variable name=
"raw_heading">
1309 <xslo:for-each select=
"marc:subfield">
1310 <xslo:if test=
"contains('abcdefghklmnoprstvxyz', @code)" name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1311 <xslo:if test=
"position() > 1">
1313 <xslo:when test=
"contains('vxyz', @code)">
1315 <xslo:when test=
"@code = $general_subdivision_subfield">
1316 <xslo:text> generalsubdiv
</xslo:text>
1318 <xslo:when test=
"@code = $form_subdivision_subfield">
1319 <xslo:text> formsubdiv
</xslo:text>
1321 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1322 <xslo:text> chronologicalsubdiv
</xslo:text>
1324 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1325 <xslo:text> geographicsubdiv
</xslo:text>
1330 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1334 <xslo:call-template name=
"chopPunctuation">
1335 <xslo:with-param name=
"chopString">
1336 <xslo:value-of select=
"."/>
1338 </xslo:call-template>
1342 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1345 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='510']">
1346 <z:index name=
"Match:w Match:p">
1347 <xslo:variable name=
"raw_heading">
1348 <xslo:for-each select=
"marc:subfield">
1349 <xslo:if test=
"contains('abcdefghklmnoprstvxyz', @code)" name=
"Match:w Match:p">
1350 <xslo:if test=
"position() > 1">
1352 <xslo:when test=
"contains('vxyz', @code)">
1354 <xslo:when test=
"@code = $general_subdivision_subfield">
1355 <xslo:text> generalsubdiv
</xslo:text>
1357 <xslo:when test=
"@code = $form_subdivision_subfield">
1358 <xslo:text> formsubdiv
</xslo:text>
1360 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1361 <xslo:text> chronologicalsubdiv
</xslo:text>
1363 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1364 <xslo:text> geographicsubdiv
</xslo:text>
1369 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1373 <xslo:call-template name=
"chopPunctuation">
1374 <xslo:with-param name=
"chopString">
1375 <xslo:value-of select=
"."/>
1377 </xslo:call-template>
1381 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1384 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='111']">
1385 <z:index name=
"Match:w Match:p Match-heading:p Match-heading:s">
1386 <xslo:variable name=
"raw_heading">
1387 <xslo:for-each select=
"marc:subfield">
1388 <xslo:if test=
"contains('acdefghjklnpqstvxyz', @code)" name=
"Match:w Match:p Match-heading:p Match-heading:s">
1389 <xslo:if test=
"position() > 1">
1391 <xslo:when test=
"contains('vxyz', @code)">
1393 <xslo:when test=
"@code = $general_subdivision_subfield">
1394 <xslo:text> generalsubdiv
</xslo:text>
1396 <xslo:when test=
"@code = $form_subdivision_subfield">
1397 <xslo:text> formsubdiv
</xslo:text>
1399 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1400 <xslo:text> chronologicalsubdiv
</xslo:text>
1402 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1403 <xslo:text> geographicsubdiv
</xslo:text>
1408 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1412 <xslo:call-template name=
"chopPunctuation">
1413 <xslo:with-param name=
"chopString">
1414 <xslo:value-of select=
"."/>
1416 </xslo:call-template>
1420 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1423 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='411']">
1424 <z:index name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1425 <xslo:variable name=
"raw_heading">
1426 <xslo:for-each select=
"marc:subfield">
1427 <xslo:if test=
"contains('acdefghjklnpqstvxyz', @code)" name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1428 <xslo:if test=
"position() > 1">
1430 <xslo:when test=
"contains('vxyz', @code)">
1432 <xslo:when test=
"@code = $general_subdivision_subfield">
1433 <xslo:text> generalsubdiv
</xslo:text>
1435 <xslo:when test=
"@code = $form_subdivision_subfield">
1436 <xslo:text> formsubdiv
</xslo:text>
1438 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1439 <xslo:text> chronologicalsubdiv
</xslo:text>
1441 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1442 <xslo:text> geographicsubdiv
</xslo:text>
1447 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1451 <xslo:call-template name=
"chopPunctuation">
1452 <xslo:with-param name=
"chopString">
1453 <xslo:value-of select=
"."/>
1455 </xslo:call-template>
1459 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1462 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='511']">
1463 <z:index name=
"Match:w Match:p">
1464 <xslo:variable name=
"raw_heading">
1465 <xslo:for-each select=
"marc:subfield">
1466 <xslo:if test=
"contains('acdefghjklnpqstvxyz', @code)" name=
"Match:w Match:p">
1467 <xslo:if test=
"position() > 1">
1469 <xslo:when test=
"contains('vxyz', @code)">
1471 <xslo:when test=
"@code = $general_subdivision_subfield">
1472 <xslo:text> generalsubdiv
</xslo:text>
1474 <xslo:when test=
"@code = $form_subdivision_subfield">
1475 <xslo:text> formsubdiv
</xslo:text>
1477 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1478 <xslo:text> chronologicalsubdiv
</xslo:text>
1480 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1481 <xslo:text> geographicsubdiv
</xslo:text>
1486 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1490 <xslo:call-template name=
"chopPunctuation">
1491 <xslo:with-param name=
"chopString">
1492 <xslo:value-of select=
"."/>
1494 </xslo:call-template>
1498 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1501 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='130']">
1502 <z:index name=
"Match:w Match:p Match-heading:p Match-heading:s">
1503 <xslo:variable name=
"raw_heading">
1504 <xslo:for-each select=
"marc:subfield">
1505 <xslo:if test=
"contains('adfghklmnoprstvxyz', @code)" name=
"Match:w Match:p Match-heading:p Match-heading:s">
1506 <xslo:if test=
"position() > 1">
1508 <xslo:when test=
"contains('vxyz', @code)">
1510 <xslo:when test=
"@code = $general_subdivision_subfield">
1511 <xslo:text> generalsubdiv
</xslo:text>
1513 <xslo:when test=
"@code = $form_subdivision_subfield">
1514 <xslo:text> formsubdiv
</xslo:text>
1516 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1517 <xslo:text> chronologicalsubdiv
</xslo:text>
1519 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1520 <xslo:text> geographicsubdiv
</xslo:text>
1525 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1529 <xslo:call-template name=
"chopPunctuation">
1530 <xslo:with-param name=
"chopString">
1531 <xslo:value-of select=
"."/>
1533 </xslo:call-template>
1537 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1540 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='430']">
1541 <z:index name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1542 <xslo:variable name=
"raw_heading">
1543 <xslo:for-each select=
"marc:subfield">
1544 <xslo:if test=
"contains('adfghklmnoprstvxyz', @code)" name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1545 <xslo:if test=
"position() > 1">
1547 <xslo:when test=
"contains('vxyz', @code)">
1549 <xslo:when test=
"@code = $general_subdivision_subfield">
1550 <xslo:text> generalsubdiv
</xslo:text>
1552 <xslo:when test=
"@code = $form_subdivision_subfield">
1553 <xslo:text> formsubdiv
</xslo:text>
1555 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1556 <xslo:text> chronologicalsubdiv
</xslo:text>
1558 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1559 <xslo:text> geographicsubdiv
</xslo:text>
1564 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1568 <xslo:call-template name=
"chopPunctuation">
1569 <xslo:with-param name=
"chopString">
1570 <xslo:value-of select=
"."/>
1572 </xslo:call-template>
1576 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1579 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='530']">
1580 <z:index name=
"Match:w Match:p">
1581 <xslo:variable name=
"raw_heading">
1582 <xslo:for-each select=
"marc:subfield">
1583 <xslo:if test=
"contains('adfghklmnoprstvxyz', @code)" name=
"Match:w Match:p">
1584 <xslo:if test=
"position() > 1">
1586 <xslo:when test=
"contains('vxyz', @code)">
1588 <xslo:when test=
"@code = $general_subdivision_subfield">
1589 <xslo:text> generalsubdiv
</xslo:text>
1591 <xslo:when test=
"@code = $form_subdivision_subfield">
1592 <xslo:text> formsubdiv
</xslo:text>
1594 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1595 <xslo:text> chronologicalsubdiv
</xslo:text>
1597 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1598 <xslo:text> geographicsubdiv
</xslo:text>
1603 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1607 <xslo:call-template name=
"chopPunctuation">
1608 <xslo:with-param name=
"chopString">
1609 <xslo:value-of select=
"."/>
1611 </xslo:call-template>
1615 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1618 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='148']">
1619 <z:index name=
"Match:w Match:p Match-heading:p Match-heading:s">
1620 <xslo:variable name=
"raw_heading">
1621 <xslo:for-each select=
"marc:subfield">
1622 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p Match-heading:p Match-heading:s">
1623 <xslo:if test=
"position() > 1">
1625 <xslo:when test=
"contains('vxyz', @code)">
1627 <xslo:when test=
"@code = $general_subdivision_subfield">
1628 <xslo:text> generalsubdiv
</xslo:text>
1630 <xslo:when test=
"@code = $form_subdivision_subfield">
1631 <xslo:text> formsubdiv
</xslo:text>
1633 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1634 <xslo:text> chronologicalsubdiv
</xslo:text>
1636 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1637 <xslo:text> geographicsubdiv
</xslo:text>
1642 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1646 <xslo:call-template name=
"chopPunctuation">
1647 <xslo:with-param name=
"chopString">
1648 <xslo:value-of select=
"."/>
1650 </xslo:call-template>
1654 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1657 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='448']">
1658 <z:index name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1659 <xslo:variable name=
"raw_heading">
1660 <xslo:for-each select=
"marc:subfield">
1661 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1662 <xslo:if test=
"position() > 1">
1664 <xslo:when test=
"contains('vxyz', @code)">
1666 <xslo:when test=
"@code = $general_subdivision_subfield">
1667 <xslo:text> generalsubdiv
</xslo:text>
1669 <xslo:when test=
"@code = $form_subdivision_subfield">
1670 <xslo:text> formsubdiv
</xslo:text>
1672 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1673 <xslo:text> chronologicalsubdiv
</xslo:text>
1675 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1676 <xslo:text> geographicsubdiv
</xslo:text>
1681 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1685 <xslo:call-template name=
"chopPunctuation">
1686 <xslo:with-param name=
"chopString">
1687 <xslo:value-of select=
"."/>
1689 </xslo:call-template>
1693 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1696 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='548']">
1697 <z:index name=
"Match:w Match:p">
1698 <xslo:variable name=
"raw_heading">
1699 <xslo:for-each select=
"marc:subfield">
1700 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p">
1701 <xslo:if test=
"position() > 1">
1703 <xslo:when test=
"contains('vxyz', @code)">
1705 <xslo:when test=
"@code = $general_subdivision_subfield">
1706 <xslo:text> generalsubdiv
</xslo:text>
1708 <xslo:when test=
"@code = $form_subdivision_subfield">
1709 <xslo:text> formsubdiv
</xslo:text>
1711 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1712 <xslo:text> chronologicalsubdiv
</xslo:text>
1714 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1715 <xslo:text> geographicsubdiv
</xslo:text>
1720 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1724 <xslo:call-template name=
"chopPunctuation">
1725 <xslo:with-param name=
"chopString">
1726 <xslo:value-of select=
"."/>
1728 </xslo:call-template>
1732 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1735 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='150']">
1736 <z:index name=
"Match:w Match:p Match-heading:p Match-heading:s">
1737 <xslo:variable name=
"raw_heading">
1738 <xslo:for-each select=
"marc:subfield">
1739 <xslo:if test=
"contains('abvxyz', @code)" name=
"Match:w Match:p Match-heading:p Match-heading:s">
1740 <xslo:if test=
"position() > 1">
1742 <xslo:when test=
"contains('vxyz', @code)">
1744 <xslo:when test=
"@code = $general_subdivision_subfield">
1745 <xslo:text> generalsubdiv
</xslo:text>
1747 <xslo:when test=
"@code = $form_subdivision_subfield">
1748 <xslo:text> formsubdiv
</xslo:text>
1750 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1751 <xslo:text> chronologicalsubdiv
</xslo:text>
1753 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1754 <xslo:text> geographicsubdiv
</xslo:text>
1759 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1763 <xslo:call-template name=
"chopPunctuation">
1764 <xslo:with-param name=
"chopString">
1765 <xslo:value-of select=
"."/>
1767 </xslo:call-template>
1771 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1774 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='450']">
1775 <z:index name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1776 <xslo:variable name=
"raw_heading">
1777 <xslo:for-each select=
"marc:subfield">
1778 <xslo:if test=
"contains('abvxyz', @code)" name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1779 <xslo:if test=
"position() > 1">
1781 <xslo:when test=
"contains('vxyz', @code)">
1783 <xslo:when test=
"@code = $general_subdivision_subfield">
1784 <xslo:text> generalsubdiv
</xslo:text>
1786 <xslo:when test=
"@code = $form_subdivision_subfield">
1787 <xslo:text> formsubdiv
</xslo:text>
1789 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1790 <xslo:text> chronologicalsubdiv
</xslo:text>
1792 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1793 <xslo:text> geographicsubdiv
</xslo:text>
1798 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1802 <xslo:call-template name=
"chopPunctuation">
1803 <xslo:with-param name=
"chopString">
1804 <xslo:value-of select=
"."/>
1806 </xslo:call-template>
1810 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1813 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='550']">
1814 <z:index name=
"Match:w Match:p">
1815 <xslo:variable name=
"raw_heading">
1816 <xslo:for-each select=
"marc:subfield">
1817 <xslo:if test=
"contains('abvxyz', @code)" name=
"Match:w Match:p">
1818 <xslo:if test=
"position() > 1">
1820 <xslo:when test=
"contains('vxyz', @code)">
1822 <xslo:when test=
"@code = $general_subdivision_subfield">
1823 <xslo:text> generalsubdiv
</xslo:text>
1825 <xslo:when test=
"@code = $form_subdivision_subfield">
1826 <xslo:text> formsubdiv
</xslo:text>
1828 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1829 <xslo:text> chronologicalsubdiv
</xslo:text>
1831 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1832 <xslo:text> geographicsubdiv
</xslo:text>
1837 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1841 <xslo:call-template name=
"chopPunctuation">
1842 <xslo:with-param name=
"chopString">
1843 <xslo:value-of select=
"."/>
1845 </xslo:call-template>
1849 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1852 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='151']">
1853 <z:index name=
"Match:w Match:p Match-heading:p Match-heading:s">
1854 <xslo:variable name=
"raw_heading">
1855 <xslo:for-each select=
"marc:subfield">
1856 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p Match-heading:p Match-heading:s">
1857 <xslo:if test=
"position() > 1">
1859 <xslo:when test=
"contains('vxyz', @code)">
1861 <xslo:when test=
"@code = $general_subdivision_subfield">
1862 <xslo:text> generalsubdiv
</xslo:text>
1864 <xslo:when test=
"@code = $form_subdivision_subfield">
1865 <xslo:text> formsubdiv
</xslo:text>
1867 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1868 <xslo:text> chronologicalsubdiv
</xslo:text>
1870 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1871 <xslo:text> geographicsubdiv
</xslo:text>
1876 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1880 <xslo:call-template name=
"chopPunctuation">
1881 <xslo:with-param name=
"chopString">
1882 <xslo:value-of select=
"."/>
1884 </xslo:call-template>
1888 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1891 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='451']">
1892 <z:index name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1893 <xslo:variable name=
"raw_heading">
1894 <xslo:for-each select=
"marc:subfield">
1895 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
1896 <xslo:if test=
"position() > 1">
1898 <xslo:when test=
"contains('vxyz', @code)">
1900 <xslo:when test=
"@code = $general_subdivision_subfield">
1901 <xslo:text> generalsubdiv
</xslo:text>
1903 <xslo:when test=
"@code = $form_subdivision_subfield">
1904 <xslo:text> formsubdiv
</xslo:text>
1906 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1907 <xslo:text> chronologicalsubdiv
</xslo:text>
1909 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1910 <xslo:text> geographicsubdiv
</xslo:text>
1915 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1919 <xslo:call-template name=
"chopPunctuation">
1920 <xslo:with-param name=
"chopString">
1921 <xslo:value-of select=
"."/>
1923 </xslo:call-template>
1927 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1930 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='551']">
1931 <z:index name=
"Match:w Match:p">
1932 <xslo:variable name=
"raw_heading">
1933 <xslo:for-each select=
"marc:subfield">
1934 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p">
1935 <xslo:if test=
"position() > 1">
1937 <xslo:when test=
"contains('vxyz', @code)">
1939 <xslo:when test=
"@code = $general_subdivision_subfield">
1940 <xslo:text> generalsubdiv
</xslo:text>
1942 <xslo:when test=
"@code = $form_subdivision_subfield">
1943 <xslo:text> formsubdiv
</xslo:text>
1945 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1946 <xslo:text> chronologicalsubdiv
</xslo:text>
1948 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1949 <xslo:text> geographicsubdiv
</xslo:text>
1954 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1958 <xslo:call-template name=
"chopPunctuation">
1959 <xslo:with-param name=
"chopString">
1960 <xslo:value-of select=
"."/>
1962 </xslo:call-template>
1966 <xslo:value-of select=
"normalize-space($raw_heading)"/>
1969 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='155']">
1970 <z:index name=
"Match:w Match:p Match-heading:p Match-heading:s">
1971 <xslo:variable name=
"raw_heading">
1972 <xslo:for-each select=
"marc:subfield">
1973 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p Match-heading:p Match-heading:s">
1974 <xslo:if test=
"position() > 1">
1976 <xslo:when test=
"contains('vxyz', @code)">
1978 <xslo:when test=
"@code = $general_subdivision_subfield">
1979 <xslo:text> generalsubdiv
</xslo:text>
1981 <xslo:when test=
"@code = $form_subdivision_subfield">
1982 <xslo:text> formsubdiv
</xslo:text>
1984 <xslo:when test=
"@code = $chronological_subdivision_subfield">
1985 <xslo:text> chronologicalsubdiv
</xslo:text>
1987 <xslo:when test=
"@code = $geographic_subdivision_subfield">
1988 <xslo:text> geographicsubdiv
</xslo:text>
1993 <xslo:value-of select=
"substring(' ', 1, 1)"/>
1997 <xslo:call-template name=
"chopPunctuation">
1998 <xslo:with-param name=
"chopString">
1999 <xslo:value-of select=
"."/>
2001 </xslo:call-template>
2005 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2008 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='455']">
2009 <z:index name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
2010 <xslo:variable name=
"raw_heading">
2011 <xslo:for-each select=
"marc:subfield">
2012 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p Match-heading-see-from:p Match-heading-see-from:s">
2013 <xslo:if test=
"position() > 1">
2015 <xslo:when test=
"contains('vxyz', @code)">
2017 <xslo:when test=
"@code = $general_subdivision_subfield">
2018 <xslo:text> generalsubdiv
</xslo:text>
2020 <xslo:when test=
"@code = $form_subdivision_subfield">
2021 <xslo:text> formsubdiv
</xslo:text>
2023 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2024 <xslo:text> chronologicalsubdiv
</xslo:text>
2026 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2027 <xslo:text> geographicsubdiv
</xslo:text>
2032 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2036 <xslo:call-template name=
"chopPunctuation">
2037 <xslo:with-param name=
"chopString">
2038 <xslo:value-of select=
"."/>
2040 </xslo:call-template>
2044 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2047 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='555']">
2048 <z:index name=
"Match:w Match:p">
2049 <xslo:variable name=
"raw_heading">
2050 <xslo:for-each select=
"marc:subfield">
2051 <xslo:if test=
"contains('avxyz', @code)" name=
"Match:w Match:p">
2052 <xslo:if test=
"position() > 1">
2054 <xslo:when test=
"contains('vxyz', @code)">
2056 <xslo:when test=
"@code = $general_subdivision_subfield">
2057 <xslo:text> generalsubdiv
</xslo:text>
2059 <xslo:when test=
"@code = $form_subdivision_subfield">
2060 <xslo:text> formsubdiv
</xslo:text>
2062 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2063 <xslo:text> chronologicalsubdiv
</xslo:text>
2065 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2066 <xslo:text> geographicsubdiv
</xslo:text>
2071 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2075 <xslo:call-template name=
"chopPunctuation">
2076 <xslo:with-param name=
"chopString">
2077 <xslo:value-of select=
"."/>
2079 </xslo:call-template>
2083 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2086 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='180']">
2087 <z:index name=
"Match-subdivision:p Match-subdivision:s">
2088 <xslo:variable name=
"raw_heading">
2089 <xslo:for-each select=
"marc:subfield">
2090 <xslo:if test=
"contains('vxyz', @code)" name=
"Match-subdivision:p Match-subdivision:s">
2091 <xslo:if test=
"position() > 1">
2093 <xslo:when test=
"contains('vxyz', @code)">
2095 <xslo:when test=
"@code = $general_subdivision_subfield">
2096 <xslo:text> generalsubdiv
</xslo:text>
2098 <xslo:when test=
"@code = $form_subdivision_subfield">
2099 <xslo:text> formsubdiv
</xslo:text>
2101 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2102 <xslo:text> chronologicalsubdiv
</xslo:text>
2104 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2105 <xslo:text> geographicsubdiv
</xslo:text>
2110 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2114 <xslo:call-template name=
"chopPunctuation">
2115 <xslo:with-param name=
"chopString">
2116 <xslo:value-of select=
"."/>
2118 </xslo:call-template>
2122 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2125 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='480']">
2126 <z:index name=
"Match-subdivision-see-from:p Match-subdivision-see-from:s">
2127 <xslo:variable name=
"raw_heading">
2128 <xslo:for-each select=
"marc:subfield">
2129 <xslo:if test=
"contains('vxyz', @code)" name=
"Match-subdivision-see-from:p Match-subdivision-see-from:s">
2130 <xslo:if test=
"position() > 1">
2132 <xslo:when test=
"contains('vxyz', @code)">
2134 <xslo:when test=
"@code = $general_subdivision_subfield">
2135 <xslo:text> generalsubdiv
</xslo:text>
2137 <xslo:when test=
"@code = $form_subdivision_subfield">
2138 <xslo:text> formsubdiv
</xslo:text>
2140 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2141 <xslo:text> chronologicalsubdiv
</xslo:text>
2143 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2144 <xslo:text> geographicsubdiv
</xslo:text>
2149 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2153 <xslo:call-template name=
"chopPunctuation">
2154 <xslo:with-param name=
"chopString">
2155 <xslo:value-of select=
"."/>
2157 </xslo:call-template>
2161 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2164 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='181']">
2165 <z:index name=
"Match-subdivision:p Match-subdivision:s">
2166 <xslo:variable name=
"raw_heading">
2167 <xslo:for-each select=
"marc:subfield">
2168 <xslo:if test=
"contains('vxyz', @code)" name=
"Match-subdivision:p Match-subdivision:s">
2169 <xslo:if test=
"position() > 1">
2171 <xslo:when test=
"contains('vxyz', @code)">
2173 <xslo:when test=
"@code = $general_subdivision_subfield">
2174 <xslo:text> generalsubdiv
</xslo:text>
2176 <xslo:when test=
"@code = $form_subdivision_subfield">
2177 <xslo:text> formsubdiv
</xslo:text>
2179 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2180 <xslo:text> chronologicalsubdiv
</xslo:text>
2182 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2183 <xslo:text> geographicsubdiv
</xslo:text>
2188 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2192 <xslo:call-template name=
"chopPunctuation">
2193 <xslo:with-param name=
"chopString">
2194 <xslo:value-of select=
"."/>
2196 </xslo:call-template>
2200 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2203 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='481']">
2204 <z:index name=
"Match-subdivision-see-from:p Match-subdivision-see-from:s">
2205 <xslo:variable name=
"raw_heading">
2206 <xslo:for-each select=
"marc:subfield">
2207 <xslo:if test=
"contains('vxyz', @code)" name=
"Match-subdivision-see-from:p Match-subdivision-see-from:s">
2208 <xslo:if test=
"position() > 1">
2210 <xslo:when test=
"contains('vxyz', @code)">
2212 <xslo:when test=
"@code = $general_subdivision_subfield">
2213 <xslo:text> generalsubdiv
</xslo:text>
2215 <xslo:when test=
"@code = $form_subdivision_subfield">
2216 <xslo:text> formsubdiv
</xslo:text>
2218 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2219 <xslo:text> chronologicalsubdiv
</xslo:text>
2221 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2222 <xslo:text> geographicsubdiv
</xslo:text>
2227 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2231 <xslo:call-template name=
"chopPunctuation">
2232 <xslo:with-param name=
"chopString">
2233 <xslo:value-of select=
"."/>
2235 </xslo:call-template>
2239 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2242 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='182']">
2243 <z:index name=
"Match-subdivision:p Match-subdivision:s">
2244 <xslo:variable name=
"raw_heading">
2245 <xslo:for-each select=
"marc:subfield">
2246 <xslo:if test=
"contains('vxyz', @code)" name=
"Match-subdivision:p Match-subdivision:s">
2247 <xslo:if test=
"position() > 1">
2249 <xslo:when test=
"contains('vxyz', @code)">
2251 <xslo:when test=
"@code = $general_subdivision_subfield">
2252 <xslo:text> generalsubdiv
</xslo:text>
2254 <xslo:when test=
"@code = $form_subdivision_subfield">
2255 <xslo:text> formsubdiv
</xslo:text>
2257 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2258 <xslo:text> chronologicalsubdiv
</xslo:text>
2260 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2261 <xslo:text> geographicsubdiv
</xslo:text>
2266 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2270 <xslo:call-template name=
"chopPunctuation">
2271 <xslo:with-param name=
"chopString">
2272 <xslo:value-of select=
"."/>
2274 </xslo:call-template>
2278 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2281 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='482']">
2282 <z:index name=
"Match-subdivision-see-from:p Match-subdivision-see-from:s">
2283 <xslo:variable name=
"raw_heading">
2284 <xslo:for-each select=
"marc:subfield">
2285 <xslo:if test=
"contains('vxyz', @code)" name=
"Match-subdivision-see-from:p Match-subdivision-see-from:s">
2286 <xslo:if test=
"position() > 1">
2288 <xslo:when test=
"contains('vxyz', @code)">
2290 <xslo:when test=
"@code = $general_subdivision_subfield">
2291 <xslo:text> generalsubdiv
</xslo:text>
2293 <xslo:when test=
"@code = $form_subdivision_subfield">
2294 <xslo:text> formsubdiv
</xslo:text>
2296 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2297 <xslo:text> chronologicalsubdiv
</xslo:text>
2299 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2300 <xslo:text> geographicsubdiv
</xslo:text>
2305 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2309 <xslo:call-template name=
"chopPunctuation">
2310 <xslo:with-param name=
"chopString">
2311 <xslo:value-of select=
"."/>
2313 </xslo:call-template>
2317 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2320 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='485']">
2321 <z:index name=
"Match-subdivision:p Match-subdivision:s">
2322 <xslo:variable name=
"raw_heading">
2323 <xslo:for-each select=
"marc:subfield">
2324 <xslo:if test=
"contains('vxyz', @code)" name=
"Match-subdivision:p Match-subdivision:s">
2325 <xslo:if test=
"position() > 1">
2327 <xslo:when test=
"contains('vxyz', @code)">
2329 <xslo:when test=
"@code = $general_subdivision_subfield">
2330 <xslo:text> generalsubdiv
</xslo:text>
2332 <xslo:when test=
"@code = $form_subdivision_subfield">
2333 <xslo:text> formsubdiv
</xslo:text>
2335 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2336 <xslo:text> chronologicalsubdiv
</xslo:text>
2338 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2339 <xslo:text> geographicsubdiv
</xslo:text>
2344 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2348 <xslo:call-template name=
"chopPunctuation">
2349 <xslo:with-param name=
"chopString">
2350 <xslo:value-of select=
"."/>
2352 </xslo:call-template>
2356 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2359 <xslo:template mode=
"index_match_heading" match=
"marc:datafield[@tag='185']">
2360 <z:index name=
"Match-subdivision-see-from:p Match-subdivision-see-from:s">
2361 <xslo:variable name=
"raw_heading">
2362 <xslo:for-each select=
"marc:subfield">
2363 <xslo:if test=
"contains('vxyz', @code)" name=
"Match-subdivision-see-from:p Match-subdivision-see-from:s">
2364 <xslo:if test=
"position() > 1">
2366 <xslo:when test=
"contains('vxyz', @code)">
2368 <xslo:when test=
"@code = $general_subdivision_subfield">
2369 <xslo:text> generalsubdiv
</xslo:text>
2371 <xslo:when test=
"@code = $form_subdivision_subfield">
2372 <xslo:text> formsubdiv
</xslo:text>
2374 <xslo:when test=
"@code = $chronological_subdivision_subfield">
2375 <xslo:text> chronologicalsubdiv
</xslo:text>
2377 <xslo:when test=
"@code = $geographic_subdivision_subfield">
2378 <xslo:text> geographicsubdiv
</xslo:text>
2383 <xslo:value-of select=
"substring(' ', 1, 1)"/>
2387 <xslo:call-template name=
"chopPunctuation">
2388 <xslo:with-param name=
"chopString">
2389 <xslo:value-of select=
"."/>
2391 </xslo:call-template>
2395 <xslo:value-of select=
"normalize-space($raw_heading)"/>
2398 <xslo:variable name=
"form_subdivision_subfield">v
</xslo:variable>
2399 <xslo:variable name=
"general_subdivision_subfield">x
</xslo:variable>
2400 <xslo:variable name=
"chronological_subdivision_subfield">y
</xslo:variable>
2401 <xslo:variable name=
"geographic_subdivision_subfield">z
</xslo:variable>
2402 <xslo:template mode=
"index_subject_thesaurus" match=
"marc:controlfield[@tag='008']">
2403 <xslo:variable name=
"thesaurus_code1" select=
"substring(., 12, 1)"/>
2404 <xslo:variable name=
"full_thesaurus_code">
2406 <xslo:when test=
"$thesaurus_code1 = 'a'">
2407 <xslo:text>lcsh
</xslo:text>
2409 <xslo:when test=
"$thesaurus_code1 = 'b'">
2410 <xslo:text>lcac
</xslo:text>
2412 <xslo:when test=
"$thesaurus_code1 = 'c'">
2413 <xslo:text>mesh
</xslo:text>
2415 <xslo:when test=
"$thesaurus_code1 = 'd'">
2416 <xslo:text>nal
</xslo:text>
2418 <xslo:when test=
"$thesaurus_code1 = 'k'">
2419 <xslo:text>cash
</xslo:text>
2421 <xslo:when test=
"$thesaurus_code1 = 'n'">
2422 <xslo:text>notapplicable
</xslo:text>
2424 <xslo:when test=
"$thesaurus_code1 = 'r'">
2425 <xslo:text>aat
</xslo:text>
2427 <xslo:when test=
"$thesaurus_code1 = 's'">
2428 <xslo:text>sears
</xslo:text>
2430 <xslo:when test=
"$thesaurus_code1 = 'v'">
2431 <xslo:text>rvm
</xslo:text>
2433 <xslo:when test=
"$thesaurus_code1 = 'z'">
2435 <xslo:when test=
"//marc:datafield[@tag='040']/marc:subfield[@code='f']">
2436 <xslo:value-of select=
"//marc:datafield[@tag='040']/marc:subfield[@code='f']"/>
2439 <xslo:text>notdefined
</xslo:text>
2444 <xslo:text>notdefined
</xslo:text>
2448 <z:index name=
"Subject-heading-thesaurus:w">
2449 <xslo:value-of select=
"$full_thesaurus_code"/>
2452 <xslo:template mode=
"index_all" match=
"text()">
2453 <z:index name=
"Any:w Any:p">
2454 <xslo:value-of select=
"."/>
2457 <xslo:template name=
"chopPunctuation">
2458 <xslo:param name=
"chopString"/>
2459 <xslo:variable name=
"length" select=
"string-length($chopString)"/>
2461 <xslo:when test=
"$length=0"/>
2462 <xslo:when test=
"contains('-,.:=;!%/', substring($chopString,$length,1))">
2463 <xslo:call-template name=
"chopPunctuation">
2464 <xslo:with-param name=
"chopString" select=
"substring($chopString,1,$length - 1)"/>
2465 </xslo:call-template>
2467 <xslo:when test=
"not($chopString)"/>
2469 <xslo:value-of select=
"$chopString"/>