File: MARC21slim2INDEX.xsl

package info (click to toggle)
idzebra 2.2.8-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,572 kB
  • sloc: ansic: 54,389; xml: 27,058; sh: 5,892; makefile: 1,102; perl: 210; tcl: 64
file content (1157 lines) | stat: -rw-r--r-- 45,299 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 1995-2013
   Index Data ApS

This file is part of the Zebra server.

Zebra is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.

Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with Zebra; see the file LICENSE.zebra.  If not, write to the
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
-->

<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:z="http://indexdata.com/zebra-2.0"
    xmlns:marc="http://www.loc.gov/MARC21/slim"
    version="1.0">

  <xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>

  <!-- disable all default text node output -->
  <xsl:template match="text()"/>

  <xsl:template match="/">
    <xsl:if test="marc:collection">
      <collection>
         <xsl:apply-templates select="marc:collection/marc:record"/>
       </collection>
    </xsl:if>
    <xsl:if test="marc:record">
       <xsl:apply-templates select="marc:record"/>
    </xsl:if>
  </xsl:template>


  <!-- match on marcxml record -->
  <xsl:template match="marc:record">
    <xsl:variable name="leader" select="marc:leader"/>
    <xsl:variable name="leader5" select="substring($leader,6,1)"/>
    <xsl:variable name="type">
      <xsl:choose>
         <xsl:when test="$leader5='d'">delete</xsl:when>
         <xsl:otherwise>update</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <xsl:variable name="leader6" select="substring($leader,7,1)"/>
    <xsl:variable name="leader7" select="substring($leader,8,1)"/>
    <xsl:variable name="controlField001"
                  select="normalize-space(marc:controlfield[@tag='001'])"/>
    <xsl:variable name="controlField008"
                  select="normalize-space(marc:controlfield[@tag='008'])"/>

     <xsl:variable name="typeOf008">
       <xsl:choose>
         <xsl:when test="$leader6='a'">
           <xsl:choose>
             <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d'
                             or $leader7='m'">BK</xsl:when>
             <xsl:when test="$leader7='b' or $leader7='i'
                             or $leader7='s'">SE</xsl:when>
           </xsl:choose>
         </xsl:when>
         <xsl:when test="$leader6='t'">BK</xsl:when>
         <xsl:when test="$leader6='p'">MM</xsl:when>
         <xsl:when test="$leader6='m'">CF</xsl:when>
         <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
         <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o'
                         or $leader6='r'">VM</xsl:when>
         <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i'
                         or $leader6='j'">MU</xsl:when>
       </xsl:choose>
     </xsl:variable>

     <z:record z:id="{$controlField001}" type="{$type}">


       <!-- <xsl:attribute name="id"></xsl:attribute> -->
       <!-- <xsl:attribute name="type">update</xsl:attribute> -->
       <!-- <xsl:attribute name="rank"></xsl:attribute> -->

       <xsl:call-template name="bib1_rules"/>
     </z:record>
   </xsl:template>

   <xsl:template name="bib1_rules">
       <!-- att 1               Personal-name -->
       <!-- att 2               Corporate-name -->
       <!-- att 3               Conference-name -->
       <!-- att 4               Title -->
       <xsl:call-template name="Title"/>
       <!-- att 5               Title-series -->
       <!-- att 6               Title-uniform -->
       <!-- att 7               ISBN -->
       <xsl:call-template name="ISBN"/>
       <!-- att 8               ISSN -->
       <xsl:call-template name="ISSN"/>
       <!-- att 9               LC-card-number -->
       <!-- att 10              BNB-card-number -->
       <!-- att 11              BGF-number -->
       <!-- att 12              Local-number -->
       <!-- att 13              Dewey-classification -->
       <!-- att 14              UDC-classification -->
       <!-- att 15              Bliss-classification -->
       <!-- att 16              LC-call-number -->
       <!-- att 17              NLM-call-number -->
       <!-- att 18              NAL-call-number -->
       <!-- att 19              MOS-call-number -->
       <!-- att 20              Local-classification -->
       <!-- att 21              Subject-heading -->
       <xsl:call-template name="Subject-heading"/>
       <!-- att 22              Subject-Rameau -->
       <!-- att 23              BDI-index-subject -->
       <!-- att 24              INSPEC-subject -->
       <!-- att 25              MESH-subject -->
       <!-- att 26              PA-subject -->
       <!-- att 27              LC-subject-heading -->
       <!-- att 28              RVM-subject-heading -->
       <!-- att 29              Local-subject-index -->
       <!-- att 30              Date -->
       <!-- att 31              Date-of-publication -->
       <!-- att 32              Date-of-acquisition -->
       <!-- att 33              Title-key -->
       <!-- att 34              Title-collective -->
       <!-- att 35              Title-parallel -->
       <!-- att 36              Title-cover -->
       <!-- att 37              Title-added-title-page -->
       <!-- att 38              Title-caption -->
       <!-- att 39              Title-running -->
       <!-- att 40              Title-spine -->
       <!-- att 41              Title-other-variant -->
       <!-- att 42              Title-former -->
       <!-- att 43              Title-abbreviated -->
       <!-- att 44              Title-expanded -->
       <!-- att 45              Subject-precis -->
       <!-- att 46              Subject-rswk -->
       <!-- att 47              Subject-subdivision -->
       <!-- att 48              Number-natl-biblio -->
       <!-- att 49              Number-legal-deposit -->
       <!-- att 50              Number-govt-pub -->
       <!-- att 51              Number-music-publisher -->
       <!-- att 52              Number-db -->
       <!-- att 53              Number-local-call -->
       <!-- att 54              Code-language -->
       <!-- att 55              Code-geographic -->
       <!-- att 56              Code-institution -->
       <!-- att 57              Name-and-title -->
       <!-- att 58              Name-geographic -->
       <!-- att 59              Place-publication -->
       <!-- att 60              CODEN -->
       <!-- att 61              Microform-generation -->
       <!-- att 62              Abstract -->
       <xsl:call-template name="Abstract"/>
       <!-- att 63              Note -->
       <!-- att 1000            Author-title -->
       <xsl:call-template name="Author-title"/>
       <!-- att 1001            Record-type -->
       <!-- att 1002            Name -->
       <!-- att 1003            Author -->
       <xsl:call-template name="Author"/>
       <!-- att 1004            Author-name-personal -->
       <xsl:call-template name="Author-name-personal"/>
       <!-- att 1005            Author-name-corporate -->
       <xsl:call-template name="Author-name-corporate"/>
       <!-- att 1006            Author-name-conference -->
       <xsl:call-template name="Author-name-conference"/>
       <!-- att 1007            Identifier-standard -->
       <!-- att 1008            Subject-LC-childrens -->
       <!-- att 1009            Subject-name-personal -->
       <!-- att 1010            Body-of-text -->
       <!-- att 1011            Date/time-added-to-db -->
       <!-- att 1012            Date/time-last-modified -->
       <!-- att 1013            Authority/format-id -->
       <!-- att 1014            Concept-text -->
       <!-- att 1015            Concept-reference -->
       <!-- att 1016            Any -->
       <!-- att 1017            Server-choice -->
       <!-- att 1018            Publisher -->
       <!-- att 1019            Record-source -->
       <!-- att 1020            Editor -->
       <!-- att 1021            Bib-level -->
       <!-- att 1022            Geographic-class -->
       <!-- att 1023            Indexed-by -->
       <!-- att 1024            Map-scale -->
       <!-- att 1025            Music-key -->
       <!-- att 1026            Related-periodical -->
       <!-- att 1027            Report-number -->
       <!-- att 1028            Stock-number -->
       <!-- att 1030            Thematic-number -->
       <!-- att 1031            Material-type -->
       <!-- att 1032            Doc-id -->
       <!-- att 1033            Host-item -->
       <!-- att 1034            Content-type -->
       <!-- att 1035            Anywhere -->
       <!-- att 1036            Author-Title-Subject -->
   </xsl:template>

   <!-- ATTRIBUTE SET BIB-1 (Z39.50-1995) SEMANTICS -->
   <!-- TABLE 2:  USE ATTRIBUTES (CLASSIFIED AND DEFINED) -->
   <!-- Use   Value  Definition  USMARC tag(s) -->

   <!--
       Abstract               62  An abbreviated, accurate        520
                                  representation of a work,
                                  usually without added
                                 interpretation or criticism.
   -->
   <xsl:template name="Abstract">
     <xsl:for-each select="marc:datafield[@tag='520']">
       <z:index name="Abstract:w">
         <xsl:value-of select="."/>
       </z:index>
     </xsl:for-each>
   </xsl:template>

   <!--
       Any                  1016  The record is selected if there
                                  exists a Use attribute that the
                                  target supports (and considers
                                  appropriate - see note 1) such
                                  that the record would be
                                  selected if the target were to
                                  substitute that attribute.
       Notes:
        (1) When the origin uses 'any' the intent is that the target
            locate records via commonly used access points. The target
            may define 'any' to refer to a selected set of Use
            attributes corresponding to its commonly used access points.
        (2) In set terminology: when Any is the Use attribute, the set
            of records selected is the union of the sets of records
            selected by each of the (appropriate) Use attributes that
            the target supports.

   -->

   <!--
       Anywhere             1035  The record is selected if the
                                  term value (as qualified by the
                                  other attributes) occurs anywhere
                                 in the record.

            Note: A target might choose to support 'Anywhere' only in
            combination with specific (non-Use) attributes. For example, a
            target might support 'Anywhere' only in combination with the
            Relation attribute 'AlwaysMatches' (see below), to locate all
            records in a database.

       Notes on relationship of Any and Anywhere:
        (1) A target may support Any but not Anywhere, or vice versa, or
            both.  However, if a target supports both, then it should
            exclude 'Anywhere' from the list of Use attributes
            corresponding to 'Any' (if it does not do so, then the set
            of records located by 'Any' will be a superset of those
            located by 'Anywhere').
        (2) A distinction between the two attributes may be informally
            expressed as follows: 'anywhere' might result in more
            expensive searching than 'any'; if the target (and origin)
            support both 'any' and 'anywhere', if the origin uses 'Any'
            (rather than 'Anywhere') it is asking the target to locate
            the term only if it can do so relatively inexpensively.

   -->

   <!--
       Author-name  1003  A personal or corporate author, 100, 110, 111, 400
                           or a conference or meeting      410, 411, 700, 710,
                           name.  (No subject name         711, 800, 810, 811
                           headings are included.)

   -->
  <xsl:template name="Author">
    <xsl:for-each select="marc:datafield[@tag='100']/marc:subfield[@code='a']
                          | marc:datafield[@tag='110']
                          | marc:datafield[@tag='111']
                          | marc:datafield[@tag='400']
                          | marc:datafield[@tag='410']
                          | marc:datafield[@tag='700']
                          | marc:datafield[@tag='710']
                          | marc:datafield[@tag='711']
                          | marc:datafield[@tag='800']
                          | marc:datafield[@tag='810']
                          | marc:datafield[@tag='811']">
      <z:index name="Author:w">
        <xsl:value-of select="."/>
      </z:index>
    </xsl:for-each>
    <xsl:for-each select="marc:datafield[@tag='100']">
      <z:index name="Author:p">
        <xsl:value-of select="marc:subfield[@code='a']"/>
        <xsl:text> </xsl:text>
        <xsl:value-of select="marc:subfield[@code='d']"/>
      </z:index>
    </xsl:for-each>
  </xsl:template>

   <!--
Author-name-and-     1000  A personal or corporate author, 100/2XX, 110/2XX,
title                      or a conference or meeting      111/2XX, subfields
                           name, and the title of the      $a & $t in
                           item.  (No subject name         following: 400,410,
                           headings are included.)  The    411, 700, 710, 711,
                           syntax of the name-title        800, 810, 811
                           combination is up to the
                           target, unless used with the
                           Structure attribute Key (see
                           below).

   -->
  <xsl:template name="Author-title">
    <xsl:if test="marc:datafield[@tag='100']
                  and marc:datafield[@tag='245']">
      <z:index name="Author-title:p">
        <xsl:value-of
            select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
        <xsl:text> </xsl:text>
        <xsl:value-of
            select="marc:datafield[@tag='100']/marc:subfield[@code='d']"/>
        <xsl:text> </xsl:text>
        <xsl:value-of
            select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
      </z:index>
    </xsl:if>
  </xsl:template>


   <!--
Author-name-         1005  An organization or a group      110, 410, 710, 810
corporate                  of persons that is identified
                           by a particular name. (Differs
                           from attribute "name-corporate
                           (2)" in that corporate name
                           subject headings are not
                           included.)

   -->
  <xsl:template name="Author-name-corporate">
    <xsl:for-each select="marc:datafield[@tag='110']">
      <z:index name="Author-name-corporate:w">
        <xsl:value-of select="."/>
      </z:index>
    </xsl:for-each>
  </xsl:template>

   <!--
Author-name-         1006  A meeting of individuals or     111, 411, 711, 811
conference                 representatives of various
                           bodies for the purpose of
                           discussing topics of common
                           interest. (Differs from
                           attribute "name-conference
                           (3)" in that conference name
                           subject headings are not
                           included.)

   -->
  <xsl:template name="Author-name-conference">
    <xsl:for-each select="marc:datafield[@tag='111']">
      <z:index name="Author-name-conference:w">
        <xsl:value-of select="."/>
      </z:index>
    </xsl:for-each>
  </xsl:template>

   <!--
Author-name-personal 1004  A person's real name,           100, 400, 700, 800
                           pseudonym, title of nobility
                           nickname, or initials.
                           (Differs from attribute
                           "name-personal (1)" in that
                           personal name subject headings
                           are not included.)

   -->

  <xsl:template name="Author-name-personal">
    <xsl:for-each select="marc:datafield[@tag='100']">
      <xsl:for-each select="marc:subfield[@code='a']">
        <z:index name="Author-name-personal:w">
          <xsl:value-of select="."/>
        </z:index>
      </xsl:for-each>
    </xsl:for-each>
    <xsl:for-each select="marc:datafield[@tag='100']">
      <z:index name="Author-name-personal:p">
        <xsl:value-of select="marc:subfield[@code='a']"/>
        <xsl:text> </xsl:text>
        <xsl:value-of select="marc:subfield[@code='d']"/>
      </z:index>
    </xsl:for-each>
  </xsl:template>

   <!--
Author-Title-Subject 1036  An author or a title or a        1XX, 2XX, 4XX,
                           subject.                         6XX, 7XX, 8XX

            Note: When the Use attribute is Author-name-and-title (1000)
            the term contains both an author name and a title.  When the
            Use attribute is Author-Title-Subject (1036), the term
            contains an author name or a title or a subject.

   -->
   <!--
Body of text         1010  Used in full-text searching to
                           indicate that the term is to
                           be searched only in that
                           portion of the record that the
                           target considers the body of
                           the text, as opposed to some
                           other discriminated part such
                           as a headline, title, or
                           abstract.

   -->
   <!--
Classification-Bliss   15  A classification number from
                           the Bliss Classification,
                           developed by Henry Evelyn
                           Bliss.

   -->
   <!--
Classification-Dewey   13  A classification number from    082
                           the Dewey Decimal
                           Classification, developed by
                           Melvyl Dewey.

   -->
   <!--
Classification-        50  A classification number         086
government-publication     assigned to a government
                           document by a government
                           agency at any level (e.g.,
                           state, national,
                           international).

   -->
   <!--
Classification-LC      16  A classification number from    050
                           the US Library of Congress
                           Classification.

   -->
   <!--
Classification-local   20  A local classification
                           number from a system not
                           specified elsewhere in this
                           list of attributes.

   -->
   <!--
Classification-NAL     18  A classification number from    070
                           the US National Agriculture
                           Library Classification.

   -->
   <!--
Classification-NLM     17  A classification number from    060
                           the US National Library of
                           Medicine Classification.

   -->
   <!--
Classification-MOS     19  A classification number from
                           Mathematics Subject
                           Classification, compiled
                           in the Editorial Offices of
                           Mathematical Reviews and
                           Zentralblatt fur Mathematik.

   -->
   <!--
Classification-UDC     14  A classification number from    080
                           Universal Decimal
                           Classification, a system based
                           on the Dewey Decimal
                           Classification.

   -->
   <!--
Code-bib-level       1021  A one-character alphabetic       Leader/07
                           code indicating the
                           bibliographic level such as
                           monograph, serial or collection
                           of the record.

   -->
   <!--
Code-geographic-area   55  A code that indicates the       043
                           geographic area(s) that appear
                           or are implied in the headings
                           assigned to the item during
                           cataloging.

   -->
   <!--
Code-geographic-     1022  A code that represents the      052
class                      geographic area and if
                           applicable the geographic
                           subarea covered by an item.
                           The codes are derived from
                           the LC Classification-Class G
                           and the expanded Cutter number
                           list.

   -->
   <!--
Code-institution       56  An authoritative-agency         040, 852$a
                           symbol for an institution
                           that is the source of the
                           record or the holding
                           location.  The code space is
                           defined by the target.

   -->
   <!--
Code-language          54  A code that indicates the       008/35-37, 041
                           language of the item.
                           The codes are defined by the
                           target.

   -->
   <!--
Code-map-scale       1024  Coded form of cartographic      034
                           mathematical data, including
                           scale, projection and/or
                           coordinates related to the
                           item.

   -->
   <!--
Code-microform-        61  The code specifying the         007/11
generation                 generation of a microform.

   -->
   <!--
Code-record-type     1001  A code that specifies the       Leader/06
                           characteristics and defines
                           the components of the record.
                           The codes are target-specific.

   -->
   <!--
Concept-reference    1015  Used within Z39.50-1988;
                           included here for historical
                           reasons but its use is
                           deprecated.

   -->
   <!--
Concept-text         1014  Used within Z39.50-1988;
                           included here for historical
                           reasons but its use is
                           deprecated.

   -->
   <!--
Content-type         1034  The type of materials           derived value
                           contained in the item or        from 008/24-27
                           publication.  For example:
                           review, catalog, encyclopedia,
                           directory.

   -->
   <!--
Control number-BNB     10  Character string that uniquely  015
                           identifies a record in the
                           British National Bibliography.

   -->
   <!--
Control number-BNF     11  Character string that uniquely  015
                           identifies a record in the
                           Bibliotheque Nationale Francais.

   -->
   <!--
Control number-DB      52  Character string that uniquely  015
                           identifies a record in the
                           Deutsche Bibliothek.

   -->
   <!--
Control number-LC       9  Character string that uniquely  010, 011
                           identifies a record in the
                           Library of Congress database.

   -->
   <!--
Control number-local   12  Character string that uniquely  001, 035
                           identifies a record in a local
                           system (i.e., any system that
                           is not one of the four listed
                           above).

   -->
   <!--
Date                   30  The point of time at which      005, 008/00-05,
                           a transaction or event          008/07-10, 260$c,
                           takes place.                    008/11-14, 033,etc.

   -->
   <!--
Date-publication       31  The date (usually year) in      008/07-10, 260$c
                           which a document is published.  046, 533$d

   -->
   <!--
Date-acquisition       32  The date when a document was    541$d
                           acquired.

   -->
   <!--
Date/time added to   1011  The date and time that a        008/00-05
database                   record was added to the
                           database.

   -->
   <!--
Date/time last       1012  The date and time a record      005
modified                   was last updated.

   -->
   <!--
Identifier         1013  Used in full-text searching
authority/format           to indicate to the target
                           system the format of the
                           document that should be
                           returned to the originating
                           system.  The attribute carries
                           not only the format code, but
                           also the authority (e.g.,
                           system) that assigned that
                           code.

   -->
   <!--
Identifier-CODEN       60  A six-character, unique,        030
                           alphanumeric code assigned
                           to serial and monographic
                           publications by the CODEN
                           section of the Chemical
                           Abstracts Service.

   -->
   <!--
Identifier-document  1032  A persistent identifier, or
                           Doc-ID, assigned by a server,
                           that uniquely identifies a
                           document on that server.

   -->
   <!--
Identifier-ISBN         7  International Standard Book     020
                           Number - internationally
                           agreed upon number that
                           identifies a book uniquely.
                           Cf. ANSI/NISO Z39.21 and
                           ISO 2108.

   -->
  <xsl:template name="ISBN">
    <xsl:for-each select="marc:datafield[@tag='020']/marc:subfield[@code='a']">
      <z:index name="ISBN:n">
        <xsl:value-of select="."/>
      </z:index>
    </xsl:for-each>
  </xsl:template>

   <!--
Identifier-ISSN         8  International Standard Serial   022, 4XX$x,
                           Number - internationally       7XX$x
                           agreed upon number that
                           identifies a serial uniquely.
                           Cf. ANSI/NISO z39.9 and
                           ISO 3297.

   -->
  <xsl:template name="ISSN">
    <xsl:for-each select="marc:datafield[@tag='022']">
      <z:index name="ISSN:n">
        <xsl:value-of select="."/>
      </z:index>
    </xsl:for-each>
  </xsl:template>

   <!--
Identifier-legal-      49  The copyright registration      017
deposit                    number that is assigned to
                           an item when the item is
                           deposited for copyright.

   -->
   <!--
Identifier-local-call  53  Call number (e.g., shelf location)
                           assigned by a local system
                           (not a classification number).

   -->
   <!--
Identifier-national-   48  Character string that uniquely  015
bibliography               identifies a record in a
                           national bibliography.

   -->
   <!--
Identifier-publisher-  51  A formatted number assigned     028
for-music                  by a publisher to a sound
                           recording or to printed music.

   -->
   <!--
Identifier-report    1027  A report number assigned to     027, 088
                           the item. This number could be
                           the STRN (Standard Technical
                           Report Number) or another
                           report number.
                           Cf. ANSI/NISO Z39.23 and
                           ISO 10444.

   -->
   <!--
Identifier-standard  1007  Standard numbers such as ISBN,  010, 011, 015, 017,
                           ISSN, music publishers          018, 020, 022, 023,
                           numbers, CODEN, etc., that      024, 025, 027, 028,
                           are indexed together in many    030, 035, 037
                           online public-access catalogs.

   -->
   <!--
Identifier-stock     1028  A stock number that could be    037
                           used for ordering the item.

   -->
   <!--
Identifier-thematic  1030  The numeric designation for a   $n in the following:
                           part/section of a work such as  130, 240, 243, 630,
                           the serial, opus or thematic    700, 730
                           index number.

   -->
   <!--
Indexed-by           1023  For serials, a publication      510
                           in which the serial has been
                           indexed and/or abstracted.

   -->
   <!--
Material-type        1031  A free-form string, more        derived value from
                           specific than the one-letter    Leader/06-07, 007,
                           code in Leader/06, that         008, and 502
                           describes the material type
                           of the item, e.g., cassette,
                           kit, computer database,
                           computer file.

   -->
   <!--
Music-key            1025  A statement of the key in       $r in the following:
                           which the music is written.     130, 240, 243, 630,
                                                           700, 730

   -->
   <!--
Name                 1002  The name of a person, corporate 100, 110, 111, 400,
                           body, conference, or meeting.   410, 411, 600, 610,
                           (Subject name headings are      611, 700, 710, 711,
                           included.)                      800, 810, 811

   -->
   <!--
Name-and-title         57  The name of a person, corporate 100/2XX, 110/2XX,
                           body, conference, or meeting,   111/2XX, subfields
                           and the title of an item.       $a & $t in
                           (Subject name headings are      following: 400,410,
                           included.)  The syntax of the   411, 600, 610, 611,
                           name-title combination is up    700, 710, 711, 800,
                           to the target, unless used      810, 811
                           with the Structure attribute
                           Key (see below).

   -->
   <!--
Name-corporate          2  An organization or a group      110, 410, 610, 710,
                           of persons that is identified   810
                           by a particular name. (Subject
                           name headings are included.)

   -->
   <!--
Name-conference         3  A meeting of individuals or     111, 411, 611, 711
                           representatives of various      811
                           bodies for the purpose of
                           discussing topics of common
                           interest.  (Subject name
                           headings are included.)

   -->
   <!--
Name-editor          1020  A person who prepared for       100 $a or 700 $a when
                           publication an item that is     the corresponding $e
                           not his or her own.             contains value 'ed.'

   -->
   <!--
Name-geographic        58  Name of a country,              651
                           jurisdiction, region, or
                           geographic feature.

   -->
   <!--
Name-geographic-place- 59  City or town where an item      008/15-17, 260$a
publication                was published.

   -->
   <!--
Name-personal           1  A person's real name,           100, 400, 600, 700,
                           pseudonym, title of nobility    800
                           nickname, or initials.

   -->
   <!--
Name-publisher       1018  The organization responsible    260$b
                           for the publication of the
                           item.

   -->
   <!--
Note                   63  A concise statement in which    5XX
                           such information as extended
                           physical description,
                           relationship to other works,
                           or contents may be recorded.

   -->
   <!--
Record-source        1019  The USMARC code or name of the  008/39, 040
                           organization(s) that created
                           the original record, assigned
                           the USMARC content designation
                           and transcribed the record into
                           machine-readable form, or
                           modified the existing USMARC
                           record; the cataloging source.

   -->
   <!--
Server-choice        1017  The target substitutes one or
                           more access points.  The origin
                           leaves the choice to the target.

       Notes on relationship of Any and Server-choice:
        (1) When the origin uses 'Server-choice' it is asking the target
            to select one or more access points, and to use its best
            judgment in making that selection.  When 'Any' is used,
            there is no selection process involved; the target is to
            apply all of the (appropriate) supported Use attributes.
            The origin is asking the target to make a choice of access
            points.
        (2) The target might support 'Any' and not 'Server-choice', or
            vice versa, or both.  If the target supports both, when the
            origin uses 'Server-choice', the target might choose 'Any';
            however, it might choose any other Use attribute.

   -->
   <!--
Subject                21  The primary topic on which a    600, 610, 611, 630,
                           work is focused.                650, 651, 653, 654,
                                                           655, 656, 657, 69X

   -->
  <xsl:template name="Subject-heading">
    <xsl:for-each select="marc:datafield[@tag='600']
                          |marc:datafield[@tag='610']
                          |marc:datafield[@tag='611']
                          |marc:datafield[@tag='630']
                          |marc:datafield[@tag='650']
                          |marc:datafield[@tag='651']
                          |marc:datafield[@tag='653']
                          |marc:datafield[@tag='654']
                          |marc:datafield[@tag='655']
                          |marc:datafield[@tag='656']
                          |marc:datafield[@tag='657']">
      <z:index name="Subject-heading:w">
        <xsl:value-of select="."/>
      </z:index>
    </xsl:for-each>
    <xsl:for-each select="marc:datafield[@tag='600']
                          |marc:datafield[@tag='650']
                          |marc:datafield[@tag='651']
                          |marc:datafield[@tag='653']">
      <z:index name="Subject-heading:w">
        <xsl:value-of select="."/>
      </z:index>
    </xsl:for-each>
  </xsl:template>

   <!--
Subject-BDI            23  Subject headings from
                           Bibliotek Dokumentasjon
                           Informasjon - a controlled
                           subject vocabulary used and
                           maintained by the five Nordic
                           countries (Denmark, Finland,
                           Iceland, Norway, and Sweden).

   -->
   <!--
Subject-INSPEC         24  Subject headings from           600i2, 610i2,
                           Information Services for the    611i2, 630i2,
                           Physics and Engineering         650i2, 651i2
                           Communities - the Information
                           Services Division of the
                           Institution of Electrical
                           Engineers.

   -->
   <!--
Subject-LC             27  Subject headings from           600i0, 610i0,
                           US Library of Congress          611i0, 630i0,
                           Subject Headings.               650i0, 651i0

   -->
   <!--
Subject-LC-          1008  Subject headings, for use       600i1, 610i1,
children's                 with children's literature,     611i1, 630i1,
                           that conform to the             650i1, 651i1
                           formulation guidelines in
                           the "AC Subject Headings"
                           section of the Library of
                           Congress Subject Headings.

   -->
   <!--
Subject-local          29  Subjects headings defined
                           locally.

   -->
   <!--
Subject-MESH           25  Subject headings from           600i2, 610i2,
                           Medical Subject Headings -     611i2, 630i2,
                           maintained by the US National   650i2, 651i2
                           Library of Medicine.

   -->
   <!--
Subject-name-        1009  A person's real name,           600
personal                   pseudonym, title of nobility
                           nickname, or initials that
                           appears in a subject heading.

   -->
   <!--
Subject-PA             26  Subject headings from           600i2, 610i2,
                           Thesaurus of Psychological      611i2, 630i2,
                           Index Terms - maintained       650i2, 651i2
                           by the Retrieval Services Unit
                           of the American Psychological
                           Association.

   -->
   <!--
Subject-PRECIS         45  Subject headings from
                           PREserved Context Index
                           System - a string of indexing
                           terms set down in a prescribed
                           order, each term being preceded
                           by a manipulation code which
                           governs the production of
                           pre-coordinated subject index
                           entries under selected terms -
                           maintained by the British
                           Library.

   -->
   <!--
Subject-RAMEAU         22  Subject headings from
                           Repertoire d'authorite de
                           matieres encyclopedique
                           unifie - maintained by the
                           Bibliotheque Nationale
                           (France).
   -->
   <!--
Subject-RSWK           46  Subject headings from
                           Regeln fur den
                           Schlagwortkatalog -
                           maintained by the Deutsches
                           Bibliotheksinstitut.

   -->
   <!--
Subject-RVM            28  Subject headings from           600i6, 610i6,
                           Repertoire des vedettes-        611i6, 630i6,
                           matiere - maintained by the    650i6, 651i6
                           Bibliotheque de l'Universite
                           de Laval.

   -->
   <!--
Subject-subdivision    47  An extension to a subject       6XX$x, 6XX$y,
                           heading indicating the form,    6XX$z
                           place, period of time treated,
                           or aspect of the subject
                           treated.

   -->
   <!--
Title                   4  A word, phrase, character,      130, 21X-24X, 440,
                           or group of characters,         490, 730, 740, 830,
                           normally appearing in an item,  840, subfield $t
                           that names the item or the      in the following:
                           work contained in it.           400, 410, 410, 600,
                                                           610, 611, 700, 710,
                                                           711, 800, 810, 811

   -->
  <xsl:template name="Title">
    <xsl:for-each select="marc:datafield[@tag='245']/marc:subfield[@code='a']">
      <z:index name="Title:w">
        <xsl:value-of select="."/>
      </z:index>
    </xsl:for-each>
  </xsl:template>


   <!--
Title-abbreviated      43  Shortened form of the title;    210, 211 (obs.),
                           either assigned by national     246
                           centers under the auspices of
                           the International Serials Data
                           System, or a title (such as an
                           acronym) that is popularly
                           associated with the item.

   -->
   <!--
Title-added-title-page 37  A title on a title page         246i5
                           preceding or following the
                           title page chosen as the basis
                           for the description of the
                           item.  It may be more general
                           (e.g., a series title page),
                           or equally general (e.g., a
                           title page in another
                           language).

   -->
   <!--
Title-caption          38  A title given at the beginning  246i6
                           of the first page of the text.

   -->
   <!--
Title-collective       34  A title proper that is an       243
                           inclusive title for an item
                           containing several works.

   -->
   <!--
Title-cover            36  The title printed on the        246i4
                           cover of an item as issued.

   -->
   <!--
Title-expanded         44  An expanded (or augmented)      214 (obs.), 246
                           title has been enlarged with
                           descriptive words by the
                           cataloger to provide
                           additional indexing and
                           searching capabilities.

   -->
   <!--
Title-former           42  A former title or title         247, 780
                           variation when one
                           bibliographic record
                           represents all issues of
                           a serial that has changed
                           title.

   -->
   <!--
Title-host-item      1033  The title of the item            773$t
                           containing the part
                           described in the record, for
                           example, a journal title
                           when the record describes an
                           article in the journal.

   -->
   <!--
Title-key              33  The unique name assigned to     222
                           a serial by the International
                           Serials Data System (ISDS).

   -->
   <!--
Title-other-variant    41  A variation from the title      212 (obs.), 246i3,
                           page title appearing elsewhere  247, 740
                           in the item (e.g., a variant
                           cover title, caption title,
                           running title, or title from
                           another volume) or in another
                           issue.

   -->
   <!--
Title-parallel         35  The title proper in another     246i1
                           language and/or script.

   -->
   <!--
Title-related-       1026  Serial titles related to this   247, 780, 785
periodical                 item, either the immediate
                           predecessor or the immediate
                           successor.

   -->
   <!--
Title-running          39  A title, or abbreviated title,  246i7
                           that is repeated at the head
                           or foot of each page or leaf.

   -->
   <!--
Title-series            5  Collective title applying to    440, 490, 830, 840,
                           a group of separate, but        subfield $t in the
                           related, items.                 following: 400,410,
                                                           411, 800, 810, 811

   -->
   <!--
Title-spine            40  A title appearing on the        246i8
                           spine of an item.

   -->
   <!--
Title-uniform           6  The particular title by which   130, 240, 730,
                           a work is to be identified      subfield $t in the
                           for cataloging purposes.        following: 700,710,
                                                           711
-->




</xsl:stylesheet>