1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <xsl:stylesheet version="1.0" xmlns:mads="http://www.loc.gov/mads/v2"
\r
3 xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:marc="http://www.loc.gov/MARC21/slim"
\r
4 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="marc">
\r
6 <xsl:include href="MARC21slimUtils.xsl"/>
\r
7 <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
\r
8 <xsl:strip-space elements="*"/>
\r
11 2.15 reversed genre and setAuthority template order under relatedTypeAttribute tmee 11/13/2018
\r
12 2.14 Fixed bug in mads:geographic attributes syntax ws 05/04/2016
\r
13 2.13 fixed repeating <geographic> tmee 01/31/2014
\r
14 2.12 added $2 authority for <classification> tmee 09/18/2012
\r
15 2.11 added delimiters between <classification> subfields tmee 09/18/2012
\r
16 2.10 fixed type="other" and type="otherType" for mads:related tmee 09/16/2011
\r
17 2.09 fixed professionTerm and genreTerm empty tag error tmee 09/16/2011
\r
18 2.08 fixed marc:subfield @code='i' matching error tmee 09/16/2011
\r
19 2.07 fixed 555 duplication error tmee 08/10/2011
\r
20 2.06 fixed topic subfield error tmee 08/10/2011
\r
21 2.05 fixed title subfield error tmee 06/20/2011
\r
22 2.04 fixed geographicSubdivision mapping for authority element tmee 06/16/2011
\r
23 2.03 added classification for 053, 055, 060, 065, 070, 080, 082, 083, 086, 087 tmee 06/03/2011
\r
24 2.02 added descriptionStandard for 008/10 tmee 04/27/2011
\r
25 2.01 added extensions for 046, 336, 370, 374, 375, 376 tmee 04/08/2011
\r
26 2.00 redefined imported MODS elements in version 1.0 to MADS elements in version 2.0 tmee 02/08/2011
\r
27 1.08 added 372 subfields $a $s $t for <fieldOfActivity> tmee 06/24/2010
\r
28 1.07 removed role/roleTerm 100, 110, 111, 400, 410, 411, 500, 510, 511, 700, 710, 711 tmee 06/24/2010
\r
29 1.06 added strip-space tmee 06/24/2010
\r
30 1.05 added subfield $a for 130, 430, 530 tmee 06/21/2010
\r
31 1.04 fixed 550 z omission ntra 08/11/2008
\r
32 1.03 removed duplication of 550 $a text tmee 11/01/2006
\r
33 1.02 fixed namespace references between mads and mods ntra 10/06/2006
\r
34 1.01 revised rgue/jrad 11/29/05
\r
35 1.00 adapted from MARC21Slim2MODS3.xsl ntra 07/06/05
\r
38 <!-- authority attribute defaults to 'naf' if not set using this authority parameter, for <authority> descriptors: name, titleInfo, geographic -->
\r
39 <xsl:param name="authority"/>
\r
40 <xsl:variable name="auth">
\r
42 <xsl:when test="$authority">
\r
43 <xsl:value-of select="$authority"/>
\r
45 <xsl:otherwise>naf</xsl:otherwise>
\r
48 <xsl:variable name="controlField008" select="marc:controlfield[@tag='008']"/>
\r
49 <xsl:variable name="controlField008-06"
\r
50 select="substring(descendant-or-self::marc:controlfield[@tag=008],7,1)"/>
\r
51 <xsl:variable name="controlField008-11"
\r
52 select="substring(descendant-or-self::marc:controlfield[@tag=008],12,1)"/>
\r
53 <xsl:variable name="controlField008-14"
\r
54 select="substring(descendant-or-self::marc:controlfield[@tag=008],15,1)"/>
\r
55 <xsl:template match="/">
\r
57 <xsl:when test="descendant-or-self::marc:collection">
\r
58 <mads:madsCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
\r
59 xsi:schemaLocation="http://www.loc.gov/mads/v2 http://www.loc.gov/standards/mads/v2/mads-2-0.xsd">
\r
60 <xsl:for-each select="descendant-or-self::marc:collection/marc:record">
\r
61 <mads:mads version="2.0">
\r
62 <xsl:call-template name="marcRecord"/>
\r
65 </mads:madsCollection>
\r
68 <mads:mads version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
\r
69 xsi:schemaLocation="http://www.loc.gov/mads/v2 http://www.loc.gov/standards/mads/mads-2-0.xsd">
\r
70 <xsl:for-each select="descendant-or-self::marc:record">
\r
71 <xsl:call-template name="marcRecord"/>
\r
78 <xsl:template name="marcRecord">
\r
82 <xsl:when test="$controlField008-06='d'">
\r
83 <xsl:attribute name="geographicSubdivision">
\r
84 <xsl:text>direct</xsl:text>
\r
87 <xsl:when test="$controlField008-06='i'">
\r
88 <xsl:attribute name="geographicSubdivision">
\r
89 <xsl:text>indirect</xsl:text>
\r
92 <xsl:when test="$controlField008-06='n'">
\r
93 <xsl:attribute name="geographicSubdivision">
\r
94 <xsl:text>not applicable</xsl:text>
\r
99 <xsl:apply-templates select="marc:datafield[100 <= @tag and @tag < 200]"/>
\r
103 <xsl:apply-templates
\r
104 select="marc:datafield[500 <= @tag and @tag <= 585]|marc:datafield[700 <= @tag and @tag <= 785]"/>
\r
107 <xsl:apply-templates select="marc:datafield[400 <= @tag and @tag <= 485]"/>
\r
110 <xsl:apply-templates select="marc:datafield[667 <= @tag and @tag <= 688]"/>
\r
113 <xsl:apply-templates select="marc:datafield[@tag=856]"/>
\r
114 <xsl:apply-templates select="marc:datafield[@tag=010]"/>
\r
115 <xsl:apply-templates select="marc:datafield[@tag=024]"/>
\r
116 <xsl:apply-templates select="marc:datafield[@tag=372]"/>
\r
118 <!-- classification -->
\r
119 <xsl:apply-templates select="marc:datafield[@tag=053]"/>
\r
120 <xsl:apply-templates select="marc:datafield[@tag=055]"/>
\r
121 <xsl:apply-templates select="marc:datafield[@tag=060]"/>
\r
122 <xsl:apply-templates select="marc:datafield[@tag=065]"/>
\r
123 <xsl:apply-templates select="marc:datafield[@tag=070]"/>
\r
124 <xsl:apply-templates select="marc:datafield[@tag=080]"/>
\r
125 <xsl:apply-templates select="marc:datafield[@tag=082]"/>
\r
126 <xsl:apply-templates select="marc:datafield[@tag=083]"/>
\r
127 <xsl:apply-templates select="marc:datafield[@tag=086]"/>
\r
128 <xsl:apply-templates select="marc:datafield[@tag=087]"/>
\r
130 <!-- affiliation-->
\r
131 <xsl:for-each select="marc:datafield[@tag=373]">
\r
134 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
136 <mads:dateValid point="start">
\r
137 <xsl:value-of select="marc:subfield[@code='s']"/>
\r
139 <mads:dateValid point="end">
\r
140 <xsl:value-of select="marc:subfield[@code='t']"/>
\r
142 </mads:affiliation>
\r
144 <xsl:for-each select="marc:datafield[@tag=371]">
\r
148 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
151 <xsl:value-of select="marc:subfield[@code='b']"/>
\r
154 <xsl:value-of select="marc:subfield[@code='c']"/>
\r
157 <xsl:value-of select="marc:subfield[@code='d']"/>
\r
160 <xsl:value-of select="marc:subfield[@code='e']"/>
\r
164 <xsl:value-of select="marc:subfield[@code='m']"/>
\r
166 </mads:affiliation>
\r
170 <xsl:for-each select="marc:datafield[@tag=336]">
\r
173 <mads:contentType type="text">
\r
174 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
175 </mads:contentType>
\r
176 <mads:contentType type="code">
\r
177 <xsl:value-of select="marc:subfield[@code='b']"/>
\r
178 </mads:contentType>
\r
179 </mads:contentType>
\r
183 <xsl:for-each select="marc:datafield[@tag=374]">
\r
187 <xsl:when test="marc:subfield[@code='a']">
\r
188 <mads:professionTerm>
\r
189 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
190 </mads:professionTerm>
\r
192 <xsl:when test="marc:subfield[@code='s']">
\r
193 <mads:dateValid point="start">
\r
194 <xsl:value-of select="marc:subfield[@code='s']"/>
\r
197 <xsl:when test="marc:subfield[@code='t']">
\r
198 <mads:dateValid point="end">
\r
199 <xsl:value-of select="marc:subfield[@code='t']"/>
\r
207 <xsl:for-each select="marc:datafield[@tag=375]">
\r
211 <xsl:when test="marc:subfield[@code='a']">
\r
213 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
216 <xsl:when test="marc:subfield[@code='s']">
\r
217 <mads:dateValid point="start">
\r
218 <xsl:value-of select="marc:subfield[@code='s']"/>
\r
221 <xsl:when test="marc:subfield[@code='t']">
\r
222 <mads:dateValid point="end">
\r
223 <xsl:value-of select="marc:subfield[@code='t']"/>
\r
231 <xsl:for-each select="marc:datafield[@tag=376]">
\r
233 <mads:familyInformation>
\r
234 <mads:typeOfFamily>
\r
235 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
236 </mads:typeOfFamily>
\r
237 <mads:nameOfProminentMember>
\r
238 <xsl:value-of select="marc:subfield[@code='b']"/>
\r
239 </mads:nameOfProminentMember>
\r
240 <mads:hereditaryTitle>
\r
241 <xsl:value-of select="marc:subfield[@code='c']"/>
\r
242 </mads:hereditaryTitle>
\r
243 <mads:dateValid point="start">
\r
244 <xsl:value-of select="marc:subfield[@code='s']"/>
\r
246 <mads:dateValid point="end">
\r
247 <xsl:value-of select="marc:subfield[@code='t']"/>
\r
249 </mads:familyInformation>
\r
254 <mads:recordOrigin>Converted from MARCXML to MADS version 2.0 (Revision 2.13)</mads:recordOrigin>
\r
255 <!-- <xsl:apply-templates select="marc:datafield[@tag=024]"/> -->
\r
257 <xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='a']"/>
\r
258 <xsl:apply-templates select="marc:controlfield[@tag=005]"/>
\r
259 <xsl:apply-templates select="marc:controlfield[@tag=001]"/>
\r
260 <xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='b']"/>
\r
261 <xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='e']"/>
\r
262 <xsl:for-each select="marc:controlfield[@tag=008]">
\r
263 <xsl:if test="substring(.,11,1)='a'">
\r
264 <mads:descriptionStandard>
\r
265 <xsl:text>earlier rules</xsl:text>
\r
266 </mads:descriptionStandard>
\r
268 <xsl:if test="substring(.,11,1)='b'">
\r
269 <mads:descriptionStandard>
\r
270 <xsl:text>aacr1</xsl:text>
\r
271 </mads:descriptionStandard>
\r
273 <xsl:if test="substring(.,11,1)='c'">
\r
274 <mads:descriptionStandard>
\r
275 <xsl:text>aacr2</xsl:text>
\r
276 </mads:descriptionStandard>
\r
278 <xsl:if test="substring(.,11,1)='d'">
\r
279 <mads:descriptionStandard>
\r
280 <xsl:text>aacr2 compatible</xsl:text>
\r
281 </mads:descriptionStandard>
\r
283 <xsl:if test="substring(.,11,1)='z'">
\r
284 <mads:descriptionStandard>
\r
285 <xsl:text>other rules</xsl:text>
\r
286 </mads:descriptionStandard>
\r
292 <!-- start of secondary templates -->
\r
294 <!-- ======== xlink ======== -->
\r
296 <!-- <xsl:template name="uri">
\r
297 <xsl:for-each select="marc:subfield[@code='0']">
\r
298 <xsl:attribute name="xlink:href">
\r
299 <xsl:value-of select="."/>
\r
304 <xsl:template match="marc:subfield[@code='i']">
\r
305 <xsl:attribute name="otherType">
\r
306 <xsl:value-of select="."/>
\r
310 <!-- No role/roleTerm mapped in MADS 06/24/2010
\r
311 <xsl:template name="role">
\r
312 <xsl:for-each select="marc:subfield[@code='e']">
\r
314 <mads:roleTerm type="text">
\r
315 <xsl:value-of select="."/>
\r
322 <xsl:template name="part">
\r
323 <xsl:variable name="partNumber">
\r
324 <xsl:call-template name="specialSubfieldSelect">
\r
325 <xsl:with-param name="axis">n</xsl:with-param>
\r
326 <xsl:with-param name="anyCodes">n</xsl:with-param>
\r
327 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
\r
328 </xsl:call-template>
\r
330 <xsl:variable name="partName">
\r
331 <xsl:call-template name="specialSubfieldSelect">
\r
332 <xsl:with-param name="axis">p</xsl:with-param>
\r
333 <xsl:with-param name="anyCodes">p</xsl:with-param>
\r
334 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
\r
335 </xsl:call-template>
\r
337 <xsl:if test="string-length(normalize-space($partNumber))">
\r
339 <xsl:call-template name="chopPunctuation">
\r
340 <xsl:with-param name="chopString" select="$partNumber"/>
\r
341 </xsl:call-template>
\r
344 <xsl:if test="string-length(normalize-space($partName))">
\r
346 <xsl:call-template name="chopPunctuation">
\r
347 <xsl:with-param name="chopString" select="$partName"/>
\r
348 </xsl:call-template>
\r
353 <xsl:template name="nameABCDN">
\r
354 <xsl:for-each select="marc:subfield[@code='a']">
\r
356 <xsl:call-template name="chopPunctuation">
\r
357 <xsl:with-param name="chopString" select="."/>
\r
358 </xsl:call-template>
\r
361 <xsl:for-each select="marc:subfield[@code='b']">
\r
363 <xsl:value-of select="."/>
\r
367 test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
\r
369 <xsl:call-template name="subfieldSelect">
\r
370 <xsl:with-param name="codes">cdn</xsl:with-param>
\r
371 </xsl:call-template>
\r
376 <xsl:template name="nameABCDQ">
\r
378 <xsl:call-template name="chopPunctuation">
\r
379 <xsl:with-param name="chopString">
\r
380 <xsl:call-template name="subfieldSelect">
\r
381 <xsl:with-param name="codes">aq</xsl:with-param>
\r
382 </xsl:call-template>
\r
384 </xsl:call-template>
\r
386 <xsl:call-template name="termsOfAddress"/>
\r
387 <xsl:call-template name="nameDate"/>
\r
390 <xsl:template name="nameACDENQ">
\r
392 <xsl:call-template name="subfieldSelect">
\r
393 <xsl:with-param name="codes">acdenq</xsl:with-param>
\r
394 </xsl:call-template>
\r
398 <xsl:template name="nameDate">
\r
399 <xsl:for-each select="marc:subfield[@code='d']">
\r
400 <mads:namePart type="date">
\r
401 <xsl:call-template name="chopPunctuation">
\r
402 <xsl:with-param name="chopString" select="."/>
\r
403 </xsl:call-template>
\r
408 <xsl:template name="specialSubfieldSelect">
\r
409 <xsl:param name="anyCodes"/>
\r
410 <xsl:param name="axis"/>
\r
411 <xsl:param name="beforeCodes"/>
\r
412 <xsl:param name="afterCodes"/>
\r
413 <xsl:variable name="str">
\r
414 <xsl:for-each select="marc:subfield">
\r
416 test="contains($anyCodes, @code) or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis]) or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])">
\r
417 <xsl:value-of select="text()"/>
\r
418 <xsl:text> </xsl:text>
\r
422 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
425 <xsl:template name="termsOfAddress">
\r
426 <xsl:if test="marc:subfield[@code='b' or @code='c']">
\r
427 <mads:namePart type="termsOfAddress">
\r
428 <xsl:call-template name="chopPunctuation">
\r
429 <xsl:with-param name="chopString">
\r
430 <xsl:call-template name="subfieldSelect">
\r
431 <xsl:with-param name="codes">bc</xsl:with-param>
\r
432 </xsl:call-template>
\r
434 </xsl:call-template>
\r
439 <xsl:template name="displayLabel">
\r
440 <xsl:if test="marc:subfield[@code='z']">
\r
441 <xsl:attribute name="displayLabel">
\r
442 <xsl:value-of select="marc:subfield[@code='z']"/>
\r
445 <xsl:if test="marc:subfield[@code='3']">
\r
446 <xsl:attribute name="displayLabel">
\r
447 <xsl:value-of select="marc:subfield[@code='3']"/>
\r
452 <xsl:template name="isInvalid">
\r
453 <xsl:if test="@code='z'">
\r
454 <xsl:attribute name="invalid">yes</xsl:attribute>
\r
458 <xsl:template name="sub2Attribute">
\r
460 <xsl:if test="../marc:subfield[@code='2']">
\r
461 <xsl:attribute name="type">
\r
462 <xsl:value-of select="../marc:subfield[@code='2']"/>
\r
467 <xsl:template match="marc:controlfield[@tag=001]">
\r
468 <mads:recordIdentifier>
\r
469 <xsl:if test="../marc:controlfield[@tag=003]">
\r
470 <xsl:attribute name="source">
\r
471 <xsl:value-of select="../marc:controlfield[@tag=003]"/>
\r
474 <xsl:value-of select="."/>
\r
475 </mads:recordIdentifier>
\r
478 <xsl:template match="marc:controlfield[@tag=005]">
\r
479 <mads:recordChangeDate encoding="iso8601">
\r
480 <xsl:value-of select="."/>
\r
481 </mads:recordChangeDate>
\r
484 <xsl:template match="marc:controlfield[@tag=008]">
\r
485 <mads:recordCreationDate encoding="marc">
\r
486 <xsl:value-of select="substring(.,1,6)"/>
\r
487 </mads:recordCreationDate>
\r
490 <xsl:template match="marc:datafield[@tag=010]">
\r
491 <xsl:for-each select="marc:subfield">
\r
492 <mads:identifier type="lccn">
\r
493 <xsl:call-template name="isInvalid"/>
\r
494 <xsl:value-of select="."/>
\r
499 <xsl:template match="marc:datafield[@tag=024]">
\r
500 <xsl:for-each select="marc:subfield[not(@code=2)]">
\r
502 <xsl:call-template name="isInvalid"/>
\r
503 <xsl:call-template name="sub2Attribute"/>
\r
504 <xsl:value-of select="."/>
\r
509 <!-- ========== 372 ========== -->
\r
510 <xsl:template match="marc:datafield[@tag=372]">
\r
511 <mads:fieldOfActivity>
\r
512 <xsl:call-template name="subfieldSelect">
\r
513 <xsl:with-param name="codes">a</xsl:with-param>
\r
514 </xsl:call-template>
\r
515 <xsl:text>-</xsl:text>
\r
516 <xsl:call-template name="subfieldSelect">
\r
517 <xsl:with-param name="codes">st</xsl:with-param>
\r
518 </xsl:call-template>
\r
519 </mads:fieldOfActivity>
\r
523 <!-- ========== 040 ========== -->
\r
524 <xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='a']">
\r
525 <mads:recordContentSource authority="marcorg">
\r
526 <xsl:value-of select="."/>
\r
527 </mads:recordContentSource>
\r
530 <xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='b']">
\r
531 <mads:languageOfCataloging>
\r
532 <mads:languageTerm authority="iso639-2b" type="code">
\r
533 <xsl:value-of select="."/>
\r
534 </mads:languageTerm>
\r
535 </mads:languageOfCataloging>
\r
538 <xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='e']">
\r
539 <mads:descriptionStandard>
\r
540 <xsl:value-of select="."/>
\r
541 </mads:descriptionStandard>
\r
544 <!-- ========== classification 2.03 ========== -->
\r
546 <xsl:template match="marc:datafield[@tag=053]">
\r
547 <mads:classification>
\r
548 <xsl:call-template name="subfieldSelect">
\r
549 <xsl:with-param name="codes">abcdxyz</xsl:with-param>
\r
550 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
551 </xsl:call-template>
\r
552 </mads:classification>
\r
555 <xsl:template match="marc:datafield[@tag=055]">
\r
556 <mads:classification>
\r
557 <xsl:call-template name="subfieldSelect">
\r
558 <xsl:with-param name="codes">abcdxyz</xsl:with-param>
\r
559 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
560 </xsl:call-template>
\r
561 </mads:classification>
\r
564 <xsl:template match="marc:datafield[@tag=060]">
\r
565 <mads:classification>
\r
566 <xsl:call-template name="subfieldSelect">
\r
567 <xsl:with-param name="codes">abcdxyz</xsl:with-param>
\r
568 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
569 </xsl:call-template>
\r
570 </mads:classification>
\r
572 <xsl:template match="marc:datafield[@tag=065]">
\r
573 <mads:classification>
\r
574 <xsl:attribute name="authority">
\r
575 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
577 <xsl:call-template name="subfieldSelect">
\r
578 <xsl:with-param name="codes">abcdxyz</xsl:with-param>
\r
579 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
580 </xsl:call-template>
\r
581 </mads:classification>
\r
583 <xsl:template match="marc:datafield[@tag=070]">
\r
584 <mads:classification>
\r
585 <xsl:call-template name="subfieldSelect">
\r
586 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
587 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
588 </xsl:call-template>
\r
589 </mads:classification>
\r
591 <xsl:template match="marc:datafield[@tag=080]">
\r
592 <mads:classification>
\r
593 <xsl:attribute name="authority">
\r
594 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
596 <xsl:call-template name="subfieldSelect">
\r
597 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
598 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
599 </xsl:call-template>
\r
600 </mads:classification>
\r
602 <xsl:template match="marc:datafield[@tag=082]">
\r
603 <mads:classification>
\r
604 <xsl:attribute name="authority">
\r
605 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
607 <xsl:call-template name="subfieldSelect">
\r
608 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
609 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
610 </xsl:call-template>
\r
611 </mads:classification>
\r
613 <xsl:template match="marc:datafield[@tag=083]">
\r
614 <mads:classification>
\r
615 <xsl:attribute name="authority">
\r
616 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
618 <xsl:call-template name="subfieldSelect">
\r
619 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
620 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
621 </xsl:call-template>
\r
622 </mads:classification>
\r
624 <xsl:template match="marc:datafield[@tag=086]">
\r
625 <mads:classification>
\r
626 <xsl:attribute name="authority">
\r
627 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
629 <xsl:call-template name="subfieldSelect">
\r
630 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
631 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
632 </xsl:call-template>
\r
633 </mads:classification>
\r
635 <xsl:template match="marc:datafield[@tag=087]">
\r
636 <mads:classification>
\r
637 <xsl:attribute name="authority">
\r
638 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
640 <xsl:call-template name="subfieldSelect">
\r
641 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
642 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
643 </xsl:call-template>
\r
644 </mads:classification>
\r
648 <!-- ========== names ========== -->
\r
649 <xsl:template match="marc:datafield[@tag=100]">
\r
650 <mads:name type="personal">
\r
651 <xsl:call-template name="setAuthority"/>
\r
652 <xsl:call-template name="nameABCDQ"/>
\r
654 <xsl:apply-templates select="*[marc:subfield[not(contains('abcdeq',@code))]]"/>
\r
655 <xsl:call-template name="title"/>
\r
656 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
659 <xsl:template match="marc:datafield[@tag=110]">
\r
660 <mads:name type="corporate">
\r
661 <xsl:call-template name="setAuthority"/>
\r
662 <xsl:call-template name="nameABCDN"/>
\r
664 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
667 <xsl:template match="marc:datafield[@tag=111]">
\r
668 <mads:name type="conference">
\r
669 <xsl:call-template name="setAuthority"/>
\r
670 <xsl:call-template name="nameACDENQ"/>
\r
672 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
675 <xsl:template match="marc:datafield[@tag=400]">
\r
677 <xsl:call-template name="variantTypeAttribute"/>
\r
678 <mads:name type="personal">
\r
679 <xsl:call-template name="nameABCDQ"/>
\r
681 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
682 <xsl:call-template name="title"/>
\r
686 <xsl:template match="marc:datafield[@tag=410]">
\r
688 <xsl:call-template name="variantTypeAttribute"/>
\r
689 <mads:name type="corporate">
\r
690 <xsl:call-template name="nameABCDN"/>
\r
692 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
696 <xsl:template match="marc:datafield[@tag=411]">
\r
698 <xsl:call-template name="variantTypeAttribute"/>
\r
699 <mads:name type="conference">
\r
700 <xsl:call-template name="nameACDENQ"/>
\r
702 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
706 <xsl:template match="marc:datafield[@tag=500]|marc:datafield[@tag=700]">
\r
708 <xsl:call-template name="relatedTypeAttribute"/>
\r
709 <!-- <xsl:call-template name="uri"/> -->
\r
710 <mads:name type="personal">
\r
711 <xsl:call-template name="setAuthority"/>
\r
712 <xsl:call-template name="nameABCDQ"/>
\r
714 <xsl:call-template name="title"/>
\r
715 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
719 <xsl:template match="marc:datafield[@tag=510]|marc:datafield[@tag=710]">
\r
721 <xsl:call-template name="relatedTypeAttribute"/>
\r
722 <!-- <xsl:call-template name="uri"/> -->
\r
723 <mads:name type="corporate">
\r
724 <xsl:call-template name="setAuthority"/>
\r
725 <xsl:call-template name="nameABCDN"/>
\r
727 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
731 <xsl:template match="marc:datafield[@tag=511]|marc:datafield[@tag=711]">
\r
733 <xsl:call-template name="relatedTypeAttribute"/>
\r
734 <!-- <xsl:call-template name="uri"/> -->
\r
735 <mads:name type="conference">
\r
736 <xsl:call-template name="setAuthority"/>
\r
737 <xsl:call-template name="nameACDENQ"/>
\r
739 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
743 <!-- ========== titles ========== -->
\r
744 <xsl:template match="marc:datafield[@tag=130]">
\r
745 <xsl:call-template name="uniform-title"/>
\r
746 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
749 <xsl:template match="marc:datafield[@tag=430]">
\r
751 <xsl:call-template name="variantTypeAttribute"/>
\r
752 <xsl:call-template name="uniform-title"/>
\r
753 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
757 <xsl:template match="marc:datafield[@tag=530]|marc:datafield[@tag=730]">
\r
759 <xsl:call-template name="relatedTypeAttribute"/>
\r
760 <xsl:call-template name="uniform-title"/>
\r
761 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
765 <xsl:template name="title">
\r
766 <xsl:variable name="hasTitle">
\r
767 <xsl:for-each select="marc:subfield">
\r
768 <xsl:if test="(contains('tfghklmors',@code) )">
\r
769 <xsl:value-of select="@code"/>
\r
773 <xsl:if test="string-length($hasTitle) > 0 ">
\r
775 <xsl:call-template name="setAuthority"/>
\r
777 <xsl:variable name="str">
\r
778 <xsl:for-each select="marc:subfield">
\r
779 <xsl:if test="(contains('atfghklmors',@code) )">
\r
780 <xsl:value-of select="text()"/>
\r
781 <xsl:text> </xsl:text>
\r
785 <xsl:call-template name="chopPunctuation">
\r
786 <xsl:with-param name="chopString">
\r
787 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
789 </xsl:call-template>
\r
791 <xsl:call-template name="part"/>
\r
792 <!-- <xsl:call-template name="uri"/> -->
\r
797 <xsl:template name="uniform-title">
\r
798 <xsl:variable name="hasTitle">
\r
799 <xsl:for-each select="marc:subfield">
\r
800 <xsl:if test="(contains('atfghklmors',@code) )">
\r
801 <xsl:value-of select="@code"/>
\r
805 <xsl:if test="string-length($hasTitle) > 0 ">
\r
807 <xsl:call-template name="setAuthority"/>
\r
809 <xsl:variable name="str">
\r
810 <xsl:for-each select="marc:subfield">
\r
811 <xsl:if test="(contains('adfghklmors',@code) )">
\r
812 <xsl:value-of select="text()"/>
\r
813 <xsl:text> </xsl:text>
\r
817 <xsl:call-template name="chopPunctuation">
\r
818 <xsl:with-param name="chopString">
\r
819 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
821 </xsl:call-template>
\r
823 <xsl:call-template name="part"/>
\r
824 <!-- <xsl:call-template name="uri"/> -->
\r
830 <!-- ========== topics ========== -->
\r
831 <xsl:template match="marc:subfield[@code='x']">
\r
833 <xsl:call-template name="chopPunctuation">
\r
834 <xsl:with-param name="chopString">
\r
835 <xsl:value-of select="."/>
\r
837 </xsl:call-template>
\r
843 match="marc:datafield[@tag=150][marc:subfield[@code='a' or @code='b']]|marc:datafield[@tag=180][marc:subfield[@code='x']]">
\r
844 <xsl:call-template name="topic"/>
\r
845 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
848 match="marc:datafield[@tag=450][marc:subfield[@code='a' or @code='b']]|marc:datafield[@tag=480][marc:subfield[@code='x']]">
\r
850 <xsl:call-template name="variantTypeAttribute"/>
\r
851 <xsl:call-template name="topic"/>
\r
855 match="marc:datafield[@tag=550 or @tag=750][marc:subfield[@code='a' or @code='b']]">
\r
857 <xsl:call-template name="relatedTypeAttribute"/>
\r
858 <!-- <xsl:call-template name="uri"/> -->
\r
859 <xsl:call-template name="topic"/>
\r
860 <xsl:apply-templates select="marc:subfield[@code='z']"/>
\r
863 <xsl:template name="topic">
\r
865 <xsl:call-template name="setAuthority"/>
\r
866 <!-- tmee2006 dedupe 550a
\r
867 <xsl:if test="@tag=550 or @tag=750">
\r
868 <xsl:call-template name="subfieldSelect">
\r
869 <xsl:with-param name="codes">ab</xsl:with-param>
\r
870 </xsl:call-template>
\r
874 <xsl:when test="@tag=180 or @tag=480 or @tag=580 or @tag=780">
\r
875 <xsl:call-template name="chopPunctuation">
\r
876 <xsl:with-param name="chopString">
\r
877 <xsl:apply-templates select="marc:subfield[@code='x']"/>
\r
879 </xsl:call-template>
\r
882 <xsl:call-template name="chopPunctuation">
\r
883 <xsl:with-param name="chopString">
\r
885 <xsl:when test="@tag=180 or @tag=480 or @tag=580 or @tag=780">
\r
886 <xsl:apply-templates select="marc:subfield[@code='x']"/>
\r
889 <xsl:call-template name="subfieldSelect">
\r
890 <xsl:with-param name="codes">ab</xsl:with-param>
\r
891 </xsl:call-template>
\r
895 </xsl:call-template>
\r
899 <!-- ========= temporals ========== -->
\r
900 <xsl:template match="marc:subfield[@code='y']">
\r
902 <xsl:call-template name="chopPunctuation">
\r
903 <xsl:with-param name="chopString">
\r
904 <xsl:value-of select="."/>
\r
906 </xsl:call-template>
\r
910 match="marc:datafield[@tag=148][marc:subfield[@code='a']]|marc:datafield[@tag=182 ][marc:subfield[@code='y']]">
\r
911 <xsl:call-template name="temporal"/>
\r
914 match="marc:datafield[@tag=448][marc:subfield[@code='a']]|marc:datafield[@tag=482][marc:subfield[@code='y']]">
\r
916 <xsl:call-template name="variantTypeAttribute"/>
\r
917 <xsl:call-template name="temporal"/>
\r
921 match="marc:datafield[@tag=548 or @tag=748][marc:subfield[@code='a']]|marc:datafield[@tag=582 or @tag=782][marc:subfield[@code='y']]">
\r
923 <xsl:call-template name="relatedTypeAttribute"/>
\r
924 <!-- <xsl:call-template name="uri"/> -->
\r
925 <xsl:call-template name="temporal"/>
\r
928 <xsl:template name="temporal">
\r
930 <xsl:call-template name="setAuthority"/>
\r
931 <xsl:if test="@tag=548 or @tag=748">
\r
932 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
934 <xsl:call-template name="chopPunctuation">
\r
935 <xsl:with-param name="chopString">
\r
937 <xsl:when test="@tag=182 or @tag=482 or @tag=582 or @tag=782">
\r
938 <xsl:apply-templates select="marc:subfield[@code='y']"/>
\r
941 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
945 </xsl:call-template>
\r
947 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
950 <!-- ========== genre ========== -->
\r
951 <xsl:template match="marc:subfield[@code='v']">
\r
953 <xsl:call-template name="chopPunctuation">
\r
954 <xsl:with-param name="chopString">
\r
955 <xsl:value-of select="."/>
\r
957 </xsl:call-template>
\r
961 match="marc:datafield[@tag=155][marc:subfield[@code='a']]|marc:datafield[@tag=185][marc:subfield[@code='v']]">
\r
962 <xsl:call-template name="genre"/>
\r
965 match="marc:datafield[@tag=455][marc:subfield[@code='a']]|marc:datafield[@tag=485 ][marc:subfield[@code='v']]">
\r
967 <xsl:call-template name="variantTypeAttribute"/>
\r
968 <xsl:call-template name="genre"/>
\r
972 <xsl:template match="marc:datafield[@tag=555]">
\r
974 <xsl:call-template name="relatedTypeAttribute"/>
\r
975 <xsl:call-template name="uri"/>
\r
976 <xsl:call-template name="genre"/>
\r
981 match="marc:datafield[@tag=555 or @tag=755][marc:subfield[@code='a']]|marc:datafield[@tag=585][marc:subfield[@code='v']]">
\r
983 <xsl:call-template name="relatedTypeAttribute"/>
\r
984 <xsl:call-template name="genre"/>
\r
987 <xsl:template name="genre">
\r
989 <xsl:if test="@tag=555">
\r
990 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
992 <xsl:call-template name="setAuthority"/>
\r
993 <xsl:call-template name="chopPunctuation">
\r
994 <xsl:with-param name="chopString">
\r
997 <xsl:when test="@tag='555'"/>
\r
998 <xsl:when test="@tag=185 or @tag=485 or @tag=585">
\r
999 <xsl:apply-templates select="marc:subfield[@code='v']"/>
\r
1002 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1006 </xsl:call-template>
\r
1008 <xsl:apply-templates/>
\r
1011 <!-- ========= geographic ========== -->
\r
1012 <xsl:template match="marc:subfield[@code='z']">
\r
1014 <xsl:call-template name="chopPunctuation">
\r
1015 <xsl:with-param name="chopString">
\r
1016 <xsl:value-of select="."/>
\r
1018 </xsl:call-template>
\r
1019 </mads:geographic>
\r
1021 <xsl:template name="geographic">
\r
1024 <xsl:call-template name="setAuthority"/>
\r
1026 <xsl:if test="@tag=151 or @tag=551">
\r
1027 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1029 <xsl:call-template name="chopPunctuation">
\r
1030 <xsl:with-param name="chopString">
\r
1031 <xsl:if test="@tag=181 or @tag=481 or @tag=581">
\r
1032 <xsl:apply-templates select="marc:subfield[@code='z']"/>
\r
1036 <xsl:when test="@tag=181 or @tag=481 or @tag=581">
\r
1037 <xsl:apply-templates select="marc:subfield[@code='z']"/>
\r
1041 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1046 </xsl:call-template>
\r
1047 </mads:geographic>
\r
1048 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1051 match="marc:datafield[@tag=151][marc:subfield[@code='a']]|marc:datafield[@tag=181][marc:subfield[@code='z']]">
\r
1052 <xsl:call-template name="geographic"/>
\r
1055 match="marc:datafield[@tag=451][marc:subfield[@code='a']]|marc:datafield[@tag=481][marc:subfield[@code='z']]">
\r
1057 <xsl:call-template name="variantTypeAttribute"/>
\r
1058 <xsl:call-template name="geographic"/>
\r
1062 match="marc:datafield[@tag=551]|marc:datafield[@tag=581][marc:subfield[@code='z']]">
\r
1064 <xsl:call-template name="relatedTypeAttribute"/>
\r
1065 <!-- <xsl:call-template name="uri"/> -->
\r
1066 <xsl:call-template name="geographic"/>
\r
1069 <xsl:template match="marc:datafield[@tag=580]">
\r
1071 <xsl:call-template name="relatedTypeAttribute"/>
\r
1072 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1076 match="marc:datafield[@tag=751][marc:subfield[@code='z']]|marc:datafield[@tag=781][marc:subfield[@code='z']]">
\r
1078 <xsl:call-template name="relatedTypeAttribute"/>
\r
1079 <xsl:call-template name="geographic"/>
\r
1082 <xsl:template match="marc:datafield[@tag=755]">
\r
1084 <xsl:call-template name="relatedTypeAttribute"/>
\r
1085 <xsl:call-template name="setAuthority"/>
\r
1086 <xsl:call-template name="genre"/>
\r
1087 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1090 <xsl:template match="marc:datafield[@tag=780]">
\r
1092 <xsl:call-template name="relatedTypeAttribute"/>
\r
1093 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1096 <xsl:template match="marc:datafield[@tag=785]">
\r
1098 <xsl:call-template name="relatedTypeAttribute"/>
\r
1099 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1103 <!-- ========== notes ========== -->
\r
1104 <xsl:template match="marc:datafield[667 <= @tag and @tag <= 688]">
\r
1107 <xsl:when test="@tag=667">
\r
1108 <xsl:attribute name="type">nonpublic</xsl:attribute>
\r
1110 <xsl:when test="@tag=670">
\r
1111 <xsl:attribute name="type">source</xsl:attribute>
\r
1113 <xsl:when test="@tag=675">
\r
1114 <xsl:attribute name="type">notFound</xsl:attribute>
\r
1116 <xsl:when test="@tag=678">
\r
1117 <xsl:attribute name="type">history</xsl:attribute>
\r
1119 <xsl:when test="@tag=681">
\r
1120 <xsl:attribute name="type">subject example</xsl:attribute>
\r
1122 <xsl:when test="@tag=682">
\r
1123 <xsl:attribute name="type">deleted heading information</xsl:attribute>
\r
1125 <xsl:when test="@tag=688">
\r
1126 <xsl:attribute name="type">application history</xsl:attribute>
\r
1129 <xsl:call-template name="chopPunctuation">
\r
1130 <xsl:with-param name="chopString">
\r
1132 <xsl:when test="@tag=667 or @tag=675">
\r
1133 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1135 <xsl:when test="@tag=670 or @tag=678">
\r
1136 <xsl:call-template name="subfieldSelect">
\r
1137 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1138 </xsl:call-template>
\r
1140 <xsl:when test="680 <= @tag and @tag <=688">
\r
1141 <xsl:call-template name="subfieldSelect">
\r
1142 <xsl:with-param name="codes">ai</xsl:with-param>
\r
1143 </xsl:call-template>
\r
1147 </xsl:call-template>
\r
1151 <!-- ========== url ========== -->
\r
1152 <xsl:template match="marc:datafield[@tag=856][marc:subfield[@code='u']]">
\r
1154 <xsl:if test="marc:subfield[@code='z' or @code='3']">
\r
1155 <xsl:attribute name="displayLabel">
\r
1156 <xsl:call-template name="subfieldSelect">
\r
1157 <xsl:with-param name="codes">z3</xsl:with-param>
\r
1158 </xsl:call-template>
\r
1161 <xsl:value-of select="marc:subfield[@code='u']"/>
\r
1165 <xsl:template name="relatedTypeAttribute">
\r
1168 test="@tag=500 or @tag=510 or @tag=511 or @tag=548 or @tag=550 or @tag=551 or @tag=555 or @tag=580 or @tag=581 or @tag=582 or @tag=585">
\r
1169 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='a'">
\r
1170 <xsl:attribute name="type">earlier</xsl:attribute>
\r
1172 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='b'">
\r
1173 <xsl:attribute name="type">later</xsl:attribute>
\r
1175 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='t'">
\r
1176 <xsl:attribute name="type">parentOrg</xsl:attribute>
\r
1178 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='g'">
\r
1179 <xsl:attribute name="type">broader</xsl:attribute>
\r
1181 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='h'">
\r
1182 <xsl:attribute name="type">narrower</xsl:attribute>
\r
1184 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='r'">
\r
1185 <xsl:attribute name="type">other</xsl:attribute>
\r
1187 <xsl:if test="contains('fin|', substring(marc:subfield[@code='w'],1,1))">
\r
1188 <xsl:attribute name="type">other</xsl:attribute>
\r
1191 <xsl:when test="@tag=530 or @tag=730">
\r
1192 <xsl:attribute name="type">other</xsl:attribute>
\r
1196 <xsl:attribute name="type">equivalent</xsl:attribute>
\r
1199 <xsl:apply-templates select="marc:subfield[@code='i']"/>
\r
1204 <xsl:template name="variantTypeAttribute">
\r
1207 test="@tag=400 or @tag=410 or @tag=411 or @tag=451 or @tag=455 or @tag=480 or @tag=481 or @tag=482 or @tag=485">
\r
1208 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='d'">
\r
1209 <xsl:attribute name="type">acronym</xsl:attribute>
\r
1211 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='n'">
\r
1212 <xsl:attribute name="type">other</xsl:attribute>
\r
1214 <xsl:if test="contains('fit', substring(marc:subfield[@code='w'],1,1))">
\r
1215 <xsl:attribute name="type">other</xsl:attribute>
\r
1220 <xsl:attribute name="type">other</xsl:attribute>
\r
1223 <xsl:apply-templates select="marc:subfield[@code='i']"/>
\r
1226 <xsl:template name="setAuthority">
\r
1228 <!-- can be called from the datafield or subfield level, so "..//@tag" means
\r
1229 the tag can be at the subfield's parent level or at the datafields own level -->
\r
1232 test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='a' and $controlField008-14='a'">
\r
1233 <xsl:attribute name="authority">
\r
1234 <xsl:text>naf</xsl:text>
\r
1238 test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='a' and $controlField008-14='b'">
\r
1239 <xsl:attribute name="authority">
\r
1240 <xsl:text>lcsh</xsl:text>
\r
1244 test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='k'">
\r
1245 <xsl:attribute name="authority">
\r
1246 <xsl:text>lacnaf</xsl:text>
\r
1250 test="ancestor-or-self::marc:datafield/@tag=100 and @ind1=3 and $controlField008-11='a' and $controlField008-14='b'">
\r
1251 <xsl:attribute name="authority">
\r
1252 <xsl:text>lcsh</xsl:text>
\r
1256 test="ancestor-or-self::marc:datafield/@tag=100 and @ind1=3 and $controlField008-11='k' and $controlField008-14='b'">
\r
1257 <xsl:attribute name="authority">cash</xsl:attribute>
\r
1260 test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='a' and $controlField008-14='a'">
\r
1261 <xsl:attribute name="authority">naf</xsl:attribute>
\r
1264 test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='a' and $controlField008-14='b'">
\r
1265 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1268 test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='k' and $controlField008-14='a'">
\r
1269 <xsl:attribute name="authority">
\r
1270 <xsl:text>lacnaf</xsl:text>
\r
1274 test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='k' and $controlField008-14='b'">
\r
1275 <xsl:attribute name="authority">
\r
1276 <xsl:text>cash</xsl:text>
\r
1280 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='b'">
\r
1281 <xsl:attribute name="authority">
\r
1282 <xsl:text>lcshcl</xsl:text>
\r
1286 test="(ancestor-or-self::marc:datafield/@tag=100 or ancestor-or-self::marc:datafield/@tag=110 or ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130 or ancestor-or-self::marc:datafield/@tag=151) and $controlField008-11='c'">
\r
1287 <xsl:attribute name="authority">
\r
1288 <xsl:text>nlmnaf</xsl:text>
\r
1292 test="(ancestor-or-self::marc:datafield/@tag=100 or ancestor-or-self::marc:datafield/@tag=110 or ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130 or ancestor-or-self::marc:datafield/@tag=151) and $controlField008-11='d'">
\r
1293 <xsl:attribute name="authority">
\r
1294 <xsl:text>nalnaf</xsl:text>
\r
1298 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='r'">
\r
1299 <xsl:attribute name="authority">
\r
1300 <xsl:text>aat</xsl:text>
\r
1304 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='s'">
\r
1305 <xsl:attribute name="authority">sears</xsl:attribute>
\r
1308 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='v'">
\r
1309 <xsl:attribute name="authority">rvm</xsl:attribute>
\r
1312 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='z'">
\r
1313 <xsl:attribute name="authority">
\r
1315 select="../marc:datafield[ancestor-or-self::marc:datafield/@tag=040]/marc:subfield[@code='f']"
\r
1320 test="(ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130) and $controlField008-11='a' and $controlField008-14='a'">
\r
1321 <xsl:attribute name="authority">
\r
1322 <xsl:text>naf</xsl:text>
\r
1326 test="(ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130) and $controlField008-11='a' and $controlField008-14='b'">
\r
1327 <xsl:attribute name="authority">
\r
1328 <xsl:text>lcsh</xsl:text>
\r
1332 test="(ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130) and $controlField008-11='k' ">
\r
1333 <xsl:attribute name="authority">
\r
1334 <xsl:text>lacnaf</xsl:text>
\r
1338 test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='a' ">
\r
1339 <xsl:attribute name="authority">
\r
1340 <xsl:text>lcsh</xsl:text>
\r
1344 test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='a' ">
\r
1345 <xsl:attribute name="authority">
\r
1346 <xsl:text>lcsh</xsl:text>
\r
1350 test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='c' ">
\r
1351 <xsl:attribute name="authority">
\r
1352 <xsl:text>mesh</xsl:text>
\r
1356 test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='d' ">
\r
1357 <xsl:attribute name="authority">
\r
1358 <xsl:text>nal</xsl:text>
\r
1362 test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='k' ">
\r
1363 <xsl:attribute name="authority">
\r
1364 <xsl:text>cash</xsl:text>
\r
1368 test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='a' and $controlField008-14='a'">
\r
1369 <xsl:attribute name="authority">
\r
1370 <xsl:text>naf</xsl:text>
\r
1374 test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='a' and $controlField008-14='b'">
\r
1375 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1378 test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='k' and $controlField008-14='a'">
\r
1379 <xsl:attribute name="authority">lacnaf</xsl:attribute>
\r
1382 test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='k' and $controlField008-14='b'">
\r
1383 <xsl:attribute name="authority">cash</xsl:attribute>
\r
1386 test="(..//ancestor-or-self::marc:datafield/@tag=180 or ..//ancestor-or-self::marc:datafield/@tag=181 or ..//ancestor-or-self::marc:datafield/@tag=182 or ..//ancestor-or-self::marc:datafield/@tag=185) and $controlField008-11='a'">
\r
1387 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1390 test="ancestor-or-self::marc:datafield/@tag=700 and (@ind1='0' or @ind1='1') and @ind2='0'">
\r
1391 <xsl:attribute name="authority">naf</xsl:attribute>
\r
1394 test="ancestor-or-self::marc:datafield/@tag=700 and (@ind1='0' or @ind1='1') and @ind2='5'">
\r
1395 <xsl:attribute name="authority">lacnaf</xsl:attribute>
\r
1397 <xsl:when test="ancestor-or-self::marc:datafield/@tag=700 and @ind1='3' and @ind2='0'">
\r
1398 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1400 <xsl:when test="ancestor-or-self::marc:datafield/@tag=700 and @ind1='3' and @ind2='5'">
\r
1401 <xsl:attribute name="authority">cash</xsl:attribute>
\r
1404 test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='1'">
\r
1405 <xsl:attribute name="authority">lcshcl</xsl:attribute>
\r
1408 test="(ancestor-or-self::marc:datafield/@tag=700 or ancestor-or-self::marc:datafield/@tag=710 or ancestor-or-self::marc:datafield/@tag=711 or ancestor-or-self::marc:datafield/@tag=730 or ancestor-or-self::marc:datafield/@tag=751) and @ind2='2'">
\r
1409 <xsl:attribute name="authority">nlmnaf</xsl:attribute>
\r
1412 test="(ancestor-or-self::marc:datafield/@tag=700 or ancestor-or-self::marc:datafield/@tag=710 or ancestor-or-self::marc:datafield/@tag=711 or ancestor-or-self::marc:datafield/@tag=730 or ancestor-or-self::marc:datafield/@tag=751) and @ind2='3'">
\r
1413 <xsl:attribute name="authority">nalnaf</xsl:attribute>
\r
1416 test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='6'">
\r
1417 <xsl:attribute name="authority">rvm</xsl:attribute>
\r
1420 test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='7'">
\r
1421 <xsl:attribute name="authority">
\r
1422 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
1426 test="(ancestor-or-self::marc:datafield/@tag=710 or ancestor-or-self::marc:datafield/@tag=711 or ancestor-or-self::marc:datafield/@tag=730 or ancestor-or-self::marc:datafield/@tag=751) and @ind2='5'">
\r
1427 <xsl:attribute name="authority">lacnaf</xsl:attribute>
\r
1430 test="(ancestor-or-self::marc:datafield/@tag=710 or ancestor-or-self::marc:datafield/@tag=711 or ancestor-or-self::marc:datafield/@tag=730 or ancestor-or-self::marc:datafield/@tag=751) and @ind2='0'">
\r
1431 <xsl:attribute name="authority">naf</xsl:attribute>
\r
1434 test="(ancestor-or-self::marc:datafield/@tag=748 or ancestor-or-self::marc:datafield/@tag=750 or ancestor-or-self::marc:datafield/@tag=755) and @ind2='0'">
\r
1435 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1438 test="(ancestor-or-self::marc:datafield/@tag=748 or ancestor-or-self::marc:datafield/@tag=750 or ancestor-or-self::marc:datafield/@tag=755) and @ind2='2'">
\r
1439 <xsl:attribute name="authority">mesh</xsl:attribute>
\r
1442 test="(ancestor-or-self::marc:datafield/@tag=748 or ancestor-or-self::marc:datafield/@tag=750 or ancestor-or-self::marc:datafield/@tag=755) and @ind2='3'">
\r
1443 <xsl:attribute name="authority">nal</xsl:attribute>
\r
1446 test="(ancestor-or-self::marc:datafield/@tag=748 or ancestor-or-self::marc:datafield/@tag=750 or ancestor-or-self::marc:datafield/@tag=755) and @ind2='5'">
\r
1447 <xsl:attribute name="authority">cash</xsl:attribute>
\r
1451 <xsl:template match="*"/>
\r