1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <xsl:stylesheet version="1.0" xmlns:xlink="http://www.w3.org/TR/xlink" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns="http://www.loc.gov/mods/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="marc">
\r
3 <xsl:include href="MARC21slimUtils.xsl"/>
\r
4 <xsl:output method="xml" indent="yes"/>
\r
6 <xsl:template match="/">
\r
7 <collection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/ http://www.loc.gov/standards/marcxml/schema/mods.xsd">
\r
8 <xsl:apply-templates/>
\r
12 <xsl:template match="marc:record">
\r
14 <xsl:variable name="leader" select="marc:leader"/>
\r
15 <xsl:variable name="leader6" select="substring($leader,7,1)"/>
\r
16 <xsl:variable name="leader7" select="substring($leader,8,1)"/>
\r
17 <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
\r
19 <xsl:variable name="typeOf008">
\r
21 <xsl:when test="$leader6='a'">
\r
23 <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when>
\r
24 <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">SE</xsl:when>
\r
27 <xsl:when test="$leader6='t'">BK</xsl:when>
\r
28 <xsl:when test="$leader6='p'">MM</xsl:when>
\r
29 <xsl:when test="$leader6='m'">CF</xsl:when>
\r
30 <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
\r
31 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">VM</xsl:when>
\r
32 <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">MU</xsl:when>
\r
36 <xsl:for-each select="marc:datafield[@tag=245]">
\r
38 <xsl:variable name="title">
\r
39 <xsl:call-template name="chopPunctuation">
\r
40 <xsl:with-param name="chopString">
\r
41 <xsl:call-template name="subfieldSelect">
\r
42 <xsl:with-param name="codes">abfghk</xsl:with-param>
\r
43 </xsl:call-template>
\r
45 </xsl:call-template>
\r
48 <xsl:when test="@ind2>0">
\r
50 <xsl:value-of select="substring($title,1,@ind2)"/>
\r
53 <xsl:value-of select="substring($title,@ind2+1)"/>
\r
58 <xsl:value-of select="$title"/>
\r
62 <xsl:call-template name="part"/>
\r
66 <xsl:for-each select="marc:datafield[@tag=210]">
\r
67 <titleInfo type="abbreviated">
\r
69 <xsl:call-template name="subfieldSelect">
\r
70 <xsl:with-param name="codes">ab</xsl:with-param>
\r
71 </xsl:call-template>
\r
76 <xsl:for-each select="marc:datafield[@tag=242]">
\r
77 <titleInfo type="translated">
\r
79 <xsl:call-template name="subfieldSelect">
\r
80 <xsl:with-param name="codes">abh</xsl:with-param>
\r
81 </xsl:call-template>
\r
83 <xsl:call-template name="part"/>
\r
87 <xsl:for-each select="marc:datafield[@tag=246]">
\r
88 <titleInfo type="alternative">
\r
89 <xsl:for-each select="marc:subfield[@code='i']">
\r
90 <xsl:attribute name="displayLabel">
\r
91 <xsl:value-of select="text()"/>
\r
95 <xsl:call-template name="subfieldSelect">
\r
96 <xsl:with-param name="codes">abfh</xsl:with-param>
\r
97 </xsl:call-template>
\r
99 <xsl:call-template name="part"/>
\r
103 <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
\r
104 <titleInfo type="uniform">
\r
106 <xsl:variable name="str">
\r
107 <xsl:for-each select="marc:subfield">
\r
108 <xsl:if test="(contains('adfhklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))">
\r
109 <xsl:value-of select="text()"/><xsl:text> </xsl:text>
\r
113 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
115 <xsl:call-template name="part"/>
\r
119 <xsl:for-each select="marc:datafield[@tag=740][@ind2!=2]">
\r
120 <titleInfo type="alternative">
\r
122 <xsl:call-template name="subfieldSelect">
\r
123 <xsl:with-param name="codes">ah</xsl:with-param>
\r
124 </xsl:call-template>
\r
126 <xsl:call-template name="part"/>
\r
130 <xsl:for-each select="marc:datafield[@tag=100]">
\r
131 <name type="personal">
\r
132 <xsl:call-template name="nameABCDQ"/>
\r
133 <xsl:call-template name="affiliation"/>
\r
134 <role>creator</role>
\r
135 <xsl:call-template name="role"/>
\r
140 <xsl:for-each select="marc:datafield[@tag=110]">
\r
141 <name type="corporate">
\r
142 <xsl:call-template name="nameABCDN"/>
\r
143 <role>creator</role>
\r
144 <xsl:call-template name="role"/>
\r
148 <xsl:for-each select="marc:datafield[@tag=111]">
\r
149 <name type="conference">
\r
150 <xsl:call-template name="nameACDEQ"/>
\r
151 <role>creator</role>
\r
152 <xsl:for-each select="marc:subfield[@code='4']">
\r
153 <role><xsl:value-of select="."/></role>
\r
158 <xsl:for-each select="marc:datafield[@tag=700][not(marc:subfield[@code='t'])]">
\r
159 <name type="personal">
\r
160 <xsl:call-template name="nameABCDQ"/>
\r
161 <xsl:call-template name="affiliation"/>
\r
162 <xsl:call-template name="role"/>
\r
166 <xsl:for-each select="marc:datafield[@tag=710][not(marc:subfield[@code='t'])]">
\r
167 <name type="corporate">
\r
168 <xsl:call-template name="nameABCDN"/>
\r
169 <xsl:call-template name="role"/>
\r
173 <xsl:for-each select="marc:datafield[@tag=711][not(marc:subfield[@code='t'])]">
\r
174 <name type="conference">
\r
175 <xsl:call-template name="nameACDEQ"/>
\r
176 <xsl:for-each select="marc:subfield[@code='4']">
\r
177 <role><xsl:value-of select="."/></role>
\r
182 <xsl:for-each select="marc:datafield[@tag=720][not(marc:subfield[@code='t'])]">
\r
184 <xsl:if test="@ind1=1">
\r
185 <xsl:attribute name="type">personal</xsl:attribute>
\r
188 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
190 <xsl:call-template name="role"/>
\r
195 <xsl:if test="$leader7='c'">
\r
196 <xsl:attribute name="collection">yes</xsl:attribute>
\r
198 <xsl:if test="$leader6='d' or $leader6='f' or $leader6='p' or $leader6='t'">
\r
199 <xsl:attribute name="manuscript">yes</xsl:attribute>
\r
203 <xsl:when test="$leader6='a' or $leader6='t'">text</xsl:when>
\r
204 <xsl:when test="$leader6='e' or $leader6='f'">cartographic</xsl:when>
\r
205 <xsl:when test="$leader6='c' or $leader6='d'">notated music</xsl:when>
\r
206 <xsl:when test="$leader6='i' or $leader6='j'">sound recording</xsl:when>
\r
207 <xsl:when test="$leader6='k'">still image</xsl:when>
\r
208 <xsl:when test="$leader6='g'">moving image</xsl:when>
\r
209 <xsl:when test="$leader6='r'">three dimensional object</xsl:when>
\r
210 <xsl:when test="$leader6='m'">software, multimedia</xsl:when>
\r
211 <xsl:when test="$leader6='p'">mixed material</xsl:when>
\r
215 <xsl:if test="substring($controlField008,26,1)='d'">
\r
216 <genre authority="marc">globe</genre>
\r
219 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='r']">
\r
220 <genre authority="marc">remote sensing image</genre>
\r
223 <xsl:if test="$typeOf008='MP'">
\r
224 <xsl:variable name="controlField008-25" select="substring($controlField008,26,1)"/>
\r
226 <xsl:when test="$controlField008-25='a' or $controlField008-25='b' or $controlField008-25='c' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='j']">
\r
227 <genre authority="marc">map</genre>
\r
229 <xsl:when test="$controlField008-25='e' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']">
\r
230 <genre authority="marc">atlas</genre>
\r
235 <xsl:if test="$typeOf008='SE'">
\r
236 <xsl:variable name="controlField008-21" select="substring($controlField008,22,1)"/>
\r
238 <xsl:when test="$controlField008-21='d'">
\r
239 <genre authority="marc">database</genre>
\r
241 <xsl:when test="$controlField008-21='l'">
\r
242 <genre authority="marc">loose-leaf</genre>
\r
244 <xsl:when test="$controlField008-21='m'">
\r
245 <genre authority="marc">series</genre>
\r
247 <xsl:when test="$controlField008-21='n'">
\r
248 <genre authority="marc">newspaper</genre>
\r
250 <xsl:when test="$controlField008-21='p'">
\r
251 <genre authority="marc">periodical</genre>
\r
253 <xsl:when test="$controlField008-21='w'">
\r
254 <genre authority="marc">web site</genre>
\r
259 <xsl:if test="$typeOf008='BK' or $typeOf008='SE'">
\r
260 <xsl:variable name="controlField008-24" select="substring($controlField008,25,4)"/>
\r
262 <xsl:when test="contains($controlField008-24,'a')">
\r
263 <genre authority="marc">abstract or summary</genre>
\r
265 <xsl:when test="contains($controlField008-24,'b')">
\r
266 <genre authority="marc">bibliography</genre>
\r
268 <xsl:when test="contains($controlField008-24,'c')">
\r
269 <genre authority="marc">catalog</genre>
\r
271 <xsl:when test="contains($controlField008-24,'d')">
\r
272 <genre authority="marc">dictionary</genre>
\r
274 <xsl:when test="contains($controlField008-24,'e')">
\r
275 <genre authority="marc">encyclopedia</genre>
\r
277 <xsl:when test="contains($controlField008-24,'f')">
\r
278 <genre authority="marc">handbook</genre>
\r
280 <xsl:when test="contains($controlField008-24,'g')">
\r
281 <genre authority="marc">legal article</genre>
\r
283 <xsl:when test="contains($controlField008-24,'i')">
\r
284 <genre authority="marc">index</genre>
\r
286 <xsl:when test="contains($controlField008-24,'k')">
\r
287 <genre authority="marc">discography</genre>
\r
289 <xsl:when test="contains($controlField008-24,'l')">
\r
290 <genre authority="marc">legislation</genre>
\r
292 <xsl:when test="contains($controlField008-24,'m')">
\r
293 <genre authority="marc">theses</genre>
\r
295 <xsl:when test="contains($controlField008-24,'n')">
\r
296 <genre authority="marc">survey of literature</genre>
\r
298 <xsl:when test="contains($controlField008-24,'o')">
\r
299 <genre authority="marc">review</genre>
\r
301 <xsl:when test="contains($controlField008-24,'p')">
\r
302 <genre authority="marc">programmed text</genre>
\r
304 <xsl:when test="contains($controlField008-24,'q')">
\r
305 <genre authority="marc">filmography</genre>
\r
307 <xsl:when test="contains($controlField008-24,'r')">
\r
308 <genre authority="marc">directory</genre>
\r
310 <xsl:when test="contains($controlField008-24,'s')">
\r
311 <genre authority="marc">statistics</genre>
\r
313 <xsl:when test="contains($controlField008-24,'t')">
\r
314 <genre authority="marc">technical report</genre>
\r
316 <xsl:when test="contains($controlField008-24,'v')">
\r
317 <genre authority="marc">legal case and case notes</genre>
\r
319 <xsl:when test="contains($controlField008-24,'w')">
\r
320 <genre authority="marc">law report or digest</genre>
\r
322 <xsl:when test="contains($controlField008-24,'z')">
\r
323 <genre authority="marc">treaty</genre>
\r
326 <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/>
\r
328 <xsl:when test="$controlField008-29='1'">
\r
329 <genre authority="marc">conference publication</genre>
\r
334 <xsl:if test="$typeOf008='CF'">
\r
335 <xsl:variable name="controlField008-26" select="substring($controlField008,27,1)"/>
\r
337 <xsl:when test="$controlField008-26='a'">
\r
338 <genre authority="marc">numeric data</genre>
\r
340 <xsl:when test="$controlField008-26='e'">
\r
341 <genre authority="marc">database</genre>
\r
343 <xsl:when test="$controlField008-26='f'">
\r
344 <genre authority="marc">font</genre>
\r
346 <xsl:when test="$controlField008-26='g'">
\r
347 <genre authority="marc">game</genre>
\r
352 <xsl:if test="$typeOf008='BK'">
\r
353 <xsl:if test="substring($controlField008,25,1)='j'">
\r
354 <genre authority="marc">patent</genre>
\r
356 <xsl:if test="substring($controlField008,31,1)='1'">
\r
357 <genre authority="marc">festschrift</genre>
\r
360 <xsl:variable name="controlField008-34" select="substring($controlField008,35,1)"/>
\r
361 <xsl:if test="$controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d'">
\r
362 <genre authority="marc">biography</genre>
\r
365 <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/>
\r
367 <xsl:when test="$controlField008-33='e'">
\r
368 <genre authority="marc">essay</genre>
\r
370 <xsl:when test="$controlField008-33='d'">
\r
371 <genre authority="marc">drama</genre>
\r
373 <xsl:when test="$controlField008-33='c'">
\r
374 <genre authority="marc">comic strip</genre>
\r
376 <xsl:when test="$controlField008-33='l'">
\r
377 <genre authority="marc">fiction</genre>
\r
379 <xsl:when test="$controlField008-33='h'">
\r
380 <genre authority="marc">humor, satire</genre>
\r
382 <xsl:when test="$controlField008-33='i'">
\r
383 <genre authority="marc">letter</genre>
\r
385 <xsl:when test="$controlField008-33='f'">
\r
386 <genre authority="marc">novel</genre>
\r
388 <xsl:when test="$controlField008-33='j'">
\r
389 <genre authority="marc">short story</genre>
\r
391 <xsl:when test="$controlField008-33='s'">
\r
392 <genre authority="marc">speech</genre>
\r
397 <xsl:if test="$typeOf008='MU'">
\r
398 <xsl:variable name="controlField008-30-31" select="substring($controlField008,31,2)"/>
\r
399 <xsl:if test="contains($controlField008-30-31,'b')">
\r
400 <genre authority="marc">biography</genre>
\r
402 <xsl:if test="contains($controlField008-30-31,'c')">
\r
403 <genre authority="marc">conference publication</genre>
\r
405 <xsl:if test="contains($controlField008-30-31,'d')">
\r
406 <genre authority="marc">drama</genre>
\r
408 <xsl:if test="contains($controlField008-30-31,'e')">
\r
409 <genre authority="marc">essay</genre>
\r
411 <xsl:if test="contains($controlField008-30-31,'f')">
\r
412 <genre authority="marc">fiction</genre>
\r
414 <xsl:if test="contains($controlField008-30-31,'o')">
\r
415 <genre authority="marc">folktale</genre>
\r
417 <xsl:if test="contains($controlField008-30-31,'h')">
\r
418 <genre authority="marc">history</genre>
\r
420 <xsl:if test="contains($controlField008-30-31,'k')">
\r
421 <genre authority="marc">humor, satire</genre>
\r
423 <xsl:if test="contains($controlField008-30-31,'m')">
\r
424 <genre authority="marc">memoir</genre>
\r
426 <xsl:if test="contains($controlField008-30-31,'p')">
\r
427 <genre authority="marc">poetry</genre>
\r
429 <xsl:if test="contains($controlField008-30-31,'r')">
\r
430 <genre authority="marc">rehersal</genre>
\r
432 <xsl:if test="contains($controlField008-30-31,'g')">
\r
433 <genre authority="marc">reporting</genre>
\r
435 <xsl:if test="contains($controlField008-30-31,'s')">
\r
436 <genre authority="marc">sound</genre>
\r
438 <xsl:if test="contains($controlField008-30-31,'l')">
\r
439 <genre authority="marc">speech</genre>
\r
443 <xsl:if test="$typeOf008='VM'">
\r
444 <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/>
\r
446 <xsl:when test="$controlField008-33='a'">
\r
447 <genre authority="marc">art original</genre>
\r
449 <xsl:when test="$controlField008-33='b'">
\r
450 <genre authority="marc">kit</genre>
\r
452 <xsl:when test="$controlField008-33='c'">
\r
453 <genre authority="marc">art reproduction</genre>
\r
455 <xsl:when test="$controlField008-33='d'">
\r
456 <genre authority="marc">diorama</genre>
\r
458 <xsl:when test="$controlField008-33='f'">
\r
459 <genre authority="marc">filmstrip</genre>
\r
461 <xsl:when test="$controlField008-33='g'">
\r
462 <genre authority="marc">legal article</genre>
\r
464 <xsl:when test="$controlField008-33='i'">
\r
465 <genre authority="marc">picture</genre>
\r
467 <xsl:when test="$controlField008-33='k'">
\r
468 <genre authority="marc">graphic</genre>
\r
470 <xsl:when test="$controlField008-33='l'">
\r
471 <genre authority="marc">technical drawing</genre>
\r
473 <xsl:when test="$controlField008-33='m'">
\r
474 <genre authority="marc">motion picture</genre>
\r
476 <xsl:when test="$controlField008-33='n'">
\r
477 <genre authority="marc">chart</genre>
\r
479 <xsl:when test="$controlField008-33='o'">
\r
480 <genre authority="marc">flash card</genre>
\r
482 <xsl:when test="$controlField008-33='p'">
\r
483 <genre authority="marc">microscope slide</genre>
\r
485 <xsl:when test="$controlField008-33='q' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']">
\r
486 <genre authority="marc">model</genre>
\r
488 <xsl:when test="$controlField008-33='r'">
\r
489 <genre authority="marc">realia</genre>
\r
491 <xsl:when test="$controlField008-33='s'">
\r
492 <genre authority="marc">slide</genre>
\r
494 <xsl:when test="$controlField008-33='t'">
\r
495 <genre authority="marc">transparency</genre>
\r
497 <xsl:when test="$controlField008-33='v'">
\r
498 <genre authority="marc">videorecording</genre>
\r
500 <xsl:when test="$controlField008-33='w'">
\r
501 <genre authority="marc">toy</genre>
\r
506 <xsl:for-each select="marc:datafield[@tag=655]">
\r
507 <genre authority="marc">
\r
508 <xsl:attribute name="authority">
\r
509 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
511 <xsl:call-template name="subfieldSelect">
\r
512 <xsl:with-param name="codes">abvxyz</xsl:with-param>
\r
513 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
514 </xsl:call-template>
\r
519 <xsl:variable name="MARCpublicationCode" select="normalize-space(substring($controlField008,16,3))"/>
\r
521 <xsl:if test="translate($MARCpublicationCode,'|','')">
\r
522 <placeCode authority="marc">
\r
523 <xsl:value-of select="$MARCpublicationCode"/>
\r
527 <xsl:for-each select="marc:datafield[@tag=044]/marc:subfield[@code='c']">
\r
528 <placeCode authority="iso3166">
\r
529 <xsl:value-of select="."/>
\r
533 <xsl:for-each select="marc:datafield[@tag=260]/marc:subfield[@code='a' or @code='b' or @code='c' or @code='g']">
\r
535 <xsl:when test="@code='a'">
\r
537 <xsl:call-template name="chopPunctuation">
\r
538 <xsl:with-param name="chopString" select="."/>
\r
539 </xsl:call-template>
\r
542 <xsl:when test="@code='b'">
\r
544 <xsl:call-template name="chopPunctuation">
\r
545 <xsl:with-param name="chopString" select="."/>
\r
546 </xsl:call-template>
\r
549 <xsl:when test="@code='c'">
\r
551 <xsl:call-template name="chopPunctuation">
\r
552 <xsl:with-param name="chopString" select="."/>
\r
553 </xsl:call-template>
\r
556 <xsl:when test="@code='g'">
\r
558 <xsl:value-of select="."/>
\r
564 <xsl:variable name="dataField260c">
\r
565 <xsl:call-template name="chopPunctuation">
\r
566 <xsl:with-param name="chopString" select="marc:datafield[@tag=260]/marc:subfield[@code='c']"/>
\r
567 </xsl:call-template>
\r
570 <xsl:variable name="controlField008-7-10" select="normalize-space(substring($controlField008, 8, 4))"/>
\r
571 <xsl:variable name="controlField008-11-14" select="normalize-space(substring($controlField008, 12, 4))"/>
\r
572 <xsl:variable name="controlField008-6" select="normalize-space(substring($controlField008, 7, 1))"/>
\r
574 <xsl:if test="$controlField008-6='e' or $controlField008-6='p' or $controlField008-6='r' or $controlField008-6='t' or $controlField008-6='s'">
\r
575 <xsl:if test="$controlField008-7-10 and ($controlField008-7-10 != $dataField260c)">
\r
576 <dateIssued encoding="marc">
\r
577 <xsl:value-of select="$controlField008-7-10"/>
\r
582 <xsl:if test="$controlField008-6='c' or $controlField008-6='d' or $controlField008-6='i' or $controlField008-6='k' or $controlField008-6='m' or $controlField008-6='q' or $controlField008-6='u'">
\r
583 <xsl:if test="$controlField008-7-10">
\r
584 <dateIssued encoding="marc" point="start">
\r
585 <xsl:value-of select="$controlField008-7-10"/>
\r
590 <xsl:if test="$controlField008-6='c' or $controlField008-6='d' or $controlField008-6='i' or $controlField008-6='k' or $controlField008-6='m' or $controlField008-6='q' or $controlField008-6='u'">
\r
591 <xsl:if test="$controlField008-11-14">
\r
592 <dateIssued encoding="marc" point="end">
\r
593 <xsl:value-of select="$controlField008-11-14"/>
\r
598 <xsl:for-each select="marc:datafield[@tag=033][@ind1=0 or @ind1=1]/marc:subfield[@code='a']">
\r
599 <dateCaptured encoding="iso8601">
\r
600 <xsl:value-of select="."/>
\r
604 <xsl:for-each select="marc:datafield[@tag=033][@ind1=2]/marc:subfield[@code='a'][1]">
\r
605 <dateCaptured encoding="iso8601" point="start">
\r
606 <xsl:value-of select="."/>
\r
610 <xsl:for-each select="marc:datafield[@tag=033][@ind1=2]/marc:subfield[@code='a'][2]">
\r
611 <dateCaptured encoding="iso8601" point="end">
\r
612 <xsl:value-of select="."/>
\r
616 <xsl:for-each select="marc:datafield[@tag=250]/marc:subfield[@code='a']">
\r
618 <xsl:value-of select="."/>
\r
622 <xsl:for-each select="marc:leader">
\r
625 <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">monographic</xsl:when>
\r
626 <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">continuing</xsl:when>
\r
631 <xsl:for-each select="marc:datafield[@tag=310]|marc:datafield[@tag=321]">
\r
633 <xsl:call-template name="subfieldSelect">
\r
634 <xsl:with-param name="codes">ab</xsl:with-param>
\r
635 </xsl:call-template>
\r
641 <xsl:for-each select="marc:controlfield[@tag=041]">
\r
642 <xsl:for-each select="marc:subfield[@code='a' or @code='d' or @code='e']">
\r
645 <xsl:when test="../marc:subfield[@code='2']">
\r
646 <xsl:attribute name="authority">rfc3066</xsl:attribute>
\r
649 <xsl:attribute name="authority">iso639-2b</xsl:attribute>
\r
652 <xsl:value-of select="text()"/>
\r
657 <xsl:variable name="controlField008-35-37" select="normalize-space(translate(substring($controlField008,36,3),'|#',''))"/>
\r
658 <xsl:if test="$controlField008-35-37">
\r
659 <language authority="iso639-2b">
\r
660 <xsl:value-of select="substring($controlField008,36,3)"/>
\r
664 <xsl:variable name="physicalDescription">
\r
665 <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='a' or substring(.,12,1)='b']">
\r
666 <digitalOrigin>reformatted digital</digitalOrigin>
\r
669 <xsl:variable name="controlField008-23" select="substring($controlField008,24,1)"/>
\r
670 <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/>
\r
672 <xsl:variable name="check008-23">
\r
673 <xsl:if test="$typeOf008='BK' or $typeOf008='MU' or $typeOf008='SE' or $typeOf008='MM'">
\r
674 <xsl:value-of select="true()"/>
\r
678 <xsl:variable name="check008-29">
\r
679 <xsl:if test="$typeOf008='MP' or $typeOf008='VM'">
\r
680 <xsl:value-of select="true()"/>
\r
685 <xsl:when test="($check008-23 and $controlField008-23='f') or ($check008-29 and $controlField008-29='f')">
\r
686 <form><controlled>braille</controlled></form>
\r
688 <xsl:when test="$leader6 = 'm' or ($check008-23 and $controlField008-23='s') or ($check008-29 and $controlField008-29='s')">
\r
689 <form><controlled>electronic</controlled></form>
\r
691 <xsl:when test="($check008-23 and $controlField008-23='b') or ($check008-29 and $controlField008-29='b')">
\r
692 <form><controlled>microfiche</controlled></form>
\r
694 <xsl:when test="($check008-23 and $controlField008-23='a') or ($check008-29 and $controlField008-29='a')">
\r
695 <form><controlled>microfilm</controlled></form>
\r
699 <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q'][string-length(.)>1]">
\r
700 <internetMediaType>
\r
701 <xsl:value-of select="."/>
\r
702 </internetMediaType>
\r
705 <xsl:for-each select="marc:datafield[@tag=256]/marc:subfield[@code='a']">
\r
708 <xsl:value-of select="."/>
\r
713 <xsl:for-each select="marc:datafield[@tag=300]">
\r
715 <xsl:call-template name="subfieldSelect">
\r
716 <xsl:with-param name="codes">abce</xsl:with-param>
\r
717 </xsl:call-template>
\r
722 <xsl:if test="string-length(normalize-space($physicalDescription))">
\r
723 <physicalDescription>
\r
724 <xsl:copy-of select="$physicalDescription"/>
\r
725 </physicalDescription>
\r
728 <xsl:for-each select="marc:datafield[@tag=520]">
\r
730 <xsl:call-template name="uri"/>
\r
731 <xsl:call-template name="subfieldSelect">
\r
732 <xsl:with-param name="codes">ab</xsl:with-param>
\r
733 </xsl:call-template>
\r
737 <xsl:for-each select="marc:datafield[@tag=505]">
\r
739 <xsl:call-template name="uri"/>
\r
740 <xsl:call-template name="subfieldSelect">
\r
741 <xsl:with-param name="codes">agrt</xsl:with-param>
\r
742 </xsl:call-template>
\r
746 <xsl:for-each select="marc:datafield[@tag=521]">
\r
748 <xsl:call-template name="subfieldSelect">
\r
749 <xsl:with-param name="codes">ab</xsl:with-param>
\r
750 </xsl:call-template>
\r
754 <xsl:if test="$typeOf008='BK' or $typeOf008='CF' or $typeOf008='MU' or $typeOf008='VM'">
\r
755 <xsl:variable name="controlField008-22" select="substring($controlField008,23,1)"/>
\r
757 <xsl:when test="$controlField008-22='d'">
\r
758 <targetAudience>adolescent</targetAudience>
\r
760 <xsl:when test="$controlField008-22='e'">
\r
761 <targetAudience>adult</targetAudience>
\r
763 <xsl:when test="$controlField008-22='g'">
\r
764 <targetAudience>general</targetAudience>
\r
766 <xsl:when test="$controlField008-22='b' or $controlField008-22='c' or $controlField008-22='j'">
\r
767 <targetAudience>juvenile</targetAudience>
\r
769 <xsl:when test="$controlField008-22='a'">
\r
770 <targetAudience>preschool</targetAudience>
\r
772 <xsl:when test="$controlField008-22='f'">
\r
773 <targetAudience>specialized</targetAudience>
\r
778 <!-- Not in mapping but in conversion -->
\r
779 <xsl:for-each select="marc:datafield[@tag=245]/marc:subfield[@code='c']">
\r
780 <note type="statement of responsibility">
\r
781 <xsl:value-of select="."/>
\r
785 <xsl:for-each select="marc:datafield[@tag=500]">
\r
787 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
788 <xsl:call-template name="uri"/>
\r
792 <xsl:for-each select="marc:datafield[@tag=511]">
\r
793 <note type="performers">
\r
794 <xsl:call-template name="uri"/>
\r
795 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
799 <xsl:for-each select="marc:datafield[@tag=518]">
\r
800 <note type="venue">
\r
801 <xsl:call-template name="uri"/>
\r
802 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
806 <xsl:for-each select="marc:datafield[@tag=501 or @tag=502 or @tag=504 or @tag=506 or @tag=507 or @tag=508 or @tag=510 or @tag=513 or @tag=514 or @tag=515 or @tag=516 or @tag=522 or @tag=524 or @tag=525 or @tag=526 or @tag=530 or @tag=533 or @tag=534 or @tag=535 or @tag=536 or @tag=538 or @tag=540 or @tag=541 or @tag=544 or @tag=545 or @tag=546 or @tag=547 or @tag=550 or @tag=552 or @tag=555 or @tag=556 or @tag=561 or @tag=562 or @tag=565 or @tag=567 or @tag=580 or @tag=581 or @tag=583 or @tag=584 or @tag=585 or @tag=586]">
\r
808 <xsl:call-template name="uri"/>
\r
809 <xsl:variable name="str">
\r
810 <xsl:for-each select="marc:subfield[@code!='6' or @code!='8']">
\r
811 <xsl:value-of select="."/><xsl:text> </xsl:text>
\r
814 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
818 <xsl:for-each select="marc:datafield[@tag=034][marc:subfield[@code='d' or @code='e' or @code='f' or @code='g']]">
\r
821 <xsl:call-template name="subfieldSelect">
\r
822 <xsl:with-param name="codes">defg</xsl:with-param>
\r
823 </xsl:call-template>
\r
828 <xsl:for-each select="marc:datafield[@tag=255]">
\r
830 <xsl:for-each select="marc:subfield[@code='c']">
\r
832 <xsl:value-of select="."/>
\r
835 <xsl:for-each select="marc:subfield[@code='a']">
\r
837 <xsl:value-of select="."/>
\r
840 <xsl:for-each select="marc:subfield[@code='b']">
\r
842 <xsl:value-of select="."/>
\r
848 <xsl:apply-templates select="marc:datafield[653 >= @tag and @tag >= 600]"/>
\r
850 <xsl:for-each select="marc:datafield[@tag=752]">
\r
852 <hierarchicalGeographic>
\r
853 <xsl:for-each select="marc:subfield[@code='a']">
\r
855 <xsl:value-of select="."/>
\r
858 <xsl:for-each select="marc:subfield[@code='b']">
\r
860 <xsl:value-of select="."/>
\r
863 <xsl:for-each select="marc:subfield[@code='c']">
\r
865 <xsl:value-of select="."/>
\r
868 <xsl:for-each select="marc:subfield[@code='d']">
\r
870 <xsl:value-of select="."/>
\r
873 </hierarchicalGeographic>
\r
877 <xsl:for-each select="marc:datafield[@tag=050]">
\r
878 <xsl:for-each select="marc:subfield[@code='b']">
\r
879 <classification authority="lcc">
\r
880 <xsl:value-of select="preceding-sibling::marc:subfield[@code='a'][1]"/>
\r
881 <xsl:text> </xsl:text>
\r
882 <xsl:value-of select="text()"/>
\r
885 <xsl:for-each select="marc:subfield[@code='a'][not(following-sibling::marc:subfield[@code='b'])]">
\r
886 <classification authority="lcc">
\r
887 <xsl:value-of select="text()"/>
\r
892 <xsl:for-each select="marc:datafield[@tag=082]">
\r
893 <classification authority="ddc">
\r
894 <xsl:if test="marc:subfield[@code='2']">
\r
895 <xsl:attribute name="edition">
\r
896 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
899 <xsl:call-template name="subfieldSelect">
\r
900 <xsl:with-param name="codes">ab</xsl:with-param>
\r
901 </xsl:call-template>
\r
905 <xsl:for-each select="marc:datafield[@tag=080]">
\r
906 <classification authority="udc">
\r
907 <xsl:call-template name="subfieldSelect">
\r
908 <xsl:with-param name="codes">abx</xsl:with-param>
\r
909 </xsl:call-template>
\r
913 <xsl:for-each select="marc:datafield[@tag=060]">
\r
914 <classification authority="nlm">
\r
915 <xsl:call-template name="subfieldSelect">
\r
916 <xsl:with-param name="codes">ab</xsl:with-param>
\r
917 </xsl:call-template>
\r
921 <xsl:for-each select="marc:datafield[@tag=086][@ind1=0]">
\r
922 <classification authority="sudocs">
\r
923 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
927 <xsl:for-each select="marc:datafield[@tag=086][@ind1=1]">
\r
928 <classification authority="candoc">
\r
929 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
933 <xsl:for-each select="marc:datafield[@tag=086]">
\r
935 <xsl:attribute name="authority">
\r
936 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
938 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
942 <xsl:for-each select="marc:datafield[@tag=084]">
\r
944 <xsl:attribute name="authority">
\r
945 <xsl:value-of select="marc:subfield[@code='2']"/>
\r
947 <xsl:call-template name="subfieldSelect">
\r
948 <xsl:with-param name="codes">ab</xsl:with-param>
\r
949 </xsl:call-template>
\r
953 <xsl:for-each select="marc:datafield[@tag=440]">
\r
954 <relatedItem type="series">
\r
957 <xsl:call-template name="subfieldSelect">
\r
958 <xsl:with-param name="codes">av</xsl:with-param>
\r
959 </xsl:call-template>
\r
960 <xsl:call-template name="part"/>
\r
966 <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]">
\r
967 <relatedItem type="series">
\r
970 <xsl:call-template name="subfieldSelect">
\r
971 <xsl:with-param name="codes">av</xsl:with-param>
\r
972 </xsl:call-template>
\r
973 <xsl:call-template name="part"/>
\r
979 <xsl:for-each select="marc:datafield[@tag=534]">
\r
980 <relatedItem type="original">
\r
981 <xsl:call-template name="relatedTitle"/>
\r
982 <xsl:call-template name="relatedName"/>
\r
983 <xsl:call-template name="relatedIdentifierISSN"/>
\r
984 <xsl:for-each select="marc:subfield[@code='z']">
\r
985 <identifier type="isbn">
\r
986 <xsl:value-of select="."/>
\r
989 <xsl:call-template name="relatedNote"/>
\r
993 <xsl:for-each select="marc:datafield[@tag=700][marc:subfield[@code='t']]">
\r
995 <xsl:call-template name="constituentOrRelatedType"/>
\r
998 <xsl:call-template name="specialSubfieldSelect">
\r
999 <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param>
\r
1000 <xsl:with-param name="axis">t</xsl:with-param>
\r
1001 <xsl:with-param name="afterCodes">g</xsl:with-param>
\r
1002 </xsl:call-template>
\r
1004 <xsl:call-template name="part"/>
\r
1006 <name type="personal">
\r
1008 <xsl:call-template name="specialSubfieldSelect">
\r
1009 <xsl:with-param name="anyCodes">abcq</xsl:with-param>
\r
1010 <xsl:with-param name="axis">t</xsl:with-param>
\r
1011 <xsl:with-param name="beforeCodes">g</xsl:with-param>
\r
1012 </xsl:call-template>
\r
1014 <xsl:call-template name="nameDate"/>
\r
1015 <xsl:for-each select="marc:subfield[@code='e']">
\r
1017 <xsl:value-of select="."/>
\r
1021 <xsl:call-template name="relatedForm"/>
\r
1022 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1026 <xsl:for-each select="marc:datafield[@tag=710][marc:subfield[@code='t']]">
\r
1028 <xsl:call-template name="constituentOrRelatedType"/>
\r
1031 <xsl:call-template name="specialSubfieldSelect">
\r
1032 <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param>
\r
1033 <xsl:with-param name="axis">t</xsl:with-param>
\r
1034 <xsl:with-param name="afterCodes">dg</xsl:with-param>
\r
1035 </xsl:call-template>
\r
1037 <xsl:call-template name="relatedPart"/>
\r
1039 <name type="corporate">
\r
1040 <xsl:for-each select="marc:subfield[@code='a']">
\r
1042 <xsl:value-of select="."/>
\r
1045 <xsl:for-each select="marc:subfield[@code='b']">
\r
1047 <xsl:value-of select="."/>
\r
1050 <xsl:variable name="tempNamePart">
\r
1051 <xsl:call-template name="specialSubfieldSelect">
\r
1052 <xsl:with-param name="anyCodes">c</xsl:with-param>
\r
1053 <xsl:with-param name="axis">t</xsl:with-param>
\r
1054 <xsl:with-param name="beforeCodes">dgn</xsl:with-param>
\r
1055 </xsl:call-template>
\r
1057 <xsl:if test="normalize-space($tempNamePart)">
\r
1059 <xsl:value-of select="$tempNamePart"/>
\r
1062 <xsl:for-each select="marc:subfield[@code='e']">
\r
1064 <xsl:value-of select="."/>
\r
1068 <xsl:call-template name="relatedForm"/>
\r
1069 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1073 <xsl:for-each select="marc:datafield[@tag=711][marc:subfield[@code='t']]">
\r
1075 <xsl:call-template name="constituentOrRelatedType"/>
\r
1078 <xsl:call-template name="specialSubfieldSelect">
\r
1079 <xsl:with-param name="anyCodes">tfklsv</xsl:with-param>
\r
1080 <xsl:with-param name="axis">t</xsl:with-param>
\r
1081 <xsl:with-param name="afterCodes">g</xsl:with-param>
\r
1082 </xsl:call-template>
\r
1084 <xsl:call-template name="relatedPart"/>
\r
1086 <name type="conference">
\r
1088 <xsl:call-template name="specialSubfieldSelect">
\r
1089 <xsl:with-param name="anyCodes">aqdc</xsl:with-param>
\r
1090 <xsl:with-param name="axis">t</xsl:with-param>
\r
1091 <xsl:with-param name="beforeCodes">gn</xsl:with-param>
\r
1092 </xsl:call-template>
\r
1095 <xsl:call-template name="relatedForm"/>
\r
1096 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1100 <xsl:for-each select="marc:datafield[@tag=730][@ind2=2]">
\r
1102 <xsl:call-template name="constituentOrRelatedType"/>
\r
1105 <xsl:call-template name="subfieldSelect">
\r
1106 <xsl:with-param name="codes">adfgklmorsv</xsl:with-param>
\r
1107 </xsl:call-template>
\r
1109 <xsl:call-template name="part"/>
\r
1111 <xsl:call-template name="relatedForm"/>
\r
1112 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1116 <xsl:for-each select="marc:datafield[@tag=740][@ind2=2]">
\r
1118 <xsl:call-template name="constituentOrRelatedType"/>
\r
1121 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1123 <xsl:call-template name="part"/>
\r
1125 <xsl:call-template name="relatedForm"/>
\r
1129 <xsl:for-each select="marc:datafield[@tag=760]|marc:datafield[@tag=762]">
\r
1130 <relatedItem type="series">
\r
1131 <xsl:call-template name="relatedItem76X-78X"/>
\r
1135 <xsl:for-each select="marc:datafield[@tag=765]|marc:datafield[@tag=767]|marc:datafield[@tag=775]|marc:datafield[@tag=777]|marc:datafield[@tag=787]">
\r
1136 <relatedItem type="related">
\r
1137 <xsl:call-template name="relatedItem76X-78X"/>
\r
1141 <xsl:for-each select="marc:datafield[@tag=770]|marc:datafield[@tag=774]">
\r
1142 <relatedItem type="constituent">
\r
1143 <xsl:call-template name="relatedItem76X-78X"/>
\r
1147 <xsl:for-each select="marc:datafield[@tag=772]|marc:datafield[@tag=773]">
\r
1148 <relatedItem type="host">
\r
1149 <xsl:call-template name="relatedItem76X-78X"/>
\r
1153 <xsl:for-each select="marc:datafield[@tag=776]">
\r
1154 <relatedItem type="reproduction">
\r
1155 <xsl:call-template name="relatedItem76X-78X"/>
\r
1159 <xsl:for-each select="marc:datafield[@tag=780]">
\r
1160 <relatedItem type="preceding">
\r
1161 <xsl:call-template name="relatedItem76X-78X"/>
\r
1165 <xsl:for-each select="marc:datafield[@tag=785]">
\r
1166 <relatedItem type="succeeding">
\r
1167 <xsl:call-template name="relatedItem76X-78X"/>
\r
1171 <xsl:for-each select="marc:datafield[@tag=786]">
\r
1172 <relatedItem type="original">
\r
1173 <xsl:call-template name="relatedItem76X-78X"/>
\r
1177 <xsl:for-each select="marc:datafield[@tag=800]">
\r
1178 <relatedItem type="series">
\r
1181 <xsl:call-template name="specialSubfieldSelect">
\r
1182 <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param>
\r
1183 <xsl:with-param name="axis">t</xsl:with-param>
\r
1184 <xsl:with-param name="afterCodes">g</xsl:with-param>
\r
1185 </xsl:call-template>
\r
1187 <xsl:call-template name="part"/>
\r
1189 <name type="personal">
\r
1191 <xsl:call-template name="chopPunctuation">
\r
1192 <xsl:with-param name="chopString">
\r
1193 <xsl:call-template name="specialSubfieldSelect">
\r
1194 <xsl:with-param name="anyCodes">abcq</xsl:with-param>
\r
1195 <xsl:with-param name="axis">t</xsl:with-param>
\r
1196 <xsl:with-param name="beforeCodes">g</xsl:with-param>
\r
1197 </xsl:call-template>
\r
1199 </xsl:call-template>
\r
1201 <xsl:call-template name="nameDate"/>
\r
1202 <xsl:for-each select="marc:subfield[@code='e']">
\r
1204 <xsl:value-of select="."/>
\r
1208 <xsl:call-template name="relatedForm"/>
\r
1212 <xsl:for-each select="marc:datafield[@tag=810]">
\r
1213 <relatedItem type="series">
\r
1216 <xsl:call-template name="specialSubfieldSelect">
\r
1217 <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param>
\r
1218 <xsl:with-param name="axis">t</xsl:with-param>
\r
1219 <xsl:with-param name="afterCodes">dg</xsl:with-param>
\r
1220 </xsl:call-template>
\r
1222 <xsl:call-template name="relatedPart"/>
\r
1224 <name type="corporate">
\r
1225 <xsl:for-each select="marc:subfield[@code='a']">
\r
1227 <xsl:value-of select="."/>
\r
1230 <xsl:for-each select="marc:subfield[@code='b']">
\r
1232 <xsl:value-of select="."/>
\r
1236 <xsl:call-template name="specialSubfieldSelect">
\r
1237 <xsl:with-param name="anyCodes">c</xsl:with-param>
\r
1238 <xsl:with-param name="axis">t</xsl:with-param>
\r
1239 <xsl:with-param name="beforeCodes">dgn</xsl:with-param>
\r
1240 </xsl:call-template>
\r
1242 <xsl:for-each select="marc:subfield[@code='e']">
\r
1244 <xsl:value-of select="."/>
\r
1248 <xsl:call-template name="relatedForm"/>
\r
1252 <xsl:for-each select="marc:datafield[@tag=811]">
\r
1253 <relatedItem type="series">
\r
1256 <xsl:call-template name="specialSubfieldSelect">
\r
1257 <xsl:with-param name="anyCodes">tfklsv</xsl:with-param>
\r
1258 <xsl:with-param name="axis">t</xsl:with-param>
\r
1259 <xsl:with-param name="afterCodes">g</xsl:with-param>
\r
1260 </xsl:call-template>
\r
1262 <xsl:call-template name="relatedPart"/>
\r
1264 <name type="conference">
\r
1266 <xsl:call-template name="specialSubfieldSelect">
\r
1267 <xsl:with-param name="anyCodes">aqdc</xsl:with-param>
\r
1268 <xsl:with-param name="axis">t</xsl:with-param>
\r
1269 <xsl:with-param name="beforeCodes">gn</xsl:with-param>
\r
1270 </xsl:call-template>
\r
1273 <xsl:call-template name="relatedForm"/>
\r
1277 <xsl:for-each select="marc:datafield[@tag=830]">
\r
1278 <relatedItem type="series">
\r
1281 <xsl:call-template name="subfieldSelect">
\r
1282 <xsl:with-param name="codes">adfgklmorsv</xsl:with-param>
\r
1283 </xsl:call-template>
\r
1285 <xsl:call-template name="part"/>
\r
1287 <xsl:call-template name="relatedForm"/>
\r
1291 <xsl:for-each select="marc:datafield[@tag=856][@ind2=2]/marc:subfield[@code='q']">
\r
1293 <internetMediaType>
\r
1294 <xsl:value-of select="."/>
\r
1295 </internetMediaType>
\r
1299 <xsl:for-each select="marc:datafield[@tag=020]/marc:subfield[@code='a']">
\r
1300 <identifier type="isbn">
\r
1301 <xsl:value-of select="."/>
\r
1305 <xsl:for-each select="marc:datafield[@tag=024][@ind1=0]/marc:subfield[@code='a']">
\r
1306 <identifier type="isrc">
\r
1307 <xsl:value-of select="."/>
\r
1311 <xsl:for-each select="marc:datafield[@tag=024][@ind1=2]/marc:subfield[@code='a']">
\r
1312 <identifier type="ismn">
\r
1313 <xsl:value-of select="."/>
\r
1317 <xsl:for-each select="marc:datafield[@tag=022]/marc:subfield[@code='a']">
\r
1318 <identifier type="issn">
\r
1319 <xsl:value-of select="."/>
\r
1323 <xsl:for-each select="marc:datafield[@tag=010]/marc:subfield[@code='a']">
\r
1324 <identifier type="lccn">
\r
1325 <xsl:value-of select="normalize-space(text())"/>
\r
1329 <xsl:for-each select="marc:datafield[@tag=028]">
\r
1331 <xsl:attribute name="type">
\r
1333 <xsl:when test="@ind1=0">issue number</xsl:when>
\r
1334 <xsl:when test="@ind1=1">matrix number</xsl:when>
\r
1335 <xsl:when test="@ind1=2">music plate</xsl:when>
\r
1336 <xsl:when test="@ind1=3">music publisher</xsl:when>
\r
1337 <xsl:when test="@ind1=4">videorecording identifier</xsl:when>
\r
1340 <xsl:call-template name="subfieldSelect">
\r
1341 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1342 </xsl:call-template>
\r
1346 <xsl:for-each select="marc:datafield[@tag=024][@ind1=4]">
\r
1347 <identifier type="sici">
\r
1348 <xsl:call-template name="subfieldSelect">
\r
1349 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1350 </xsl:call-template>
\r
1354 <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='u']">
\r
1356 <xsl:attribute name="type">
\r
1358 <xsl:when test="starts-with(.,'urn:doi') or starts-with(.,'doi:')">doi</xsl:when>
\r
1359 <xsl:otherwise>uri</xsl:otherwise>
\r
1362 <xsl:value-of select="."/>
\r
1366 <xsl:for-each select="marc:datafield[@tag=024][@ind1=1]/marc:subfield[@code='a']">
\r
1367 <identifier type="upc">
\r
1368 <xsl:value-of select="."/>
\r
1372 <xsl:for-each select="marc:datafield[@tag=852]">
\r
1374 <xsl:call-template name="subfieldSelect">
\r
1375 <xsl:with-param name="codes">abj</xsl:with-param>
\r
1376 </xsl:call-template>
\r
1380 <xsl:for-each select="marc:datafield[@tag=506]">
\r
1381 <accessCondition type="restrictionOnAccess">
\r
1382 <xsl:call-template name="subfieldSelect">
\r
1383 <xsl:with-param name="codes">abcd35</xsl:with-param>
\r
1384 </xsl:call-template>
\r
1385 </accessCondition>
\r
1388 <xsl:for-each select="marc:datafield[@tag=540]">
\r
1389 <accessCondition type="useAndReproduction">
\r
1390 <xsl:call-template name="subfieldSelect">
\r
1391 <xsl:with-param name="codes">abcde35</xsl:with-param>
\r
1392 </xsl:call-template>
\r
1393 </accessCondition>
\r
1397 <xsl:for-each select="marc:datafield[@tag=040]">
\r
1398 <recordContentSource>
\r
1399 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1400 </recordContentSource>
\r
1403 <xsl:for-each select="marc:controlfield[@tag=008]">
\r
1404 <recordCreationDate encoding="marc">
\r
1405 <xsl:value-of select="substring(.,1,6)"/>
\r
1406 </recordCreationDate>
\r
1409 <xsl:for-each select="marc:controlfield[@tag=005]">
\r
1410 <recordChangeDate encoding="iso8601">
\r
1411 <xsl:value-of select="."/>
\r
1412 </recordChangeDate>
\r
1415 <xsl:for-each select="marc:controlfield[@tag=001]">
\r
1416 <recordIdentifier>
\r
1417 <xsl:if test="../marc:controlfield[@tag=003]">
\r
1418 <xsl:attribute name="source">
\r
1419 <xsl:value-of select="../marc:controlfield[@tag=003]"/>
\r
1422 <xsl:value-of select="."/>
\r
1423 </recordIdentifier>
\r
1429 <xsl:template name="displayForm">
\r
1430 <xsl:for-each select="marc:subfield[@code='c']">
\r
1432 <xsl:value-of select="."/>
\r
1437 <xsl:template name="affiliation">
\r
1438 <xsl:for-each select="marc:subfield[@code='u']">
\r
1440 <xsl:value-of select="."/>
\r
1445 <xsl:template name="uri">
\r
1446 <xsl:for-each select="marc:subfield[@code='u']">
\r
1447 <xsl:attribute name="xlink:href">
\r
1448 <xsl:value-of select="."/>
\r
1453 <xsl:template name="role">
\r
1455 <xsl:when test="marc:subfield[@code='e']">
\r
1456 <role><xsl:value-of select="marc:subfield[@code='e']"/></role>
\r
1458 <xsl:when test="marc:subfield[@code='4']">
\r
1459 <xsl:for-each select="marc:subfield[@code='4']">
\r
1460 <role><xsl:value-of select="text()"/></role>
\r
1466 <xsl:template name="part">
\r
1467 <xsl:variable name="partNumber">
\r
1468 <xsl:call-template name="specialSubfieldSelect">
\r
1469 <xsl:with-param name="axis">n</xsl:with-param>
\r
1470 <xsl:with-param name="anyCodes">n</xsl:with-param>
\r
1471 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
\r
1472 </xsl:call-template>
\r
1474 <xsl:variable name="partName">
\r
1475 <xsl:call-template name="specialSubfieldSelect">
\r
1476 <xsl:with-param name="axis">p</xsl:with-param>
\r
1477 <xsl:with-param name="anyCodes">p</xsl:with-param>
\r
1478 <xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
\r
1479 </xsl:call-template>
\r
1481 <xsl:if test="string-length(normalize-space($partNumber))">
\r
1483 <xsl:value-of select="$partNumber"/>
\r
1486 <xsl:if test="string-length(normalize-space($partName))">
\r
1488 <xsl:value-of select="$partName"/>
\r
1493 <xsl:template name="relatedPart">
\r
1494 <xsl:for-each select="marc:subfield[@code='n'][preceding-sibling::marc:subfield[@code='t']]">
\r
1496 <xsl:value-of select="."/>
\r
1499 <xsl:for-each select="marc:subfield[@code='p']">
\r
1501 <xsl:value-of select="."/>
\r
1506 <xsl:template name="relatedName">
\r
1507 <xsl:for-each select="marc:subfield[@code='a']">
\r
1510 <xsl:value-of select="."/>
\r
1516 <xsl:template name="relatedForm">
\r
1517 <xsl:for-each select="marc:subfield[@code='h']">
\r
1518 <physicalDescription>
\r
1521 <xsl:value-of select="."/>
\r
1524 </physicalDescription>
\r
1528 <xsl:template name="relatedExtent">
\r
1529 <xsl:for-each select="marc:subfield[@code='h']">
\r
1530 <physicalDescription>
\r
1532 <xsl:value-of select="."/>
\r
1534 </physicalDescription>
\r
1538 <xsl:template name="relatedNote">
\r
1539 <xsl:for-each select="marc:subfield[@code='n']">
\r
1541 <xsl:value-of select="."/>
\r
1546 <xsl:template name="relatedIdentifierISSN">
\r
1547 <xsl:for-each select="marc:subfield[@code='x']">
\r
1548 <identifier type="issn">
\r
1549 <xsl:value-of select="."/>
\r
1554 <xsl:template name="relatedIdentifierLocal">
\r
1555 <xsl:for-each select="marc:subfield[@code='w']">
\r
1556 <identifier type="local">
\r
1557 <xsl:value-of select="."/>
\r
1562 <xsl:template name="relatedIdentifier">
\r
1563 <xsl:for-each select="marc:subfield[@code='o']">
\r
1565 <xsl:value-of select="."/>
\r
1570 <xsl:template name="relatedItem76X-78X">
\r
1571 <xsl:call-template name="relatedTitle76X-78X"/>
\r
1572 <xsl:call-template name="relatedName"/>
\r
1573 <xsl:call-template name="relatedExtent"/>
\r
1574 <xsl:call-template name="relatedIdentifier"/>
\r
1575 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1576 <xsl:call-template name="relatedIdentifierLocal"/>
\r
1577 <xsl:call-template name="relatedNote"/>
\r
1580 <xsl:template name="subjectGeographicZ">
\r
1582 <xsl:value-of select="."/>
\r
1586 <xsl:template name="subjectTemporalY">
\r
1588 <xsl:value-of select="."/>
\r
1592 <xsl:template name="subjectTopic">
\r
1594 <xsl:call-template name="chopPunctuation">
\r
1595 <xsl:with-param name="chopString" select="."/>
\r
1596 </xsl:call-template>
\r
1600 <xsl:template name="nameABCDN">
\r
1601 <xsl:for-each select="marc:subfield[@code='a']">
\r
1603 <xsl:call-template name="chopPunctuation">
\r
1604 <xsl:with-param name="chopString" select="."/>
\r
1605 </xsl:call-template>
\r
1608 <xsl:for-each select="marc:subfield[@code='b']">
\r
1610 <xsl:value-of select="."/>
\r
1613 <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
\r
1615 <xsl:call-template name="subfieldSelect">
\r
1616 <xsl:with-param name="codes">cdn</xsl:with-param>
\r
1617 </xsl:call-template>
\r
1622 <xsl:template name="nameABCDQ">
\r
1624 <xsl:call-template name="chopPunctuation">
\r
1625 <xsl:with-param name="chopString">
\r
1626 <xsl:call-template name="subfieldSelect">
\r
1627 <xsl:with-param name="codes">abcq</xsl:with-param>
\r
1628 </xsl:call-template>
\r
1630 </xsl:call-template>
\r
1632 <xsl:call-template name="nameDate"/>
\r
1635 <xsl:template name="nameACDEQ">
\r
1637 <xsl:call-template name="subfieldSelect">
\r
1638 <xsl:with-param name="codes">acdeq</xsl:with-param>
\r
1639 </xsl:call-template>
\r
1643 <xsl:template name="constituentOrRelatedType">
\r
1644 <xsl:attribute name="type">
\r
1646 <xsl:when test="@ind2=2">constituent</xsl:when>
\r
1647 <xsl:otherwise>related</xsl:otherwise>
\r
1652 <xsl:template name="relatedTitle">
\r
1653 <xsl:for-each select="marc:subfield[@code='t']">
\r
1656 <xsl:value-of select="."/>
\r
1662 <xsl:template name="relatedTitle76X-78X">
\r
1664 <xsl:for-each select="marc:subfield[@code='t']">
\r
1666 <xsl:value-of select="."/>
\r
1669 <xsl:for-each select="marc:subfield[@code='g']">
\r
1671 <xsl:value-of select="."/>
\r
1677 <xsl:template name="nameDate">
\r
1678 <xsl:for-each select="marc:subfield[@code='d']">
\r
1679 <namePart type="date">
\r
1680 <xsl:call-template name="chopPunctuation">
\r
1681 <xsl:with-param name="chopString" select="."/>
\r
1682 </xsl:call-template>
\r
1687 <xsl:template name="subjectAuthority">
\r
1688 <xsl:attribute name="authority">
\r
1690 <xsl:when test="@ind2=0">lcsh</xsl:when>
\r
1691 <xsl:when test="@ind2=1">lcshac</xsl:when>
\r
1692 <xsl:when test="@ind2=2">mesh</xsl:when>
\r
1693 <xsl:when test="@ind2=3">csh</xsl:when>
\r
1694 <xsl:when test="@ind2=5">nal</xsl:when>
\r
1695 <xsl:when test="@ind2=6">rvm</xsl:when>
\r
1696 <xsl:when test="@ind2=7"><xsl:value-of select="marc:subfield[@code='2']"/></xsl:when>
\r
1701 <xsl:template name="subjectAnyOrder">
\r
1702 <xsl:for-each select="marc:subfield[@code='v' or @code='x' or @code='y' or @code='z']">
\r
1704 <xsl:when test="@code='v'">
\r
1705 <xsl:call-template name="subjectTopic"/>
\r
1707 <xsl:when test="@code='x'">
\r
1708 <xsl:call-template name="subjectTopic"/>
\r
1710 <xsl:when test="@code='y'">
\r
1711 <xsl:call-template name="subjectTemporalY"/>
\r
1713 <xsl:when test="@code='z'">
\r
1714 <xsl:call-template name="subjectGeographicZ"/>
\r
1720 <!-- <xsl:template name="subfieldSelect">
\r
1721 <xsl:param name="codes"/>
\r
1722 <xsl:param name="delimeter"><xsl:text> </xsl:text></xsl:param>
\r
1723 <xsl:variable name="str">
\r
1724 <xsl:for-each select="marc:subfield">
\r
1725 <xsl:if test="contains($codes, @code)">
\r
1726 <xsl:value-of select="text()"/><xsl:value-of select="$delimeter"/>
\r
1730 <xsl:value-of select="substring($str,1,string-length($str)-string-length($delimeter))"/>
\r
1734 <xsl:template name="specialSubfieldSelect">
\r
1735 <xsl:param name="anyCodes"/>
\r
1736 <xsl:param name="axis"/>
\r
1737 <xsl:param name="beforeCodes"/>
\r
1738 <xsl:param name="afterCodes"/>
\r
1739 <xsl:variable name="str">
\r
1740 <xsl:for-each select="marc:subfield">
\r
1741 <xsl:if 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
1742 <xsl:value-of select="text()"/><xsl:text> </xsl:text>
\r
1746 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
1749 <xsl:template match="marc:datafield[@tag=600]">
\r
1751 <xsl:call-template name="subjectAuthority"/>
\r
1752 <name type="personal">
\r
1754 <xsl:call-template name="chopPunctuation">
\r
1755 <xsl:with-param name="chopString">
\r
1756 <xsl:call-template name="subfieldSelect">
\r
1757 <xsl:with-param name="codes">abcq</xsl:with-param>
\r
1758 </xsl:call-template>
\r
1760 </xsl:call-template>
\r
1762 <xsl:call-template name="nameDate"/>
\r
1763 <xsl:call-template name="affiliation"/>
\r
1764 <xsl:call-template name="role"/>
\r
1766 <xsl:call-template name="subjectAnyOrder"/>
\r
1770 <xsl:template match="marc:datafield[@tag=610]">
\r
1772 <xsl:call-template name="subjectAuthority"/>
\r
1773 <name type="corporate">
\r
1774 <xsl:for-each select="marc:subfield[@code='a']">
\r
1776 <xsl:value-of select="."/>
\r
1779 <xsl:for-each select="marc:subfield[@code='b']">
\r
1781 <xsl:value-of select="."/>
\r
1784 <xsl:if test="marc:subfield[@code='c' or @code='d' or @code='n' or @code='p']">
\r
1786 <xsl:call-template name="subfieldSelect">
\r
1787 <xsl:with-param name="codes">cdnp</xsl:with-param>
\r
1788 </xsl:call-template>
\r
1791 <xsl:call-template name="role"/>
\r
1793 <xsl:call-template name="subjectAnyOrder"/>
\r
1797 <xsl:template match="marc:datafield[@tag=611]">
\r
1799 <xsl:call-template name="subjectAuthority"/>
\r
1800 <name type="conference">
\r
1802 <xsl:call-template name="subfieldSelect">
\r
1803 <xsl:with-param name="codes">abcdeqnp</xsl:with-param>
\r
1804 </xsl:call-template>
\r
1806 <xsl:for-each select="marc:subfield[@code='4']">
\r
1808 <xsl:value-of select="."/>
\r
1812 <xsl:call-template name="subjectAnyOrder"/>
\r
1816 <xsl:template match="marc:datafield[@tag=630]">
\r
1818 <xsl:call-template name="subjectAuthority"/>
\r
1821 <xsl:call-template name="subfieldSelect">
\r
1822 <xsl:with-param name="codes">adfhklor</xsl:with-param>
\r
1823 </xsl:call-template>
\r
1824 <xsl:call-template name="part"/>
\r
1827 <xsl:call-template name="subjectAnyOrder"/>
\r
1831 <xsl:template match="marc:datafield[@tag=650]">
\r
1833 <xsl:call-template name="subjectAuthority"/>
\r
1835 <xsl:call-template name="chopPunctuation">
\r
1836 <xsl:with-param name="chopString">
\r
1837 <xsl:call-template name="subfieldSelect">
\r
1838 <xsl:with-param name="codes">abcd</xsl:with-param>
\r
1839 </xsl:call-template>
\r
1841 </xsl:call-template>
\r
1843 <xsl:call-template name="subjectAnyOrder"/>
\r
1848 <xsl:template match="marc:datafield[@tag=651]">
\r
1850 <xsl:call-template name="subjectAuthority"/>
\r
1851 <xsl:for-each select="marc:subfield[@code='a']">
\r
1853 <xsl:value-of select="."/>
\r
1856 <xsl:call-template name="subjectAnyOrder"/>
\r
1860 <xsl:template match="marc:datafield[@tag=653]">
\r
1862 <xsl:for-each select="marc:subfield[@code='a']">
\r
1864 <xsl:value-of select="."/>
\r
1869 </xsl:stylesheet><!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
\r
1871 <scenarios ><scenario default="yes" name="modstst2" userelativepaths="yes" externalpreview="no" url="..\..\..\..\..\..\marcxml\modstst2.xml" htmlbaseurl="" outputurl="" processortype="internal" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext=""/><scenario default="no" name="modstest" userelativepaths="yes" externalpreview="no" url="..\..\..\..\..\..\marcxml\modstest.xml" htmlbaseurl="" outputurl="" processortype="internal" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext=""/><scenario default="no" name="Scenario1" userelativepaths="yes" externalpreview="no" url="..\..\..\..\..\..\marcxml\t.xml" htmlbaseurl="" outputurl="" processortype="internal" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext=""/></scenarios><MapperInfo srcSchemaPath="" srcSchemaRoot="" srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/>
\r
1872 </metaInformation>
\r