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.14 Fixed bug in mads:geographic attributes syntax ws 05/04/2016
\r
12 2.13 fixed repeating <geographic> tmee 01/31/2014
\r
13 2.12 added $2 authority for <classification> tmee 09/18/2012
\r
14 2.11 added delimiters between <classification> subfields tmee 09/18/2012
\r
15 2.10 fixed type="other" and type="otherType" for mads:related tmee 09/16/2011
\r
16 2.09 fixed professionTerm and genreTerm empty tag error tmee 09/16/2011
\r
17 2.08 fixed marc:subfield @code='i' matching error tmee 09/16/2011
\r
18 2.07 fixed 555 duplication error tmee 08/10/2011
\r
19 2.06 fixed topic subfield error tmee 08/10/2011
\r
20 2.05 fixed title subfield error tmee 06/20/2011
\r
21 2.04 fixed geographicSubdivision mapping for authority element tmee 06/16/2011
\r
22 2.03 added classification for 053, 055, 060, 065, 070, 080, 082, 083, 086, 087 tmee 06/03/2011
\r
23 2.02 added descriptionStandard for 008/10 tmee 04/27/2011
\r
24 2.01 added extensions for 046, 336, 370, 374, 375, 376 tmee 04/08/2011
\r
25 2.00 redefined imported MODS elements in version 1.0 to MADS elements in version 2.0 tmee 02/08/2011
\r
26 1.08 added 372 subfields $a $s $t for <fieldOfActivity> tmee 06/24/2010
\r
27 1.07 removed role/roleTerm 100, 110, 111, 400, 410, 411, 500, 510, 511, 700, 710, 711 tmee 06/24/2010
\r
28 1.06 added strip-space tmee 06/24/2010
\r
29 1.05 added subfield $a for 130, 430, 530 tmee 06/21/2010
\r
30 1.04 fixed 550 z omission ntra 08/11/2008
\r
31 1.03 removed duplication of 550 $a text tmee 11/01/2006
\r
32 1.02 fixed namespace references between mads and mods ntra 10/06/2006
\r
33 1.01 revised rgue/jrad 11/29/05
\r
34 1.00 adapted from MARC21Slim2MODS3.xsl ntra 07/06/05
\r
37 <!-- authority attribute defaults to 'naf' if not set using this authority parameter, for <authority> descriptors: name, titleInfo, geographic -->
\r
38 <xsl:param name="authority"/>
\r
39 <xsl:variable name="auth">
\r
41 <xsl:when test="$authority">
\r
42 <xsl:value-of select="$authority"/>
\r
44 <xsl:otherwise>naf</xsl:otherwise>
\r
47 <xsl:variable name="controlField008" select="marc:controlfield[@tag='008']"/>
\r
48 <xsl:variable name="controlField008-06"
\r
49 select="substring(descendant-or-self::marc:controlfield[@tag=008],7,1)"/>
\r
50 <xsl:variable name="controlField008-11"
\r
51 select="substring(descendant-or-self::marc:controlfield[@tag=008],12,1)"/>
\r
52 <xsl:variable name="controlField008-14"
\r
53 select="substring(descendant-or-self::marc:controlfield[@tag=008],15,1)"/>
\r
54 <xsl:template match="/">
\r
56 <xsl:when test="descendant-or-self::marc:collection">
\r
57 <mads:madsCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
\r
58 xsi:schemaLocation="http://www.loc.gov/mads/v2 http://www.loc.gov/standards/mads/v2/mads-2-0.xsd">
\r
59 <xsl:for-each select="descendant-or-self::marc:collection/marc:record">
\r
60 <mads:mads version="2.0">
\r
61 <xsl:call-template name="marcRecord"/>
\r
64 </mads:madsCollection>
\r
67 <mads:mads version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
\r
68 xsi:schemaLocation="http://www.loc.gov/mads/v2 http://www.loc.gov/standards/mads/mads-2-0.xsd">
\r
69 <xsl:for-each select="descendant-or-self::marc:record">
\r
70 <xsl:call-template name="marcRecord"/>
\r
77 <xsl:template name="marcRecord">
\r
81 <xsl:when test="$controlField008-06='d'">
\r
82 <xsl:attribute name="geographicSubdivision">
\r
83 <xsl:text>direct</xsl:text>
\r
86 <xsl:when test="$controlField008-06='i'">
\r
87 <xsl:attribute name="geographicSubdivision">
\r
88 <xsl:text>indirect</xsl:text>
\r
91 <xsl:when test="$controlField008-06='n'">
\r
92 <xsl:attribute name="geographicSubdivision">
\r
93 <xsl:text>not applicable</xsl:text>
\r
98 <xsl:apply-templates select="marc:datafield[100 <= @tag and @tag < 200]"/>
\r
102 <xsl:apply-templates
\r
103 select="marc:datafield[500 <= @tag and @tag <= 585]|marc:datafield[700 <= @tag and @tag <= 785]"/>
\r
106 <xsl:apply-templates select="marc:datafield[400 <= @tag and @tag <= 485]"/>
\r
109 <xsl:apply-templates select="marc:datafield[667 <= @tag and @tag <= 688]"/>
\r
112 <xsl:apply-templates select="marc:datafield[@tag=856]"/>
\r
113 <xsl:apply-templates select="marc:datafield[@tag=010]"/>
\r
114 <xsl:apply-templates select="marc:datafield[@tag=024]"/>
\r
115 <xsl:apply-templates select="marc:datafield[@tag=372]"/>
\r
117 <!-- classification -->
\r
118 <xsl:apply-templates select="marc:datafield[@tag=053]"/>
\r
119 <xsl:apply-templates select="marc:datafield[@tag=055]"/>
\r
120 <xsl:apply-templates select="marc:datafield[@tag=060]"/>
\r
121 <xsl:apply-templates select="marc:datafield[@tag=065]"/>
\r
122 <xsl:apply-templates select="marc:datafield[@tag=070]"/>
\r
123 <xsl:apply-templates select="marc:datafield[@tag=080]"/>
\r
124 <xsl:apply-templates select="marc:datafield[@tag=082]"/>
\r
125 <xsl:apply-templates select="marc:datafield[@tag=083]"/>
\r
126 <xsl:apply-templates select="marc:datafield[@tag=086]"/>
\r
127 <xsl:apply-templates select="marc:datafield[@tag=087]"/>
\r
129 <!-- affiliation-->
\r
130 <xsl:for-each select="marc:datafield[@tag=373]">
\r
133 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
135 <mads:dateValid point="start">
\r
136 <xsl:value-of select="marc:subfield[@code='s']"/>
\r
138 <mads:dateValid point="end">
\r
139 <xsl:value-of select="marc:subfield[@code='t']"/>
\r
141 </mads:affiliation>
\r
143 <xsl:for-each select="marc:datafield[@tag=371]">
\r
147 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
150 <xsl:value-of select="marc:subfield[@code='b']"/>
\r
153 <xsl:value-of select="marc:subfield[@code='c']"/>
\r
156 <xsl:value-of select="marc:subfield[@code='d']"/>
\r
159 <xsl:value-of select="marc:subfield[@code='e']"/>
\r
163 <xsl:value-of select="marc:subfield[@code='m']"/>
\r
165 </mads:affiliation>
\r
169 <xsl:for-each select="marc:datafield[@tag=336]">
\r
172 <mads:contentType type="text">
\r
173 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
174 </mads:contentType>
\r
175 <mads:contentType type="code">
\r
176 <xsl:value-of select="marc:subfield[@code='b']"/>
\r
177 </mads:contentType>
\r
178 </mads:contentType>
\r
182 <xsl:for-each select="marc:datafield[@tag=374]">
\r
186 <xsl:when test="marc:subfield[@code='a']">
\r
187 <mads:professionTerm>
\r
188 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
189 </mads:professionTerm>
\r
191 <xsl:when test="marc:subfield[@code='s']">
\r
192 <mads:dateValid point="start">
\r
193 <xsl:value-of select="marc:subfield[@code='s']"/>
\r
196 <xsl:when test="marc:subfield[@code='t']">
\r
197 <mads:dateValid point="end">
\r
198 <xsl:value-of select="marc:subfield[@code='t']"/>
\r
206 <xsl:for-each select="marc:datafield[@tag=375]">
\r
210 <xsl:when test="marc:subfield[@code='a']">
\r
212 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
215 <xsl:when test="marc:subfield[@code='s']">
\r
216 <mads:dateValid point="start">
\r
217 <xsl:value-of select="marc:subfield[@code='s']"/>
\r
220 <xsl:when test="marc:subfield[@code='t']">
\r
221 <mads:dateValid point="end">
\r
222 <xsl:value-of select="marc:subfield[@code='t']"/>
\r
230 <xsl:for-each select="marc:datafield[@tag=376]">
\r
232 <mads:familyInformation>
\r
233 <mads:typeOfFamily>
\r
234 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
235 </mads:typeOfFamily>
\r
236 <mads:nameOfProminentMember>
\r
237 <xsl:value-of select="marc:subfield[@code='b']"/>
\r
238 </mads:nameOfProminentMember>
\r
239 <mads:hereditaryTitle>
\r
240 <xsl:value-of select="marc:subfield[@code='c']"/>
\r
241 </mads:hereditaryTitle>
\r
242 <mads:dateValid point="start">
\r
243 <xsl:value-of select="marc:subfield[@code='s']"/>
\r
245 <mads:dateValid point="end">
\r
246 <xsl:value-of select="marc:subfield[@code='t']"/>
\r
248 </mads:familyInformation>
\r
253 <mads:recordOrigin>Converted from MARCXML to MADS version 2.0 (Revision 2.13)</mads:recordOrigin>
\r
254 <!-- <xsl:apply-templates select="marc:datafield[@tag=024]"/> -->
\r
256 <xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='a']"/>
\r
257 <xsl:apply-templates select="marc:controlfield[@tag=005]"/>
\r
258 <xsl:apply-templates select="marc:controlfield[@tag=001]"/>
\r
259 <xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='b']"/>
\r
260 <xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='e']"/>
\r
261 <xsl:for-each select="marc:controlfield[@tag=008]">
\r
262 <xsl:if test="substring(.,11,1)='a'">
\r
263 <mads:descriptionStandard>
\r
264 <xsl:text>earlier rules</xsl:text>
\r
265 </mads:descriptionStandard>
\r
267 <xsl:if test="substring(.,11,1)='b'">
\r
268 <mads:descriptionStandard>
\r
269 <xsl:text>aacr1</xsl:text>
\r
270 </mads:descriptionStandard>
\r
272 <xsl:if test="substring(.,11,1)='c'">
\r
273 <mads:descriptionStandard>
\r
274 <xsl:text>aacr2</xsl:text>
\r
275 </mads:descriptionStandard>
\r
277 <xsl:if test="substring(.,11,1)='d'">
\r
278 <mads:descriptionStandard>
\r
279 <xsl:text>aacr2 compatible</xsl:text>
\r
280 </mads:descriptionStandard>
\r
282 <xsl:if test="substring(.,11,1)='z'">
\r
283 <mads:descriptionStandard>
\r
284 <xsl:text>other rules</xsl:text>
\r
285 </mads:descriptionStandard>
\r
291 <!-- start of secondary templates -->
\r
293 <!-- ======== xlink ======== -->
\r
295 <!-- <xsl:template name="uri">
\r
296 <xsl:for-each select="marc:subfield[@code='0']">
\r
297 <xsl:attribute name="xlink:href">
\r
298 <xsl:value-of select="."/>
\r
303 <xsl:template match="marc:subfield[@code='i']">
\r
304 <xsl:attribute name="otherType">
\r
305 <xsl:value-of select="."/>
\r
309 <!-- No role/roleTerm mapped in MADS 06/24/2010
\r
310 <xsl:template name="role">
\r
311 <xsl:for-each select="marc:subfield[@code='e']">
\r
313 <mads:roleTerm type="text">
\r
314 <xsl:value-of select="."/>
\r
321 <xsl:template name="part">
\r
322 <xsl:variable name="partNumber">
\r
323 <xsl:call-template name="specialSubfieldSelect">
\r
324 <xsl:with-param name="axis">n</xsl:with-param>
\r
325 <xsl:with-param name="anyCodes">n</xsl:with-param>
\r
326 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
\r
327 </xsl:call-template>
\r
329 <xsl:variable name="partName">
\r
330 <xsl:call-template name="specialSubfieldSelect">
\r
331 <xsl:with-param name="axis">p</xsl:with-param>
\r
332 <xsl:with-param name="anyCodes">p</xsl:with-param>
\r
333 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
\r
334 </xsl:call-template>
\r
336 <xsl:if test="string-length(normalize-space($partNumber))">
\r
338 <xsl:call-template name="chopPunctuation">
\r
339 <xsl:with-param name="chopString" select="$partNumber"/>
\r
340 </xsl:call-template>
\r
343 <xsl:if test="string-length(normalize-space($partName))">
\r
345 <xsl:call-template name="chopPunctuation">
\r
346 <xsl:with-param name="chopString" select="$partName"/>
\r
347 </xsl:call-template>
\r
352 <xsl:template name="nameABCDN">
\r
353 <xsl:for-each select="marc:subfield[@code='a']">
\r
355 <xsl:call-template name="chopPunctuation">
\r
356 <xsl:with-param name="chopString" select="."/>
\r
357 </xsl:call-template>
\r
360 <xsl:for-each select="marc:subfield[@code='b']">
\r
362 <xsl:value-of select="."/>
\r
366 test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
\r
368 <xsl:call-template name="subfieldSelect">
\r
369 <xsl:with-param name="codes">cdn</xsl:with-param>
\r
370 </xsl:call-template>
\r
375 <xsl:template name="nameABCDQ">
\r
377 <xsl:call-template name="chopPunctuation">
\r
378 <xsl:with-param name="chopString">
\r
379 <xsl:call-template name="subfieldSelect">
\r
380 <xsl:with-param name="codes">aq</xsl:with-param>
\r
381 </xsl:call-template>
\r
383 </xsl:call-template>
\r
385 <xsl:call-template name="termsOfAddress"/>
\r
386 <xsl:call-template name="nameDate"/>
\r
389 <xsl:template name="nameACDENQ">
\r
391 <xsl:call-template name="subfieldSelect">
\r
392 <xsl:with-param name="codes">acdenq</xsl:with-param>
\r
393 </xsl:call-template>
\r
397 <xsl:template name="nameDate">
\r
398 <xsl:for-each select="marc:subfield[@code='d']">
\r
399 <mads:namePart type="date">
\r
400 <xsl:call-template name="chopPunctuation">
\r
401 <xsl:with-param name="chopString" select="."/>
\r
402 </xsl:call-template>
\r
407 <xsl:template name="specialSubfieldSelect">
\r
408 <xsl:param name="anyCodes"/>
\r
409 <xsl:param name="axis"/>
\r
410 <xsl:param name="beforeCodes"/>
\r
411 <xsl:param name="afterCodes"/>
\r
412 <xsl:variable name="str">
\r
413 <xsl:for-each select="marc:subfield">
\r
415 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
416 <xsl:value-of select="text()"/>
\r
417 <xsl:text> </xsl:text>
\r
421 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
424 <xsl:template name="termsOfAddress">
\r
425 <xsl:if test="marc:subfield[@code='b' or @code='c']">
\r
426 <mads:namePart type="termsOfAddress">
\r
427 <xsl:call-template name="chopPunctuation">
\r
428 <xsl:with-param name="chopString">
\r
429 <xsl:call-template name="subfieldSelect">
\r
430 <xsl:with-param name="codes">bc</xsl:with-param>
\r
431 </xsl:call-template>
\r
433 </xsl:call-template>
\r
438 <xsl:template name="displayLabel">
\r
439 <xsl:if test="marc:subfield[@code='z']">
\r
440 <xsl:attribute name="displayLabel">
\r
441 <xsl:value-of select="marc:subfield[@code='z']"/>
\r
444 <xsl:if test="marc:subfield[@code='3']">
\r
445 <xsl:attribute name="displayLabel">
\r
446 <xsl:value-of select="marc:subfield[@code='3']"/>
\r
451 <xsl:template name="isInvalid">
\r
452 <xsl:if test="@code='z'">
\r
453 <xsl:attribute name="invalid">yes</xsl:attribute>
\r
457 <xsl:template name="sub2Attribute">
\r
459 <xsl:if test="../marc:subfield[@code='2']">
\r
460 <xsl:attribute name="type">
\r
461 <xsl:value-of select="../marc:subfield[@code='2']"/>
\r
466 <xsl:template match="marc:controlfield[@tag=001]">
\r
467 <mads:recordIdentifier>
\r
468 <xsl:if test="../marc:controlfield[@tag=003]">
\r
469 <xsl:attribute name="source">
\r
470 <xsl:value-of select="../marc:controlfield[@tag=003]"/>
\r
473 <xsl:value-of select="."/>
\r
474 </mads:recordIdentifier>
\r
477 <xsl:template match="marc:controlfield[@tag=005]">
\r
478 <mads:recordChangeDate encoding="iso8601">
\r
479 <xsl:value-of select="."/>
\r
480 </mads:recordChangeDate>
\r
483 <xsl:template match="marc:controlfield[@tag=008]">
\r
484 <mads:recordCreationDate encoding="marc">
\r
485 <xsl:value-of select="substring(.,1,6)"/>
\r
486 </mads:recordCreationDate>
\r
489 <xsl:template match="marc:datafield[@tag=010]">
\r
490 <xsl:for-each select="marc:subfield">
\r
491 <mads:identifier type="lccn">
\r
492 <xsl:call-template name="isInvalid"/>
\r
493 <xsl:value-of select="."/>
\r
498 <xsl:template match="marc:datafield[@tag=024]">
\r
499 <xsl:for-each select="marc:subfield[not(@code=2)]">
\r
501 <xsl:call-template name="isInvalid"/>
\r
502 <xsl:call-template name="sub2Attribute"/>
\r
503 <xsl:value-of select="."/>
\r
508 <!-- ========== 372 ========== -->
\r
509 <xsl:template match="marc:datafield[@tag=372]">
\r
510 <mads:fieldOfActivity>
\r
511 <xsl:call-template name="subfieldSelect">
\r
512 <xsl:with-param name="codes">a</xsl:with-param>
\r
513 </xsl:call-template>
\r
514 <xsl:text>-</xsl:text>
\r
515 <xsl:call-template name="subfieldSelect">
\r
516 <xsl:with-param name="codes">st</xsl:with-param>
\r
517 </xsl:call-template>
\r
518 </mads:fieldOfActivity>
\r
522 <!-- ========== 040 ========== -->
\r
523 <xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='a']">
\r
524 <mads:recordContentSource authority="marcorg">
\r
525 <xsl:value-of select="."/>
\r
526 </mads:recordContentSource>
\r
529 <xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='b']">
\r
530 <mads:languageOfCataloging>
\r
531 <mads:languageTerm authority="iso639-2b" type="code">
\r
532 <xsl:value-of select="."/>
\r
533 </mads:languageTerm>
\r
534 </mads:languageOfCataloging>
\r
537 <xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='e']">
\r
538 <mads:descriptionStandard>
\r
539 <xsl:value-of select="."/>
\r
540 </mads:descriptionStandard>
\r
543 <!-- ========== classification 2.03 ========== -->
\r
545 <xsl:template match="marc:datafield[@tag=053]">
\r
546 <mads:classification>
\r
547 <xsl:call-template name="subfieldSelect">
\r
548 <xsl:with-param name="codes">abcdxyz</xsl:with-param>
\r
549 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
550 </xsl:call-template>
\r
551 </mads:classification>
\r
554 <xsl:template match="marc:datafield[@tag=055]">
\r
555 <mads:classification>
\r
556 <xsl:call-template name="subfieldSelect">
\r
557 <xsl:with-param name="codes">abcdxyz</xsl:with-param>
\r
558 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
559 </xsl:call-template>
\r
560 </mads:classification>
\r
563 <xsl:template match="marc:datafield[@tag=060]">
\r
564 <mads:classification>
\r
565 <xsl:call-template name="subfieldSelect">
\r
566 <xsl:with-param name="codes">abcdxyz</xsl:with-param>
\r
567 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
568 </xsl:call-template>
\r
569 </mads:classification>
\r
571 <xsl:template match="marc:datafield[@tag=065]">
\r
572 <mads:classification>
\r
573 <xsl:attribute name="authority">
\r
574 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
576 <xsl:call-template name="subfieldSelect">
\r
577 <xsl:with-param name="codes">abcdxyz</xsl:with-param>
\r
578 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
579 </xsl:call-template>
\r
580 </mads:classification>
\r
582 <xsl:template match="marc:datafield[@tag=070]">
\r
583 <mads:classification>
\r
584 <xsl:call-template name="subfieldSelect">
\r
585 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
586 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
587 </xsl:call-template>
\r
588 </mads:classification>
\r
590 <xsl:template match="marc:datafield[@tag=080]">
\r
591 <mads:classification>
\r
592 <xsl:attribute name="authority">
\r
593 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
595 <xsl:call-template name="subfieldSelect">
\r
596 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
597 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
598 </xsl:call-template>
\r
599 </mads:classification>
\r
601 <xsl:template match="marc:datafield[@tag=082]">
\r
602 <mads:classification>
\r
603 <xsl:attribute name="authority">
\r
604 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
606 <xsl:call-template name="subfieldSelect">
\r
607 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
608 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
609 </xsl:call-template>
\r
610 </mads:classification>
\r
612 <xsl:template match="marc:datafield[@tag=083]">
\r
613 <mads:classification>
\r
614 <xsl:attribute name="authority">
\r
615 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
617 <xsl:call-template name="subfieldSelect">
\r
618 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
619 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
620 </xsl:call-template>
\r
621 </mads:classification>
\r
623 <xsl:template match="marc:datafield[@tag=086]">
\r
624 <mads:classification>
\r
625 <xsl:attribute name="authority">
\r
626 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
628 <xsl:call-template name="subfieldSelect">
\r
629 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
630 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
631 </xsl:call-template>
\r
632 </mads:classification>
\r
634 <xsl:template match="marc:datafield[@tag=087]">
\r
635 <mads:classification>
\r
636 <xsl:attribute name="authority">
\r
637 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
639 <xsl:call-template name="subfieldSelect">
\r
640 <xsl:with-param name="codes">abcdxyz5</xsl:with-param>
\r
641 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
642 </xsl:call-template>
\r
643 </mads:classification>
\r
647 <!-- ========== names ========== -->
\r
648 <xsl:template match="marc:datafield[@tag=100]">
\r
649 <mads:name type="personal">
\r
650 <xsl:call-template name="setAuthority"/>
\r
651 <xsl:call-template name="nameABCDQ"/>
\r
653 <xsl:apply-templates select="*[marc:subfield[not(contains('abcdeq',@code))]]"/>
\r
654 <xsl:call-template name="title"/>
\r
655 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
658 <xsl:template match="marc:datafield[@tag=110]">
\r
659 <mads:name type="corporate">
\r
660 <xsl:call-template name="setAuthority"/>
\r
661 <xsl:call-template name="nameABCDN"/>
\r
663 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
666 <xsl:template match="marc:datafield[@tag=111]">
\r
667 <mads:name type="conference">
\r
668 <xsl:call-template name="setAuthority"/>
\r
669 <xsl:call-template name="nameACDENQ"/>
\r
671 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
674 <xsl:template match="marc:datafield[@tag=400]">
\r
676 <xsl:call-template name="variantTypeAttribute"/>
\r
677 <mads:name type="personal">
\r
678 <xsl:call-template name="nameABCDQ"/>
\r
680 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
681 <xsl:call-template name="title"/>
\r
685 <xsl:template match="marc:datafield[@tag=410]">
\r
687 <xsl:call-template name="variantTypeAttribute"/>
\r
688 <mads:name type="corporate">
\r
689 <xsl:call-template name="nameABCDN"/>
\r
691 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
695 <xsl:template match="marc:datafield[@tag=411]">
\r
697 <xsl:call-template name="variantTypeAttribute"/>
\r
698 <mads:name type="conference">
\r
699 <xsl:call-template name="nameACDENQ"/>
\r
701 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
705 <xsl:template match="marc:datafield[@tag=500]|marc:datafield[@tag=700]">
\r
707 <xsl:call-template name="relatedTypeAttribute"/>
\r
708 <!-- <xsl:call-template name="uri"/> -->
\r
709 <mads:name type="personal">
\r
710 <xsl:call-template name="setAuthority"/>
\r
711 <xsl:call-template name="nameABCDQ"/>
\r
713 <xsl:call-template name="title"/>
\r
714 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
718 <xsl:template match="marc:datafield[@tag=510]|marc:datafield[@tag=710]">
\r
720 <xsl:call-template name="relatedTypeAttribute"/>
\r
721 <!-- <xsl:call-template name="uri"/> -->
\r
722 <mads:name type="corporate">
\r
723 <xsl:call-template name="setAuthority"/>
\r
724 <xsl:call-template name="nameABCDN"/>
\r
726 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
730 <xsl:template match="marc:datafield[@tag=511]|marc:datafield[@tag=711]">
\r
732 <xsl:call-template name="relatedTypeAttribute"/>
\r
733 <!-- <xsl:call-template name="uri"/> -->
\r
734 <mads:name type="conference">
\r
735 <xsl:call-template name="setAuthority"/>
\r
736 <xsl:call-template name="nameACDENQ"/>
\r
738 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
742 <!-- ========== titles ========== -->
\r
743 <xsl:template match="marc:datafield[@tag=130]">
\r
744 <xsl:call-template name="uniform-title"/>
\r
745 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
748 <xsl:template match="marc:datafield[@tag=430]">
\r
750 <xsl:call-template name="variantTypeAttribute"/>
\r
751 <xsl:call-template name="uniform-title"/>
\r
752 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
756 <xsl:template match="marc:datafield[@tag=530]|marc:datafield[@tag=730]">
\r
758 <xsl:call-template name="relatedTypeAttribute"/>
\r
759 <xsl:call-template name="uniform-title"/>
\r
760 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
764 <xsl:template name="title">
\r
765 <xsl:variable name="hasTitle">
\r
766 <xsl:for-each select="marc:subfield">
\r
767 <xsl:if test="(contains('tfghklmors',@code) )">
\r
768 <xsl:value-of select="@code"/>
\r
772 <xsl:if test="string-length($hasTitle) > 0 ">
\r
774 <xsl:call-template name="setAuthority"/>
\r
776 <xsl:variable name="str">
\r
777 <xsl:for-each select="marc:subfield">
\r
778 <xsl:if test="(contains('atfghklmors',@code) )">
\r
779 <xsl:value-of select="text()"/>
\r
780 <xsl:text> </xsl:text>
\r
784 <xsl:call-template name="chopPunctuation">
\r
785 <xsl:with-param name="chopString">
\r
786 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
788 </xsl:call-template>
\r
790 <xsl:call-template name="part"/>
\r
791 <!-- <xsl:call-template name="uri"/> -->
\r
796 <xsl:template name="uniform-title">
\r
797 <xsl:variable name="hasTitle">
\r
798 <xsl:for-each select="marc:subfield">
\r
799 <xsl:if test="(contains('atfghklmors',@code) )">
\r
800 <xsl:value-of select="@code"/>
\r
804 <xsl:if test="string-length($hasTitle) > 0 ">
\r
806 <xsl:call-template name="setAuthority"/>
\r
808 <xsl:variable name="str">
\r
809 <xsl:for-each select="marc:subfield">
\r
810 <xsl:if test="(contains('adfghklmors',@code) )">
\r
811 <xsl:value-of select="text()"/>
\r
812 <xsl:text> </xsl:text>
\r
816 <xsl:call-template name="chopPunctuation">
\r
817 <xsl:with-param name="chopString">
\r
818 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
820 </xsl:call-template>
\r
822 <xsl:call-template name="part"/>
\r
823 <!-- <xsl:call-template name="uri"/> -->
\r
829 <!-- ========== topics ========== -->
\r
830 <xsl:template match="marc:subfield[@code='x']">
\r
832 <xsl:call-template name="chopPunctuation">
\r
833 <xsl:with-param name="chopString">
\r
834 <xsl:value-of select="."/>
\r
836 </xsl:call-template>
\r
842 match="marc:datafield[@tag=150][marc:subfield[@code='a' or @code='b']]|marc:datafield[@tag=180][marc:subfield[@code='x']]">
\r
843 <xsl:call-template name="topic"/>
\r
844 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
847 match="marc:datafield[@tag=450][marc:subfield[@code='a' or @code='b']]|marc:datafield[@tag=480][marc:subfield[@code='x']]">
\r
849 <xsl:call-template name="variantTypeAttribute"/>
\r
850 <xsl:call-template name="topic"/>
\r
854 match="marc:datafield[@tag=550 or @tag=750][marc:subfield[@code='a' or @code='b']]">
\r
856 <xsl:call-template name="relatedTypeAttribute"/>
\r
857 <!-- <xsl:call-template name="uri"/> -->
\r
858 <xsl:call-template name="topic"/>
\r
859 <xsl:apply-templates select="marc:subfield[@code='z']"/>
\r
862 <xsl:template name="topic">
\r
864 <xsl:call-template name="setAuthority"/>
\r
865 <!-- tmee2006 dedupe 550a
\r
866 <xsl:if test="@tag=550 or @tag=750">
\r
867 <xsl:call-template name="subfieldSelect">
\r
868 <xsl:with-param name="codes">ab</xsl:with-param>
\r
869 </xsl:call-template>
\r
873 <xsl:when test="@tag=180 or @tag=480 or @tag=580 or @tag=780">
\r
874 <xsl:call-template name="chopPunctuation">
\r
875 <xsl:with-param name="chopString">
\r
876 <xsl:apply-templates select="marc:subfield[@code='x']"/>
\r
878 </xsl:call-template>
\r
881 <xsl:call-template name="chopPunctuation">
\r
882 <xsl:with-param name="chopString">
\r
884 <xsl:when test="@tag=180 or @tag=480 or @tag=580 or @tag=780">
\r
885 <xsl:apply-templates select="marc:subfield[@code='x']"/>
\r
888 <xsl:call-template name="subfieldSelect">
\r
889 <xsl:with-param name="codes">ab</xsl:with-param>
\r
890 </xsl:call-template>
\r
894 </xsl:call-template>
\r
898 <!-- ========= temporals ========== -->
\r
899 <xsl:template match="marc:subfield[@code='y']">
\r
901 <xsl:call-template name="chopPunctuation">
\r
902 <xsl:with-param name="chopString">
\r
903 <xsl:value-of select="."/>
\r
905 </xsl:call-template>
\r
909 match="marc:datafield[@tag=148][marc:subfield[@code='a']]|marc:datafield[@tag=182 ][marc:subfield[@code='y']]">
\r
910 <xsl:call-template name="temporal"/>
\r
913 match="marc:datafield[@tag=448][marc:subfield[@code='a']]|marc:datafield[@tag=482][marc:subfield[@code='y']]">
\r
915 <xsl:call-template name="variantTypeAttribute"/>
\r
916 <xsl:call-template name="temporal"/>
\r
920 match="marc:datafield[@tag=548 or @tag=748][marc:subfield[@code='a']]|marc:datafield[@tag=582 or @tag=782][marc:subfield[@code='y']]">
\r
922 <xsl:call-template name="relatedTypeAttribute"/>
\r
923 <!-- <xsl:call-template name="uri"/> -->
\r
924 <xsl:call-template name="temporal"/>
\r
927 <xsl:template name="temporal">
\r
929 <xsl:call-template name="setAuthority"/>
\r
930 <xsl:if test="@tag=548 or @tag=748">
\r
931 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
933 <xsl:call-template name="chopPunctuation">
\r
934 <xsl:with-param name="chopString">
\r
936 <xsl:when test="@tag=182 or @tag=482 or @tag=582 or @tag=782">
\r
937 <xsl:apply-templates select="marc:subfield[@code='y']"/>
\r
940 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
944 </xsl:call-template>
\r
946 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
949 <!-- ========== genre ========== -->
\r
950 <xsl:template match="marc:subfield[@code='v']">
\r
952 <xsl:call-template name="chopPunctuation">
\r
953 <xsl:with-param name="chopString">
\r
954 <xsl:value-of select="."/>
\r
956 </xsl:call-template>
\r
960 match="marc:datafield[@tag=155][marc:subfield[@code='a']]|marc:datafield[@tag=185][marc:subfield[@code='v']]">
\r
961 <xsl:call-template name="genre"/>
\r
964 match="marc:datafield[@tag=455][marc:subfield[@code='a']]|marc:datafield[@tag=485 ][marc:subfield[@code='v']]">
\r
966 <xsl:call-template name="variantTypeAttribute"/>
\r
967 <xsl:call-template name="genre"/>
\r
971 <xsl:template match="marc:datafield[@tag=555]">
\r
973 <xsl:call-template name="relatedTypeAttribute"/>
\r
974 <xsl:call-template name="uri"/>
\r
975 <xsl:call-template name="genre"/>
\r
980 match="marc:datafield[@tag=555 or @tag=755][marc:subfield[@code='a']]|marc:datafield[@tag=585][marc:subfield[@code='v']]">
\r
982 <xsl:call-template name="relatedTypeAttribute"/>
\r
983 <xsl:call-template name="genre"/>
\r
986 <xsl:template name="genre">
\r
988 <xsl:if test="@tag=555">
\r
989 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
991 <xsl:call-template name="setAuthority"/>
\r
992 <xsl:call-template name="chopPunctuation">
\r
993 <xsl:with-param name="chopString">
\r
996 <xsl:when test="@tag='555'"/>
\r
997 <xsl:when test="@tag=185 or @tag=485 or @tag=585">
\r
998 <xsl:apply-templates select="marc:subfield[@code='v']"/>
\r
1001 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1005 </xsl:call-template>
\r
1007 <xsl:apply-templates/>
\r
1010 <!-- ========= geographic ========== -->
\r
1011 <xsl:template match="marc:subfield[@code='z']">
\r
1013 <xsl:call-template name="chopPunctuation">
\r
1014 <xsl:with-param name="chopString">
\r
1015 <xsl:value-of select="."/>
\r
1017 </xsl:call-template>
\r
1018 </mads:geographic>
\r
1020 <xsl:template name="geographic">
\r
1023 <xsl:call-template name="setAuthority"/>
\r
1025 <xsl:if test="@tag=151 or @tag=551">
\r
1026 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1028 <xsl:call-template name="chopPunctuation">
\r
1029 <xsl:with-param name="chopString">
\r
1030 <xsl:if test="@tag=181 or @tag=481 or @tag=581">
\r
1031 <xsl:apply-templates select="marc:subfield[@code='z']"/>
\r
1035 <xsl:when test="@tag=181 or @tag=481 or @tag=581">
\r
1036 <xsl:apply-templates select="marc:subfield[@code='z']"/>
\r
1040 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1045 </xsl:call-template>
\r
1046 </mads:geographic>
\r
1047 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1050 match="marc:datafield[@tag=151][marc:subfield[@code='a']]|marc:datafield[@tag=181][marc:subfield[@code='z']]">
\r
1051 <xsl:call-template name="geographic"/>
\r
1054 match="marc:datafield[@tag=451][marc:subfield[@code='a']]|marc:datafield[@tag=481][marc:subfield[@code='z']]">
\r
1056 <xsl:call-template name="variantTypeAttribute"/>
\r
1057 <xsl:call-template name="geographic"/>
\r
1061 match="marc:datafield[@tag=551]|marc:datafield[@tag=581][marc:subfield[@code='z']]">
\r
1063 <xsl:call-template name="relatedTypeAttribute"/>
\r
1064 <!-- <xsl:call-template name="uri"/> -->
\r
1065 <xsl:call-template name="geographic"/>
\r
1068 <xsl:template match="marc:datafield[@tag=580]">
\r
1070 <xsl:call-template name="relatedTypeAttribute"/>
\r
1071 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1075 match="marc:datafield[@tag=751][marc:subfield[@code='z']]|marc:datafield[@tag=781][marc:subfield[@code='z']]">
\r
1077 <xsl:call-template name="relatedTypeAttribute"/>
\r
1078 <xsl:call-template name="geographic"/>
\r
1081 <xsl:template match="marc:datafield[@tag=755]">
\r
1083 <xsl:call-template name="relatedTypeAttribute"/>
\r
1084 <xsl:call-template name="genre"/>
\r
1085 <xsl:call-template name="setAuthority"/>
\r
1086 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1089 <xsl:template match="marc:datafield[@tag=780]">
\r
1091 <xsl:call-template name="relatedTypeAttribute"/>
\r
1092 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1095 <xsl:template match="marc:datafield[@tag=785]">
\r
1097 <xsl:call-template name="relatedTypeAttribute"/>
\r
1098 <xsl:apply-templates select="marc:subfield[@code!='i']"/>
\r
1102 <!-- ========== notes ========== -->
\r
1103 <xsl:template match="marc:datafield[667 <= @tag and @tag <= 688]">
\r
1106 <xsl:when test="@tag=667">
\r
1107 <xsl:attribute name="type">nonpublic</xsl:attribute>
\r
1109 <xsl:when test="@tag=670">
\r
1110 <xsl:attribute name="type">source</xsl:attribute>
\r
1112 <xsl:when test="@tag=675">
\r
1113 <xsl:attribute name="type">notFound</xsl:attribute>
\r
1115 <xsl:when test="@tag=678">
\r
1116 <xsl:attribute name="type">history</xsl:attribute>
\r
1118 <xsl:when test="@tag=681">
\r
1119 <xsl:attribute name="type">subject example</xsl:attribute>
\r
1121 <xsl:when test="@tag=682">
\r
1122 <xsl:attribute name="type">deleted heading information</xsl:attribute>
\r
1124 <xsl:when test="@tag=688">
\r
1125 <xsl:attribute name="type">application history</xsl:attribute>
\r
1128 <xsl:call-template name="chopPunctuation">
\r
1129 <xsl:with-param name="chopString">
\r
1131 <xsl:when test="@tag=667 or @tag=675">
\r
1132 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1134 <xsl:when test="@tag=670 or @tag=678">
\r
1135 <xsl:call-template name="subfieldSelect">
\r
1136 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1137 </xsl:call-template>
\r
1139 <xsl:when test="680 <= @tag and @tag <=688">
\r
1140 <xsl:call-template name="subfieldSelect">
\r
1141 <xsl:with-param name="codes">ai</xsl:with-param>
\r
1142 </xsl:call-template>
\r
1146 </xsl:call-template>
\r
1150 <!-- ========== url ========== -->
\r
1151 <xsl:template match="marc:datafield[@tag=856][marc:subfield[@code='u']]">
\r
1153 <xsl:if test="marc:subfield[@code='z' or @code='3']">
\r
1154 <xsl:attribute name="displayLabel">
\r
1155 <xsl:call-template name="subfieldSelect">
\r
1156 <xsl:with-param name="codes">z3</xsl:with-param>
\r
1157 </xsl:call-template>
\r
1160 <xsl:value-of select="marc:subfield[@code='u']"/>
\r
1164 <xsl:template name="relatedTypeAttribute">
\r
1167 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
1168 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='a'">
\r
1169 <xsl:attribute name="type">earlier</xsl:attribute>
\r
1171 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='b'">
\r
1172 <xsl:attribute name="type">later</xsl:attribute>
\r
1174 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='t'">
\r
1175 <xsl:attribute name="type">parentOrg</xsl:attribute>
\r
1177 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='g'">
\r
1178 <xsl:attribute name="type">broader</xsl:attribute>
\r
1180 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='h'">
\r
1181 <xsl:attribute name="type">narrower</xsl:attribute>
\r
1183 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='r'">
\r
1184 <xsl:attribute name="type">other</xsl:attribute>
\r
1186 <xsl:if test="contains('fin|', substring(marc:subfield[@code='w'],1,1))">
\r
1187 <xsl:attribute name="type">other</xsl:attribute>
\r
1190 <xsl:when test="@tag=530 or @tag=730">
\r
1191 <xsl:attribute name="type">other</xsl:attribute>
\r
1195 <xsl:attribute name="type">equivalent</xsl:attribute>
\r
1198 <xsl:apply-templates select="marc:subfield[@code='i']"/>
\r
1203 <xsl:template name="variantTypeAttribute">
\r
1206 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
1207 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='d'">
\r
1208 <xsl:attribute name="type">acronym</xsl:attribute>
\r
1210 <xsl:if test="substring(marc:subfield[@code='w'],1,1)='n'">
\r
1211 <xsl:attribute name="type">other</xsl:attribute>
\r
1213 <xsl:if test="contains('fit', substring(marc:subfield[@code='w'],1,1))">
\r
1214 <xsl:attribute name="type">other</xsl:attribute>
\r
1219 <xsl:attribute name="type">other</xsl:attribute>
\r
1222 <xsl:apply-templates select="marc:subfield[@code='i']"/>
\r
1225 <xsl:template name="setAuthority">
\r
1227 <!-- can be called from the datafield or subfield level, so "..//@tag" means
\r
1228 the tag can be at the subfield's parent level or at the datafields own level -->
\r
1231 test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='a' and $controlField008-14='a'">
\r
1232 <xsl:attribute name="authority">
\r
1233 <xsl:text>naf</xsl:text>
\r
1237 test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='a' and $controlField008-14='b'">
\r
1238 <xsl:attribute name="authority">
\r
1239 <xsl:text>lcsh</xsl:text>
\r
1243 test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='k'">
\r
1244 <xsl:attribute name="authority">
\r
1245 <xsl:text>lacnaf</xsl:text>
\r
1249 test="ancestor-or-self::marc:datafield/@tag=100 and @ind1=3 and $controlField008-11='a' and $controlField008-14='b'">
\r
1250 <xsl:attribute name="authority">
\r
1251 <xsl:text>lcsh</xsl:text>
\r
1255 test="ancestor-or-self::marc:datafield/@tag=100 and @ind1=3 and $controlField008-11='k' and $controlField008-14='b'">
\r
1256 <xsl:attribute name="authority">cash</xsl:attribute>
\r
1259 test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='a' and $controlField008-14='a'">
\r
1260 <xsl:attribute name="authority">naf</xsl:attribute>
\r
1263 test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='a' and $controlField008-14='b'">
\r
1264 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1267 test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='k' and $controlField008-14='a'">
\r
1268 <xsl:attribute name="authority">
\r
1269 <xsl:text>lacnaf</xsl:text>
\r
1273 test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='k' and $controlField008-14='b'">
\r
1274 <xsl:attribute name="authority">
\r
1275 <xsl:text>cash</xsl:text>
\r
1279 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='b'">
\r
1280 <xsl:attribute name="authority">
\r
1281 <xsl:text>lcshcl</xsl:text>
\r
1285 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
1286 <xsl:attribute name="authority">
\r
1287 <xsl:text>nlmnaf</xsl:text>
\r
1291 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
1292 <xsl:attribute name="authority">
\r
1293 <xsl:text>nalnaf</xsl:text>
\r
1297 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='r'">
\r
1298 <xsl:attribute name="authority">
\r
1299 <xsl:text>aat</xsl:text>
\r
1303 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='s'">
\r
1304 <xsl:attribute name="authority">sears</xsl:attribute>
\r
1307 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='v'">
\r
1308 <xsl:attribute name="authority">rvm</xsl:attribute>
\r
1311 test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='z'">
\r
1312 <xsl:attribute name="authority">
\r
1314 select="../marc:datafield[ancestor-or-self::marc:datafield/@tag=040]/marc:subfield[@code='f']"
\r
1319 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
1320 <xsl:attribute name="authority">
\r
1321 <xsl:text>naf</xsl:text>
\r
1325 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
1326 <xsl:attribute name="authority">
\r
1327 <xsl:text>lcsh</xsl:text>
\r
1331 test="(ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130) and $controlField008-11='k' ">
\r
1332 <xsl:attribute name="authority">
\r
1333 <xsl:text>lacnaf</xsl:text>
\r
1337 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
1338 <xsl:attribute name="authority">
\r
1339 <xsl:text>lcsh</xsl:text>
\r
1343 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
1344 <xsl:attribute name="authority">
\r
1345 <xsl:text>lcsh</xsl:text>
\r
1349 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
1350 <xsl:attribute name="authority">
\r
1351 <xsl:text>mesh</xsl:text>
\r
1355 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
1356 <xsl:attribute name="authority">
\r
1357 <xsl:text>nal</xsl:text>
\r
1361 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
1362 <xsl:attribute name="authority">
\r
1363 <xsl:text>cash</xsl:text>
\r
1367 test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='a' and $controlField008-14='a'">
\r
1368 <xsl:attribute name="authority">
\r
1369 <xsl:text>naf</xsl:text>
\r
1373 test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='a' and $controlField008-14='b'">
\r
1374 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1377 test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='k' and $controlField008-14='a'">
\r
1378 <xsl:attribute name="authority">lacnaf</xsl:attribute>
\r
1381 test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='k' and $controlField008-14='b'">
\r
1382 <xsl:attribute name="authority">cash</xsl:attribute>
\r
1385 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
1386 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1389 test="ancestor-or-self::marc:datafield/@tag=700 and (@ind1='0' or @ind1='1') and @ind2='0'">
\r
1390 <xsl:attribute name="authority">naf</xsl:attribute>
\r
1393 test="ancestor-or-self::marc:datafield/@tag=700 and (@ind1='0' or @ind1='1') and @ind2='5'">
\r
1394 <xsl:attribute name="authority">lacnaf</xsl:attribute>
\r
1396 <xsl:when test="ancestor-or-self::marc:datafield/@tag=700 and @ind1='3' and @ind2='0'">
\r
1397 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1399 <xsl:when test="ancestor-or-self::marc:datafield/@tag=700 and @ind1='3' and @ind2='5'">
\r
1400 <xsl:attribute name="authority">cash</xsl:attribute>
\r
1403 test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='1'">
\r
1404 <xsl:attribute name="authority">lcshcl</xsl:attribute>
\r
1407 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
1408 <xsl:attribute name="authority">nlmnaf</xsl:attribute>
\r
1411 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
1412 <xsl:attribute name="authority">nalnaf</xsl:attribute>
\r
1415 test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='6'">
\r
1416 <xsl:attribute name="authority">rvm</xsl:attribute>
\r
1419 test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='7'">
\r
1420 <xsl:attribute name="authority">
\r
1421 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
1425 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
1426 <xsl:attribute name="authority">lacnaf</xsl:attribute>
\r
1429 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
1430 <xsl:attribute name="authority">naf</xsl:attribute>
\r
1433 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
1434 <xsl:attribute name="authority">lcsh</xsl:attribute>
\r
1437 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
1438 <xsl:attribute name="authority">mesh</xsl:attribute>
\r
1441 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
1442 <xsl:attribute name="authority">nal</xsl:attribute>
\r
1445 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
1446 <xsl:attribute name="authority">cash</xsl:attribute>
\r
1450 <xsl:template match="*"/>
\r