1 <?xml version="1.0" encoding="UTF-8"?>
\r
2 <xsl:stylesheet version="1.0" xmlns="http://www.loc.gov/mods/v3" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xlink marc">
\r
3 <xsl:include href="http://www.loc.gov/marcxml/xslt/MARC21slimUtils.xsl"/>
\r
4 <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
\r
7 Revision 1.11 - The attribute objectPart moved from <languageTerm> to <language>
\r
10 Revision 1.10 MODS 3.1 revisions to language and classification elements
\r
11 (plus ability to find marc:collection embedded in wrapper elements such as SRU zs: wrappers)
\r
14 Revision 1.9 subfield $y was added to field 242 2004/09/02 10:57 jrad
\r
16 Revision 1.8 Subject chopPunctuation expanded and attribute fixes 2004/08/12 jrad
\r
18 Revision 1.7 2004/03/25 08:29 jrad
\r
20 Revision 1.6 various validation fixes 2004/02/20 ntra
\r
22 Revision 1.5 2003/10/02 16:18:58 ntra
\r
23 MODS2 to MODS3 updates, language unstacking and
\r
24 de-duping, chopPunctuation expanded
\r
26 Revision 1.3 2003/04/03 00:07:19 ntra
\r
27 Revision 1.3 Additional Changes not related to MODS Version 2.0 by ntra
\r
29 Revision 1.2 2003/03/24 19:37:42 ckeith
\r
33 <xsl:template match="/">
\r
35 <xsl:when test="//marc:collection">
\r
36 <modsCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-1.xsd">
\r
37 <xsl:for-each select="//marc:collection/marc:record">
\r
38 <mods version="3.1">
\r
39 <xsl:call-template name="marcRecord"/>
\r
45 <mods version="3.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-1.xsd">
\r
46 <xsl:for-each select="//marc:record">
\r
47 <xsl:call-template name="marcRecord"/>
\r
53 <xsl:template name="marcRecord">
\r
54 <xsl:variable name="leader" select="marc:leader"/>
\r
55 <xsl:variable name="leader6" select="substring($leader,7,1)"/>
\r
56 <xsl:variable name="leader7" select="substring($leader,8,1)"/>
\r
57 <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
\r
58 <xsl:variable name="typeOf008">
\r
60 <xsl:when test="$leader6='a'">
\r
62 <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when>
\r
63 <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">SE</xsl:when>
\r
66 <xsl:when test="$leader6='t'">BK</xsl:when>
\r
67 <xsl:when test="$leader6='p'">MM</xsl:when>
\r
68 <xsl:when test="$leader6='m'">CF</xsl:when>
\r
69 <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when>
\r
70 <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">VM</xsl:when>
\r
71 <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">MU</xsl:when>
\r
74 <xsl:for-each select="marc:datafield[@tag=245]">
\r
76 <xsl:variable name="title">
\r
78 <xsl:when test="marc:subfield[@code='b']">
\r
79 <xsl:call-template name="specialSubfieldSelect">
\r
80 <xsl:with-param name="axis">b</xsl:with-param>
\r
81 <xsl:with-param name="beforeCodes">afgk</xsl:with-param>
\r
82 </xsl:call-template>
\r
85 <xsl:call-template name="subfieldSelect">
\r
86 <xsl:with-param name="codes">abfgk</xsl:with-param>
\r
87 </xsl:call-template>
\r
91 <xsl:variable name="titleChop">
\r
92 <xsl:call-template name="chopPunctuation">
\r
93 <xsl:with-param name="chopString">
\r
94 <xsl:value-of select="$title"/>
\r
96 </xsl:call-template>
\r
99 <xsl:when test="@ind2>0">
\r
101 <xsl:value-of select="substring($titleChop,1,@ind2)"/>
\r
104 <xsl:value-of select="substring($titleChop,@ind2+1)"/>
\r
109 <xsl:value-of select="$titleChop"/>
\r
113 <xsl:if test="marc:subfield[@code='b']">
\r
115 <xsl:call-template name="chopPunctuation">
\r
116 <xsl:with-param name="chopString">
\r
117 <xsl:call-template name="specialSubfieldSelect">
\r
118 <xsl:with-param name="axis">b</xsl:with-param>
\r
119 <xsl:with-param name="anyCodes">b</xsl:with-param>
\r
120 <xsl:with-param name="afterCodes">afgk</xsl:with-param>
\r
121 </xsl:call-template>
\r
123 </xsl:call-template>
\r
126 <xsl:call-template name="part"/>
\r
129 <xsl:for-each select="marc:datafield[@tag=210]">
\r
130 <titleInfo type="abbreviated">
\r
132 <xsl:call-template name="chopPunctuation">
\r
133 <xsl:with-param name="chopString">
\r
134 <xsl:call-template name="subfieldSelect">
\r
135 <xsl:with-param name="codes">a</xsl:with-param>
\r
136 </xsl:call-template>
\r
138 </xsl:call-template>
\r
140 <xsl:call-template name="subtitle"/>
\r
143 <xsl:for-each select="marc:datafield[@tag=242]">
\r
144 <titleInfo type="translated">
\r
145 <!--09/01/04 Added subfield $y-->
\r
146 <xsl:for-each select="marc:subfield[@code='y']">
\r
147 <xsl:attribute name="lang"><xsl:value-of select="text()"/></xsl:attribute>
\r
150 <xsl:call-template name="chopPunctuation">
\r
151 <xsl:with-param name="chopString">
\r
152 <xsl:call-template name="subfieldSelect">
\r
153 <!-- 1/04 removed $h, b -->
\r
154 <xsl:with-param name="codes">a</xsl:with-param>
\r
155 </xsl:call-template>
\r
157 </xsl:call-template>
\r
160 <xsl:call-template name="subtitle"/>
\r
161 <xsl:call-template name="part"/>
\r
164 <xsl:for-each select="marc:datafield[@tag=246]">
\r
165 <titleInfo type="alternative">
\r
166 <xsl:for-each select="marc:subfield[@code='i']">
\r
167 <xsl:attribute name="displayLabel"><xsl:value-of select="text()"/></xsl:attribute>
\r
170 <xsl:call-template name="chopPunctuation">
\r
171 <xsl:with-param name="chopString">
\r
172 <xsl:call-template name="subfieldSelect">
\r
173 <!-- 1/04 removed $h, $b -->
\r
174 <xsl:with-param name="codes">af</xsl:with-param>
\r
175 </xsl:call-template>
\r
177 </xsl:call-template>
\r
179 <xsl:call-template name="subtitle"/>
\r
180 <xsl:call-template name="part"/>
\r
183 <xsl:for-each select="marc:datafield[@tag=130]|marc:datafield[@tag=240]|marc:datafield[@tag=730][@ind2!=2]">
\r
184 <titleInfo type="uniform">
\r
186 <xsl:variable name="str">
\r
187 <xsl:for-each select="marc:subfield">
\r
188 <xsl:if test="(contains('adfklmor',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))">
\r
189 <xsl:value-of select="text()"/>
\r
190 <xsl:text> </xsl:text>
\r
194 <xsl:call-template name="chopPunctuation">
\r
195 <xsl:with-param name="chopString">
\r
196 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
198 </xsl:call-template>
\r
200 <xsl:call-template name="part"/>
\r
203 <xsl:for-each select="marc:datafield[@tag=740][@ind2!=2]">
\r
204 <titleInfo type="alternative">
\r
206 <xsl:call-template name="chopPunctuation">
\r
207 <xsl:with-param name="chopString">
\r
208 <xsl:call-template name="subfieldSelect">
\r
209 <xsl:with-param name="codes">ah</xsl:with-param>
\r
210 </xsl:call-template>
\r
212 </xsl:call-template>
\r
214 <xsl:call-template name="part"/>
\r
217 <xsl:for-each select="marc:datafield[@tag=100]">
\r
218 <name type="personal">
\r
219 <xsl:call-template name="nameABCDQ"/>
\r
220 <xsl:call-template name="affiliation"/>
\r
222 <roleTerm authority="marcrelator" type="text">creator</roleTerm>
\r
224 <xsl:call-template name="role"/>
\r
227 <xsl:for-each select="marc:datafield[@tag=110]">
\r
228 <name type="corporate">
\r
229 <xsl:call-template name="nameABCDN"/>
\r
231 <roleTerm authority="marcrelator" type="text">creator</roleTerm>
\r
233 <xsl:call-template name="role"/>
\r
236 <xsl:for-each select="marc:datafield[@tag=111]">
\r
237 <name type="conference">
\r
238 <xsl:call-template name="nameACDEQ"/>
\r
240 <roleTerm authority="marcrelator" type="text">creator</roleTerm>
\r
242 <xsl:call-template name="role"/>
\r
245 <xsl:for-each select="marc:datafield[@tag=700][not(marc:subfield[@code='t'])]">
\r
246 <name type="personal">
\r
247 <xsl:call-template name="nameABCDQ"/>
\r
248 <xsl:call-template name="affiliation"/>
\r
249 <xsl:call-template name="role"/>
\r
252 <xsl:for-each select="marc:datafield[@tag=710][not(marc:subfield[@code='t'])]">
\r
253 <name type="corporate">
\r
254 <xsl:call-template name="nameABCDN"/>
\r
255 <xsl:call-template name="role"/>
\r
258 <xsl:for-each select="marc:datafield[@tag=711][not(marc:subfield[@code='t'])]">
\r
259 <name type="conference">
\r
260 <xsl:call-template name="nameACDEQ"/>
\r
261 <xsl:call-template name="role"/>
\r
264 <xsl:for-each select="marc:datafield[@tag=720][not(marc:subfield[@code='t'])]">
\r
266 <xsl:if test="@ind1=1">
\r
267 <xsl:attribute name="type"><xsl:text>personal</xsl:text></xsl:attribute>
\r
270 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
272 <xsl:call-template name="role"/>
\r
276 <xsl:if test="$leader7='c'">
\r
277 <xsl:attribute name="collection">yes</xsl:attribute>
\r
279 <xsl:if test="$leader6='d' or $leader6='f' or $leader6='p' or $leader6='t'">
\r
280 <xsl:attribute name="manuscript">yes</xsl:attribute>
\r
283 <xsl:when test="$leader6='a' or $leader6='t'">text</xsl:when>
\r
284 <xsl:when test="$leader6='e' or $leader6='f'">cartographic</xsl:when>
\r
285 <xsl:when test="$leader6='c' or $leader6='d'">notated music</xsl:when>
\r
286 <xsl:when test="$leader6='i'">sound recording-nonmusical</xsl:when>
\r
287 <xsl:when test="$leader6='j'">sound recording-musical</xsl:when>
\r
288 <xsl:when test="$leader6='k'">still image</xsl:when>
\r
289 <xsl:when test="$leader6='g'">moving image</xsl:when>
\r
290 <xsl:when test="$leader6='r'">three dimensional object</xsl:when>
\r
291 <xsl:when test="$leader6='m'">software, multimedia</xsl:when>
\r
292 <xsl:when test="$leader6='p'">mixed material</xsl:when>
\r
295 <xsl:if test="substring($controlField008,26,1)='d'">
\r
296 <genre authority="marc">globe</genre>
\r
298 <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='r']">
\r
299 <genre authority="marc">remote sensing image</genre>
\r
301 <xsl:if test="$typeOf008='MP'">
\r
302 <xsl:variable name="controlField008-25" select="substring($controlField008,26,1)"/>
\r
304 <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
305 <genre authority="marc">map</genre>
\r
307 <xsl:when test="$controlField008-25='e' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']">
\r
308 <genre authority="marc">atlas</genre>
\r
312 <xsl:if test="$typeOf008='SE'">
\r
313 <xsl:variable name="controlField008-21" select="substring($controlField008,22,1)"/>
\r
315 <xsl:when test="$controlField008-21='d'">
\r
316 <genre authority="marc">database</genre>
\r
318 <xsl:when test="$controlField008-21='l'">
\r
319 <genre authority="marc">loose-leaf</genre>
\r
321 <xsl:when test="$controlField008-21='m'">
\r
322 <genre authority="marc">series</genre>
\r
324 <xsl:when test="$controlField008-21='n'">
\r
325 <genre authority="marc">newspaper</genre>
\r
327 <xsl:when test="$controlField008-21='p'">
\r
328 <genre authority="marc">periodical</genre>
\r
330 <xsl:when test="$controlField008-21='w'">
\r
331 <genre authority="marc">web site</genre>
\r
335 <xsl:if test="$typeOf008='BK' or $typeOf008='SE'">
\r
336 <xsl:variable name="controlField008-24" select="substring($controlField008,25,4)"/>
\r
338 <xsl:when test="contains($controlField008-24,'a')">
\r
339 <genre authority="marc">abstract or summary</genre>
\r
341 <xsl:when test="contains($controlField008-24,'b')">
\r
342 <genre authority="marc">bibliography</genre>
\r
344 <xsl:when test="contains($controlField008-24,'c')">
\r
345 <genre authority="marc">catalog</genre>
\r
347 <xsl:when test="contains($controlField008-24,'d')">
\r
348 <genre authority="marc">dictionary</genre>
\r
350 <xsl:when test="contains($controlField008-24,'e')">
\r
351 <genre authority="marc">encyclopedia</genre>
\r
353 <xsl:when test="contains($controlField008-24,'f')">
\r
354 <genre authority="marc">handbook</genre>
\r
356 <xsl:when test="contains($controlField008-24,'g')">
\r
357 <genre authority="marc">legal article</genre>
\r
359 <xsl:when test="contains($controlField008-24,'i')">
\r
360 <genre authority="marc">index</genre>
\r
362 <xsl:when test="contains($controlField008-24,'k')">
\r
363 <genre authority="marc">discography</genre>
\r
365 <xsl:when test="contains($controlField008-24,'l')">
\r
366 <genre authority="marc">legislation</genre>
\r
368 <xsl:when test="contains($controlField008-24,'m')">
\r
369 <genre authority="marc">theses</genre>
\r
371 <xsl:when test="contains($controlField008-24,'n')">
\r
372 <genre authority="marc">survey of literature</genre>
\r
374 <xsl:when test="contains($controlField008-24,'o')">
\r
375 <genre authority="marc">review</genre>
\r
377 <xsl:when test="contains($controlField008-24,'p')">
\r
378 <genre authority="marc">programmed text</genre>
\r
380 <xsl:when test="contains($controlField008-24,'q')">
\r
381 <genre authority="marc">filmography</genre>
\r
383 <xsl:when test="contains($controlField008-24,'r')">
\r
384 <genre authority="marc">directory</genre>
\r
386 <xsl:when test="contains($controlField008-24,'s')">
\r
387 <genre authority="marc">statistics</genre>
\r
389 <xsl:when test="contains($controlField008-24,'t')">
\r
390 <genre authority="marc">technical report</genre>
\r
392 <xsl:when test="contains($controlField008-24,'v')">
\r
393 <genre authority="marc">legal case and case notes</genre>
\r
395 <xsl:when test="contains($controlField008-24,'w')">
\r
396 <genre authority="marc">law report or digest</genre>
\r
398 <xsl:when test="contains($controlField008-24,'z')">
\r
399 <genre authority="marc">treaty</genre>
\r
402 <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/>
\r
404 <xsl:when test="$controlField008-29='1'">
\r
405 <genre authority="marc">conference publication</genre>
\r
409 <xsl:if test="$typeOf008='CF'">
\r
410 <xsl:variable name="controlField008-26" select="substring($controlField008,27,1)"/>
\r
412 <xsl:when test="$controlField008-26='a'">
\r
413 <genre authority="marc">numeric data</genre>
\r
415 <xsl:when test="$controlField008-26='e'">
\r
416 <genre authority="marc">database</genre>
\r
418 <xsl:when test="$controlField008-26='f'">
\r
419 <genre authority="marc">font</genre>
\r
421 <xsl:when test="$controlField008-26='g'">
\r
422 <genre authority="marc">game</genre>
\r
426 <xsl:if test="$typeOf008='BK'">
\r
427 <xsl:if test="substring($controlField008,25,1)='j'">
\r
428 <genre authority="marc">patent</genre>
\r
430 <xsl:if test="substring($controlField008,31,1)='1'">
\r
431 <genre authority="marc">festschrift</genre>
\r
433 <xsl:variable name="controlField008-34" select="substring($controlField008,35,1)"/>
\r
434 <xsl:if test="$controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d'">
\r
435 <genre authority="marc">biography</genre>
\r
437 <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/>
\r
439 <xsl:when test="$controlField008-33='e'">
\r
440 <genre authority="marc">essay</genre>
\r
442 <xsl:when test="$controlField008-33='d'">
\r
443 <genre authority="marc">drama</genre>
\r
445 <xsl:when test="$controlField008-33='c'">
\r
446 <genre authority="marc">comic strip</genre>
\r
448 <xsl:when test="$controlField008-33='l'">
\r
449 <genre authority="marc">fiction</genre>
\r
451 <xsl:when test="$controlField008-33='h'">
\r
452 <genre authority="marc">humor, satire</genre>
\r
454 <xsl:when test="$controlField008-33='i'">
\r
455 <genre authority="marc">letter</genre>
\r
457 <xsl:when test="$controlField008-33='f'">
\r
458 <genre authority="marc">novel</genre>
\r
460 <xsl:when test="$controlField008-33='j'">
\r
461 <genre authority="marc">short story</genre>
\r
463 <xsl:when test="$controlField008-33='s'">
\r
464 <genre authority="marc">speech</genre>
\r
468 <xsl:if test="$typeOf008='MU'">
\r
469 <xsl:variable name="controlField008-30-31" select="substring($controlField008,31,2)"/>
\r
470 <xsl:if test="contains($controlField008-30-31,'b')">
\r
471 <genre authority="marc">biography</genre>
\r
473 <xsl:if test="contains($controlField008-30-31,'c')">
\r
474 <genre authority="marc">conference publication</genre>
\r
476 <xsl:if test="contains($controlField008-30-31,'d')">
\r
477 <genre authority="marc">drama</genre>
\r
479 <xsl:if test="contains($controlField008-30-31,'e')">
\r
480 <genre authority="marc">essay</genre>
\r
482 <xsl:if test="contains($controlField008-30-31,'f')">
\r
483 <genre authority="marc">fiction</genre>
\r
485 <xsl:if test="contains($controlField008-30-31,'o')">
\r
486 <genre authority="marc">folktale</genre>
\r
488 <xsl:if test="contains($controlField008-30-31,'h')">
\r
489 <genre authority="marc">history</genre>
\r
491 <xsl:if test="contains($controlField008-30-31,'k')">
\r
492 <genre authority="marc">humor, satire</genre>
\r
494 <xsl:if test="contains($controlField008-30-31,'m')">
\r
495 <genre authority="marc">memoir</genre>
\r
497 <xsl:if test="contains($controlField008-30-31,'p')">
\r
498 <genre authority="marc">poetry</genre>
\r
500 <xsl:if test="contains($controlField008-30-31,'r')">
\r
501 <genre authority="marc">rehearsal</genre>
\r
503 <xsl:if test="contains($controlField008-30-31,'g')">
\r
504 <genre authority="marc">reporting</genre>
\r
506 <xsl:if test="contains($controlField008-30-31,'s')">
\r
507 <genre authority="marc">sound</genre>
\r
509 <xsl:if test="contains($controlField008-30-31,'l')">
\r
510 <genre authority="marc">speech</genre>
\r
513 <xsl:if test="$typeOf008='VM'">
\r
514 <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/>
\r
516 <xsl:when test="$controlField008-33='a'">
\r
517 <genre authority="marc">art original</genre>
\r
519 <xsl:when test="$controlField008-33='b'">
\r
520 <genre authority="marc">kit</genre>
\r
522 <xsl:when test="$controlField008-33='c'">
\r
523 <genre authority="marc">art reproduction</genre>
\r
525 <xsl:when test="$controlField008-33='d'">
\r
526 <genre authority="marc">diorama</genre>
\r
528 <xsl:when test="$controlField008-33='f'">
\r
529 <genre authority="marc">filmstrip</genre>
\r
531 <xsl:when test="$controlField008-33='g'">
\r
532 <genre authority="marc">legal article</genre>
\r
534 <xsl:when test="$controlField008-33='i'">
\r
535 <genre authority="marc">picture</genre>
\r
537 <xsl:when test="$controlField008-33='k'">
\r
538 <genre authority="marc">graphic</genre>
\r
540 <xsl:when test="$controlField008-33='l'">
\r
541 <genre authority="marc">technical drawing</genre>
\r
543 <xsl:when test="$controlField008-33='m'">
\r
544 <genre authority="marc">motion picture</genre>
\r
546 <xsl:when test="$controlField008-33='n'">
\r
547 <genre authority="marc">chart</genre>
\r
549 <xsl:when test="$controlField008-33='o'">
\r
550 <genre authority="marc">flash card</genre>
\r
552 <xsl:when test="$controlField008-33='p'">
\r
553 <genre authority="marc">microscope slide</genre>
\r
555 <xsl:when test="$controlField008-33='q' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']">
\r
556 <genre authority="marc">model</genre>
\r
558 <xsl:when test="$controlField008-33='r'">
\r
559 <genre authority="marc">realia</genre>
\r
561 <xsl:when test="$controlField008-33='s'">
\r
562 <genre authority="marc">slide</genre>
\r
564 <xsl:when test="$controlField008-33='t'">
\r
565 <genre authority="marc">transparency</genre>
\r
567 <xsl:when test="$controlField008-33='v'">
\r
568 <genre authority="marc">videorecording</genre>
\r
570 <xsl:when test="$controlField008-33='w'">
\r
571 <genre authority="marc">toy</genre>
\r
575 <xsl:for-each select="marc:datafield[@tag=655]">
\r
576 <genre authority="marc">
\r
577 <xsl:attribute name="authority"><xsl:value-of select="marc:subfield[@code='2']"/></xsl:attribute>
\r
578 <xsl:call-template name="subfieldSelect">
\r
579 <xsl:with-param name="codes">abvxyz</xsl:with-param>
\r
580 <xsl:with-param name="delimeter">-</xsl:with-param>
\r
581 </xsl:call-template>
\r
585 <xsl:variable name="MARCpublicationCode" select="normalize-space(substring($controlField008,16,3))"/>
\r
586 <xsl:if test="translate($MARCpublicationCode,'|','')">
\r
589 <xsl:attribute name="type">code</xsl:attribute>
\r
590 <xsl:attribute name="authority">marccountry</xsl:attribute>
\r
591 <xsl:value-of select="$MARCpublicationCode"/>
\r
595 <xsl:for-each select="marc:datafield[@tag=044]/marc:subfield[@code='c']">
\r
598 <xsl:attribute name="type">code</xsl:attribute>
\r
599 <xsl:attribute name="authority">iso3166</xsl:attribute>
\r
600 <xsl:value-of select="."/>
\r
604 <xsl:for-each select="marc:datafield[@tag=260]/marc:subfield[@code='a']">
\r
607 <xsl:attribute name="type">text</xsl:attribute>
\r
608 <xsl:call-template name="chopPunctuationFront">
\r
609 <xsl:with-param name="chopString">
\r
610 <xsl:call-template name="chopPunctuation">
\r
611 <xsl:with-param name="chopString" select="."/>
\r
612 </xsl:call-template>
\r
614 </xsl:call-template>
\r
618 <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='m']">
\r
619 <dateValid point="start">
\r
620 <xsl:value-of select="."/>
\r
623 <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='n']">
\r
624 <dateValid point="end">
\r
625 <xsl:value-of select="."/>
\r
628 <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='j']">
\r
630 <xsl:value-of select="."/>
\r
633 <xsl:for-each select="marc:datafield[@tag=260]/marc:subfield[@code='b' or @code='c' or @code='g']">
\r
635 <xsl:when test="@code='b'">
\r
637 <xsl:call-template name="chopPunctuation">
\r
638 <xsl:with-param name="chopString" select="."/>
\r
639 <xsl:with-param name="punctuation">
\r
640 <xsl:text>:,;/ </xsl:text>
\r
642 </xsl:call-template>
\r
645 <xsl:when test="@code='c'">
\r
647 <xsl:call-template name="chopPunctuation">
\r
648 <xsl:with-param name="chopString" select="."/>
\r
649 </xsl:call-template>
\r
652 <xsl:when test="@code='g'">
\r
654 <xsl:value-of select="."/>
\r
659 <xsl:variable name="dataField260c">
\r
660 <xsl:call-template name="chopPunctuation">
\r
661 <xsl:with-param name="chopString" select="marc:datafield[@tag=260]/marc:subfield[@code='c']"/>
\r
662 </xsl:call-template>
\r
664 <xsl:variable name="controlField008-7-10" select="normalize-space(substring($controlField008, 8, 4))"/>
\r
665 <xsl:variable name="controlField008-11-14" select="normalize-space(substring($controlField008, 12, 4))"/>
\r
666 <xsl:variable name="controlField008-6" select="normalize-space(substring($controlField008, 7, 1))"/>
\r
667 <xsl:if test="$controlField008-6='e' or $controlField008-6='p' or $controlField008-6='r' or $controlField008-6='t' or $controlField008-6='s'">
\r
668 <xsl:if test="$controlField008-7-10 and ($controlField008-7-10 != $dataField260c)">
\r
669 <dateIssued encoding="marc">
\r
670 <xsl:value-of select="$controlField008-7-10"/>
\r
674 <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
675 <xsl:if test="$controlField008-7-10">
\r
676 <dateIssued encoding="marc" point="start">
\r
677 <xsl:value-of select="$controlField008-7-10"/>
\r
681 <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
682 <xsl:if test="$controlField008-11-14">
\r
683 <dateIssued encoding="marc" point="end">
\r
684 <xsl:value-of select="$controlField008-11-14"/>
\r
688 <xsl:if test="$controlField008-6='q'">
\r
689 <xsl:if test="$controlField008-7-10">
\r
690 <dateIssued encoding="marc" point="start" qualifier="questionable">
\r
691 <xsl:value-of select="$controlField008-7-10"/>
\r
695 <xsl:if test="$controlField008-6='q'">
\r
696 <xsl:if test="$controlField008-11-14">
\r
697 <dateIssued encoding="marc" point="end" qualifier="questionable">
\r
698 <xsl:value-of select="$controlField008-11-14"/>
\r
702 <xsl:if test="$controlField008-6='t'">
\r
703 <xsl:if test="$controlField008-11-14">
\r
704 <copyrightDate encoding="marc">
\r
705 <xsl:value-of select="$controlField008-11-14"/>
\r
709 <xsl:for-each select="marc:datafield[@tag=033][@ind1=0 or @ind1=1]/marc:subfield[@code='a']">
\r
710 <dateCaptured encoding="iso8601">
\r
711 <xsl:value-of select="."/>
\r
714 <xsl:for-each select="marc:datafield[@tag=033][@ind1=2]/marc:subfield[@code='a'][1]">
\r
715 <dateCaptured encoding="iso8601" point="start">
\r
716 <xsl:value-of select="."/>
\r
719 <xsl:for-each select="marc:datafield[@tag=033][@ind1=2]/marc:subfield[@code='a'][2]">
\r
720 <dateCaptured encoding="iso8601" point="end">
\r
721 <xsl:value-of select="."/>
\r
724 <xsl:for-each select="marc:datafield[@tag=250]/marc:subfield[@code='a']">
\r
726 <xsl:value-of select="."/>
\r
729 <xsl:for-each select="marc:leader">
\r
732 <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">monographic</xsl:when>
\r
733 <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">continuing</xsl:when>
\r
737 <xsl:for-each select="marc:datafield[@tag=310]|marc:datafield[@tag=321]">
\r
739 <xsl:call-template name="subfieldSelect">
\r
740 <xsl:with-param name="codes">ab</xsl:with-param>
\r
741 </xsl:call-template>
\r
745 <xsl:variable name="controlField008-35-37" select="normalize-space(translate(substring($controlField008,36,3),'|#',''))"/>
\r
746 <xsl:if test="$controlField008-35-37">
\r
748 <languageTerm authority="iso639-2b" type="code">
\r
749 <xsl:value-of select="substring($controlField008,36,3)"/>
\r
753 <xsl:for-each select="marc:datafield[@tag=041]">
\r
754 <xsl:for-each select="marc:subfield[@code='a' or @code='b' or @code='d' or @code='e' or @code='f' or @code='g' or @code='h']">
\r
755 <xsl:variable name="langCodes" select="."/>
\r
757 <xsl:when test="../marc:subfield[@code='2']='rfc3066'">
\r
758 <!-- not stacked but could be repeated -->
\r
759 <xsl:call-template name="rfcLanguages">
\r
760 <xsl:with-param name="nodeNum">
\r
761 <xsl:value-of select="1"/>
\r
763 <xsl:with-param name="usedLanguages">
\r
766 <xsl:with-param name="controlField008-35-37">
\r
767 <xsl:value-of select="$controlField008-35-37"/>
\r
769 </xsl:call-template>
\r
773 <xsl:variable name="allLanguages">
\r
774 <xsl:copy-of select="$langCodes"/>
\r
776 <xsl:variable name="currentLanguage">
\r
777 <xsl:value-of select="substring($allLanguages,1,3)"/>
\r
779 <xsl:call-template name="isoLanguage">
\r
780 <xsl:with-param name="currentLanguage">
\r
781 <xsl:value-of select="substring($allLanguages,1,3)"/>
\r
783 <xsl:with-param name="remainingLanguages">
\r
784 <xsl:value-of select="substring($allLanguages,4,string-length($allLanguages)-3)"/>
\r
786 <xsl:with-param name="usedLanguages">
\r
787 <xsl:if test="$controlField008-35-37">
\r
788 <xsl:value-of select="$controlField008-35-37"/>
\r
791 </xsl:call-template>
\r
796 <xsl:variable name="physicalDescription">
\r
797 <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='a' or substring(.,12,1)='b']">
\r
798 <digitalOrigin>reformatted digital</digitalOrigin>
\r
800 <xsl:variable name="controlField008-23" select="substring($controlField008,24,1)"/>
\r
801 <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/>
\r
802 <xsl:variable name="check008-23">
\r
803 <xsl:if test="$typeOf008='BK' or $typeOf008='MU' or $typeOf008='SE' or $typeOf008='MM'">
\r
804 <xsl:value-of select="true()"/>
\r
807 <xsl:variable name="check008-29">
\r
808 <xsl:if test="$typeOf008='MP' or $typeOf008='VM'">
\r
809 <xsl:value-of select="true()"/>
\r
813 <xsl:when test="($check008-23 and $controlField008-23='f') or ($check008-29 and $controlField008-29='f')">
\r
814 <form authority="marcform">braille</form>
\r
816 <xsl:when test="($controlField008-23=' ' and ($leader6='c' or $leader6='d')) or (($typeOf008='BK' or $typeOf008='SE') and ($controlField008-23=' ' or $controlField008='r'))">
\r
817 <form authority="marcform">print</form>
\r
819 <xsl:when test="$leader6 = 'm' or ($check008-23 and $controlField008-23='s') or ($check008-29 and $controlField008-29='s')">
\r
820 <form authority="marcform">electronic</form>
\r
822 <xsl:when test="($check008-23 and $controlField008-23='b') or ($check008-29 and $controlField008-29='b')">
\r
823 <form authority="marcform">microfiche</form>
\r
825 <xsl:when test="($check008-23 and $controlField008-23='a') or ($check008-29 and $controlField008-29='a')">
\r
826 <form authority="marcform">microfilm</form>
\r
830 <xsl:if test="marc:datafield[@tag=130]/marc:subfield[@code='h']">
\r
831 <form authority="gmd">
\r
832 <xsl:call-template name="chopBrackets">
\r
833 <xsl:with-param name="chopString">
\r
834 <xsl:value-of select="marc:datafield[@tag=130]/marc:subfield[@code='h']"/>
\r
836 </xsl:call-template>
\r
839 <xsl:if test="marc:datafield[@tag=240]/marc:subfield[@code='h']">
\r
840 <form authority="gmd">
\r
841 <xsl:call-template name="chopBrackets">
\r
842 <xsl:with-param name="chopString">
\r
843 <xsl:value-of select="marc:datafield[@tag=240]/marc:subfield[@code='h']"/>
\r
845 </xsl:call-template>
\r
848 <xsl:if test="marc:datafield[@tag=242]/marc:subfield[@code='h']">
\r
849 <form authority="gmd">
\r
850 <xsl:call-template name="chopBrackets">
\r
851 <xsl:with-param name="chopString">
\r
852 <xsl:value-of select="marc:datafield[@tag=242]/marc:subfield[@code='h']"/>
\r
854 </xsl:call-template>
\r
857 <xsl:if test="marc:datafield[@tag=245]/marc:subfield[@code='h']">
\r
858 <form authority="gmd">
\r
859 <xsl:call-template name="chopBrackets">
\r
860 <xsl:with-param name="chopString">
\r
861 <xsl:value-of select="marc:datafield[@tag=245]/marc:subfield[@code='h']"/>
\r
863 </xsl:call-template>
\r
866 <xsl:if test="marc:datafield[@tag=246]/marc:subfield[@code='h']">
\r
867 <form authority="gmd">
\r
868 <xsl:call-template name="chopBrackets">
\r
869 <xsl:with-param name="chopString">
\r
870 <xsl:value-of select="marc:datafield[@tag=246]/marc:subfield[@code='h']"/>
\r
872 </xsl:call-template>
\r
875 <xsl:if test="marc:datafield[@tag=730]/marc:subfield[@code='h']">
\r
876 <form authority="gmd">
\r
877 <xsl:call-template name="chopBrackets">
\r
878 <xsl:with-param name="chopString">
\r
879 <xsl:value-of select="marc:datafield[@tag=730]/marc:subfield[@code='h']"/>
\r
881 </xsl:call-template>
\r
884 <xsl:for-each select="marc:datafield[@tag=256]/marc:subfield[@code='a']">
\r
886 <xsl:value-of select="."/>
\r
889 <xsl:for-each select="marc:controlfield[@tag=007][substring(text(),1,1)='c']">
\r
891 <xsl:when test="substring(text(),14,1)='a'">
\r
892 <reformattingQuality>access</reformattingQuality>
\r
894 <xsl:when test="substring(text(),14,1)='p'">
\r
895 <reformattingQuality>preservation</reformattingQuality>
\r
897 <xsl:when test="substring(text(),14,1)='r'">
\r
898 <reformattingQuality>replacement</reformattingQuality>
\r
902 <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q'][string-length(.)>1]">
\r
903 <internetMediaType>
\r
904 <xsl:value-of select="."/>
\r
905 </internetMediaType>
\r
907 <xsl:for-each select="marc:datafield[@tag=300]">
\r
909 <xsl:call-template name="subfieldSelect">
\r
910 <xsl:with-param name="codes">abce</xsl:with-param>
\r
911 </xsl:call-template>
\r
915 <xsl:if test="string-length(normalize-space($physicalDescription))">
\r
916 <physicalDescription>
\r
917 <xsl:copy-of select="$physicalDescription"/>
\r
918 </physicalDescription>
\r
920 <xsl:for-each select="marc:datafield[@tag=520]">
\r
922 <xsl:call-template name="uri"/>
\r
923 <xsl:call-template name="subfieldSelect">
\r
924 <xsl:with-param name="codes">ab</xsl:with-param>
\r
925 </xsl:call-template>
\r
928 <xsl:for-each select="marc:datafield[@tag=505]">
\r
930 <xsl:call-template name="uri"/>
\r
931 <xsl:call-template name="subfieldSelect">
\r
932 <xsl:with-param name="codes">agrt</xsl:with-param>
\r
933 </xsl:call-template>
\r
936 <xsl:for-each select="marc:datafield[@tag=521]">
\r
938 <xsl:call-template name="subfieldSelect">
\r
939 <xsl:with-param name="codes">ab</xsl:with-param>
\r
940 </xsl:call-template>
\r
943 <xsl:if test="$typeOf008='BK' or $typeOf008='CF' or $typeOf008='MU' or $typeOf008='VM'">
\r
944 <xsl:variable name="controlField008-22" select="substring($controlField008,23,1)"/>
\r
947 <xsl:when test="$controlField008-22='d'">
\r
948 <targetAudience authority="marctarget">adolescent</targetAudience>
\r
950 <xsl:when test="$controlField008-22='e'">
\r
951 <targetAudience authority="marctarget">adult</targetAudience>
\r
953 <xsl:when test="$controlField008-22='g'">
\r
954 <targetAudience authority="marctarget">general</targetAudience>
\r
956 <xsl:when test="$controlField008-22='b' or $controlField008-22='c' or $controlField008-22='j'">
\r
957 <targetAudience authority="marctarget">juvenile</targetAudience>
\r
959 <xsl:when test="$controlField008-22='a'">
\r
960 <targetAudience authority="marctarget">preschool</targetAudience>
\r
962 <xsl:when test="$controlField008-22='f'">
\r
963 <targetAudience authority="marctarget">specialized</targetAudience>
\r
967 <xsl:for-each select="marc:datafield[@tag=245]/marc:subfield[@code='c']">
\r
968 <note type="statement of responsibility">
\r
969 <xsl:value-of select="."/>
\r
972 <xsl:for-each select="marc:datafield[@tag=500]">
\r
974 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
975 <xsl:call-template name="uri"/>
\r
978 <xsl:for-each select="marc:datafield[@tag=511]">
\r
979 <note type="performers">
\r
980 <xsl:call-template name="uri"/>
\r
981 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
984 <xsl:for-each select="marc:datafield[@tag=518]">
\r
985 <note type="venue">
\r
986 <xsl:call-template name="uri"/>
\r
987 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
990 <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=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
992 <xsl:call-template name="uri"/>
\r
993 <xsl:variable name="str">
\r
994 <xsl:for-each select="marc:subfield[@code!='6' or @code!='8']">
\r
995 <xsl:value-of select="."/>
\r
996 <xsl:text> </xsl:text>
\r
999 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
1002 <xsl:for-each select="marc:datafield[@tag=034][marc:subfield[@code='d' or @code='e' or @code='f' or @code='g']]">
\r
1006 <xsl:call-template name="subfieldSelect">
\r
1007 <xsl:with-param name="codes">defg</xsl:with-param>
\r
1008 </xsl:call-template>
\r
1013 <xsl:for-each select="marc:datafield[@tag=043]">
\r
1015 <xsl:for-each select="marc:subfield[@code='a' or @code='b' or @code='c']">
\r
1017 <xsl:attribute name="authority"><xsl:if test="@code='a'"><xsl:text>marcgac</xsl:text></xsl:if><xsl:if test="@code='b'"><xsl:value-of select="following-sibling::marc:subfield[@code=2]"/></xsl:if><xsl:if test="@code='c'"><xsl:text>iso3166</xsl:text></xsl:if></xsl:attribute>
\r
1018 <xsl:value-of select="self::marc:subfield"/>
\r
1023 <xsl:for-each select="marc:datafield[@tag=255]">
\r
1026 <xsl:for-each select="marc:subfield[@code='c']">
\r
1028 <xsl:value-of select="."/>
\r
1031 <xsl:for-each select="marc:subfield[@code='a']">
\r
1033 <xsl:value-of select="."/>
\r
1036 <xsl:for-each select="marc:subfield[@code='b']">
\r
1038 <xsl:value-of select="."/>
\r
1044 <xsl:apply-templates select="marc:datafield[653 >= @tag and @tag >= 600]"/>
\r
1045 <xsl:apply-templates select="marc:datafield[@tag=656]"/>
\r
1046 <xsl:for-each select="marc:datafield[@tag=752]">
\r
1048 <hierarchicalGeographic>
\r
1049 <xsl:for-each select="marc:subfield[@code='a']">
\r
1051 <xsl:call-template name="chopPunctuation">
\r
1052 <xsl:with-param name="chopString" select="."/>
\r
1053 </xsl:call-template>
\r
1056 <xsl:for-each select="marc:subfield[@code='b']">
\r
1058 <xsl:call-template name="chopPunctuation">
\r
1059 <xsl:with-param name="chopString" select="."/>
\r
1060 </xsl:call-template>
\r
1063 <xsl:for-each select="marc:subfield[@code='c']">
\r
1065 <xsl:call-template name="chopPunctuation">
\r
1066 <xsl:with-param name="chopString" select="."/>
\r
1067 </xsl:call-template>
\r
1070 <xsl:for-each select="marc:subfield[@code='d']">
\r
1072 <xsl:call-template name="chopPunctuation">
\r
1073 <xsl:with-param name="chopString" select="."/>
\r
1074 </xsl:call-template>
\r
1077 </hierarchicalGeographic>
\r
1080 <xsl:for-each select="marc:datafield[@tag=045][marc:subfield[@code='b']]">
\r
1083 <xsl:when test="@ind1=2">
\r
1084 <temporal encoding="iso8601" point="start">
\r
1085 <xsl:call-template name="chopPunctuation">
\r
1086 <xsl:with-param name="chopString">
\r
1087 <xsl:value-of select="marc:subfield[@code='b'][1]"/>
\r
1089 </xsl:call-template>
\r
1091 <temporal encoding="iso8601" point="end">
\r
1092 <xsl:call-template name="chopPunctuation">
\r
1093 <xsl:with-param name="chopString">
\r
1094 <xsl:value-of select="marc:subfield[@code='b'][2]"/>
\r
1096 </xsl:call-template>
\r
1100 <xsl:for-each select="marc:subfield[@code='b']">
\r
1101 <temporal encoding="iso8601">
\r
1102 <xsl:call-template name="chopPunctuation">
\r
1103 <xsl:with-param name="chopString" select="."/>
\r
1104 </xsl:call-template>
\r
1111 <xsl:for-each select="marc:datafield[@tag=050]">
\r
1112 <xsl:for-each select="marc:subfield[@code='b']">
\r
1113 <classification authority="lcc">
\r
1114 <xsl:if test="../marc:subfield[@code='3']">
\r
1115 <xsl:attribute name="displayLabel"><xsl:value-of select="../marc:subfield[@code='3']"/></xsl:attribute>
\r
1117 <xsl:value-of select="preceding-sibling::marc:subfield[@code='a'][1]"/>
\r
1118 <xsl:text> </xsl:text>
\r
1119 <xsl:value-of select="text()"/>
\r
1122 <xsl:for-each select="marc:subfield[@code='a'][not(following-sibling::marc:subfield[@code='b'])]">
\r
1123 <classification authority="lcc">
\r
1124 <xsl:if test="../marc:subfield[@code='3']">
\r
1125 <xsl:attribute name="displayLabel"><xsl:value-of select="../marc:subfield[@code='3']"/></xsl:attribute>
\r
1127 <xsl:value-of select="text()"/>
\r
1131 <xsl:for-each select="marc:datafield[@tag=082]">
\r
1132 <classification authority="ddc">
\r
1133 <xsl:if test="marc:subfield[@code='2']">
\r
1134 <xsl:attribute name="edition"><xsl:value-of select="marc:subfield[@code='2']"/></xsl:attribute>
\r
1136 <xsl:call-template name="subfieldSelect">
\r
1137 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1138 </xsl:call-template>
\r
1141 <xsl:for-each select="marc:datafield[@tag=080]">
\r
1142 <classification authority="udc">
\r
1143 <xsl:call-template name="subfieldSelect">
\r
1144 <xsl:with-param name="codes">abx</xsl:with-param>
\r
1145 </xsl:call-template>
\r
1148 <xsl:for-each select="marc:datafield[@tag=060]">
\r
1149 <classification authority="nlm">
\r
1150 <xsl:call-template name="subfieldSelect">
\r
1151 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1152 </xsl:call-template>
\r
1155 <xsl:for-each select="marc:datafield[@tag=086][@ind1=0]">
\r
1156 <classification authority="sudocs">
\r
1157 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1160 <xsl:for-each select="marc:datafield[@tag=086][@ind1=1]">
\r
1161 <classification authority="candoc">
\r
1162 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1165 <xsl:for-each select="marc:datafield[@tag=086]">
\r
1167 <xsl:attribute name="authority"><xsl:value-of select="marc:subfield[@code='2']"/></xsl:attribute>
\r
1168 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1171 <xsl:for-each select="marc:datafield[@tag=084]">
\r
1173 <xsl:attribute name="authority"><xsl:value-of select="marc:subfield[@code='2']"/></xsl:attribute>
\r
1174 <xsl:call-template name="subfieldSelect">
\r
1175 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1176 </xsl:call-template>
\r
1179 <xsl:for-each select="marc:datafield[@tag=440]">
\r
1180 <relatedItem type="series">
\r
1183 <xsl:call-template name="chopPunctuation">
\r
1184 <xsl:with-param name="chopString">
\r
1185 <xsl:call-template name="subfieldSelect">
\r
1186 <xsl:with-param name="codes">av</xsl:with-param>
\r
1187 </xsl:call-template>
\r
1189 </xsl:call-template>
\r
1191 <xsl:call-template name="part"/>
\r
1195 <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]">
\r
1196 <relatedItem type="series">
\r
1199 <xsl:call-template name="chopPunctuation">
\r
1200 <xsl:with-param name="chopString">
\r
1201 <xsl:call-template name="subfieldSelect">
\r
1202 <xsl:with-param name="codes">av</xsl:with-param>
\r
1203 </xsl:call-template>
\r
1205 </xsl:call-template>
\r
1207 <xsl:call-template name="part"/>
\r
1211 <xsl:for-each select="marc:datafield[@tag=510]">
\r
1212 <relatedItem type="isReferencedBy">
\r
1214 <xsl:call-template name="subfieldSelect">
\r
1215 <xsl:with-param name="codes">abcx3</xsl:with-param>
\r
1216 </xsl:call-template>
\r
1220 <xsl:for-each select="marc:datafield[@tag=534]">
\r
1221 <relatedItem type="original">
\r
1222 <xsl:call-template name="relatedTitle"/>
\r
1223 <xsl:call-template name="relatedName"/>
\r
1224 <xsl:if test="marc:subfield[@code='b' or @code='c']">
\r
1226 <xsl:for-each select="marc:subfield[@code='c']">
\r
1228 <xsl:value-of select="."/>
\r
1231 <xsl:for-each select="marc:subfield[@code='b']">
\r
1233 <xsl:value-of select="."/>
\r
1238 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1239 <xsl:for-each select="marc:subfield[@code='z']">
\r
1240 <identifier type="isbn">
\r
1241 <xsl:value-of select="."/>
\r
1244 <xsl:call-template name="relatedNote"/>
\r
1247 <xsl:for-each select="marc:datafield[@tag=700][marc:subfield[@code='t']]">
\r
1249 <xsl:call-template name="constituentOrRelatedType"/>
\r
1252 <xsl:call-template name="chopPunctuation">
\r
1253 <xsl:with-param name="chopString">
\r
1254 <xsl:call-template name="specialSubfieldSelect">
\r
1255 <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param>
\r
1256 <xsl:with-param name="axis">t</xsl:with-param>
\r
1257 <xsl:with-param name="afterCodes">g</xsl:with-param>
\r
1258 </xsl:call-template>
\r
1260 </xsl:call-template>
\r
1262 <xsl:call-template name="part"/>
\r
1264 <name type="personal">
\r
1266 <xsl:call-template name="specialSubfieldSelect">
\r
1267 <xsl:with-param name="anyCodes">aq</xsl:with-param>
\r
1268 <xsl:with-param name="axis">t</xsl:with-param>
\r
1269 <xsl:with-param name="beforeCodes">g</xsl:with-param>
\r
1270 </xsl:call-template>
\r
1272 <xsl:call-template name="termsOfAddress"/>
\r
1273 <xsl:call-template name="nameDate"/>
\r
1274 <xsl:call-template name="role"/>
\r
1276 <xsl:call-template name="relatedForm"/>
\r
1277 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1280 <xsl:for-each select="marc:datafield[@tag=710][marc:subfield[@code='t']]">
\r
1282 <xsl:call-template name="constituentOrRelatedType"/>
\r
1285 <xsl:call-template name="chopPunctuation">
\r
1286 <xsl:with-param name="chopString">
\r
1287 <xsl:call-template name="specialSubfieldSelect">
\r
1288 <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param>
\r
1289 <xsl:with-param name="axis">t</xsl:with-param>
\r
1290 <xsl:with-param name="afterCodes">dg</xsl:with-param>
\r
1291 </xsl:call-template>
\r
1293 </xsl:call-template>
\r
1295 <xsl:call-template name="relatedPartNumName"/>
\r
1297 <name type="corporate">
\r
1298 <xsl:for-each select="marc:subfield[@code='a']">
\r
1300 <xsl:value-of select="."/>
\r
1303 <xsl:for-each select="marc:subfield[@code='b']">
\r
1305 <xsl:value-of select="."/>
\r
1308 <xsl:variable name="tempNamePart">
\r
1309 <xsl:call-template name="specialSubfieldSelect">
\r
1310 <xsl:with-param name="anyCodes">c</xsl:with-param>
\r
1311 <xsl:with-param name="axis">t</xsl:with-param>
\r
1312 <xsl:with-param name="beforeCodes">dgn</xsl:with-param>
\r
1313 </xsl:call-template>
\r
1315 <xsl:if test="normalize-space($tempNamePart)">
\r
1317 <xsl:value-of select="$tempNamePart"/>
\r
1320 <xsl:call-template name="role"/>
\r
1322 <xsl:call-template name="relatedForm"/>
\r
1323 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1326 <xsl:for-each select="marc:datafield[@tag=711][marc:subfield[@code='t']]">
\r
1328 <xsl:call-template name="constituentOrRelatedType"/>
\r
1331 <xsl:call-template name="chopPunctuation">
\r
1332 <xsl:with-param name="chopString">
\r
1333 <xsl:call-template name="specialSubfieldSelect">
\r
1334 <xsl:with-param name="anyCodes">tfklsv</xsl:with-param>
\r
1335 <xsl:with-param name="axis">t</xsl:with-param>
\r
1336 <xsl:with-param name="afterCodes">g</xsl:with-param>
\r
1337 </xsl:call-template>
\r
1339 </xsl:call-template>
\r
1341 <xsl:call-template name="relatedPartNumName"/>
\r
1343 <name type="conference">
\r
1345 <xsl:call-template name="specialSubfieldSelect">
\r
1346 <xsl:with-param name="anyCodes">aqdc</xsl:with-param>
\r
1347 <xsl:with-param name="axis">t</xsl:with-param>
\r
1348 <xsl:with-param name="beforeCodes">gn</xsl:with-param>
\r
1349 </xsl:call-template>
\r
1352 <xsl:call-template name="relatedForm"/>
\r
1353 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1356 <xsl:for-each select="marc:datafield[@tag=730][@ind2=2]">
\r
1358 <xsl:call-template name="constituentOrRelatedType"/>
\r
1361 <xsl:call-template name="chopPunctuation">
\r
1362 <xsl:with-param name="chopString">
\r
1363 <xsl:call-template name="subfieldSelect">
\r
1364 <xsl:with-param name="codes">adfgklmorsv</xsl:with-param>
\r
1365 </xsl:call-template>
\r
1367 </xsl:call-template>
\r
1369 <xsl:call-template name="part"/>
\r
1371 <xsl:call-template name="relatedForm"/>
\r
1372 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1375 <xsl:for-each select="marc:datafield[@tag=740][@ind2=2]">
\r
1377 <xsl:call-template name="constituentOrRelatedType"/>
\r
1380 <xsl:call-template name="chopPunctuation">
\r
1381 <xsl:with-param name="chopString">
\r
1382 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1384 </xsl:call-template>
\r
1386 <xsl:call-template name="part"/>
\r
1388 <xsl:call-template name="relatedForm"/>
\r
1391 <xsl:for-each select="marc:datafield[@tag=760]|marc:datafield[@tag=762]">
\r
1392 <relatedItem type="series">
\r
1393 <xsl:call-template name="relatedItem76X-78X"/>
\r
1396 <xsl:for-each select="marc:datafield[@tag=765]|marc:datafield[@tag=767]|marc:datafield[@tag=777]|marc:datafield[@tag=787]">
\r
1398 <xsl:call-template name="relatedItem76X-78X"/>
\r
1401 <xsl:for-each select="marc:datafield[@tag=775]">
\r
1402 <relatedItem type="otherVersion">
\r
1403 <xsl:call-template name="relatedItem76X-78X"/>
\r
1406 <xsl:for-each select="marc:datafield[@tag=770]|marc:datafield[@tag=774]">
\r
1407 <relatedItem type="constituent">
\r
1408 <xsl:call-template name="relatedItem76X-78X"/>
\r
1411 <xsl:for-each select="marc:datafield[@tag=772]|marc:datafield[@tag=773]">
\r
1412 <relatedItem type="host">
\r
1413 <xsl:call-template name="relatedItem76X-78X"/>
\r
1416 <xsl:for-each select="marc:datafield[@tag=776]">
\r
1417 <relatedItem type="otherFormat">
\r
1418 <xsl:call-template name="relatedItem76X-78X"/>
\r
1421 <xsl:for-each select="marc:datafield[@tag=780]">
\r
1422 <relatedItem type="preceding">
\r
1423 <xsl:call-template name="relatedItem76X-78X"/>
\r
1426 <xsl:for-each select="marc:datafield[@tag=785]">
\r
1427 <relatedItem type="succeeding">
\r
1428 <xsl:call-template name="relatedItem76X-78X"/>
\r
1431 <xsl:for-each select="marc:datafield[@tag=786]">
\r
1432 <relatedItem type="original">
\r
1433 <xsl:call-template name="relatedItem76X-78X"/>
\r
1436 <xsl:for-each select="marc:datafield[@tag=800]">
\r
1437 <relatedItem type="series">
\r
1440 <xsl:call-template name="chopPunctuation">
\r
1441 <xsl:with-param name="chopString">
\r
1442 <xsl:call-template name="specialSubfieldSelect">
\r
1443 <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param>
\r
1444 <xsl:with-param name="axis">t</xsl:with-param>
\r
1445 <xsl:with-param name="afterCodes">g</xsl:with-param>
\r
1446 </xsl:call-template>
\r
1448 </xsl:call-template>
\r
1450 <xsl:call-template name="part"/>
\r
1452 <name type="personal">
\r
1454 <xsl:call-template name="chopPunctuation">
\r
1455 <xsl:with-param name="chopString">
\r
1456 <xsl:call-template name="specialSubfieldSelect">
\r
1457 <xsl:with-param name="anyCodes">aq</xsl:with-param>
\r
1458 <xsl:with-param name="axis">t</xsl:with-param>
\r
1459 <xsl:with-param name="beforeCodes">g</xsl:with-param>
\r
1460 </xsl:call-template>
\r
1462 </xsl:call-template>
\r
1464 <xsl:call-template name="termsOfAddress"/>
\r
1465 <xsl:call-template name="nameDate"/>
\r
1466 <xsl:call-template name="role"/>
\r
1468 <xsl:call-template name="relatedForm"/>
\r
1471 <xsl:for-each select="marc:datafield[@tag=810]">
\r
1472 <relatedItem type="series">
\r
1475 <xsl:call-template name="chopPunctuation">
\r
1476 <xsl:with-param name="chopString">
\r
1477 <xsl:call-template name="specialSubfieldSelect">
\r
1478 <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param>
\r
1479 <xsl:with-param name="axis">t</xsl:with-param>
\r
1480 <xsl:with-param name="afterCodes">dg</xsl:with-param>
\r
1481 </xsl:call-template>
\r
1483 </xsl:call-template>
\r
1485 <xsl:call-template name="relatedPartNumName"/>
\r
1487 <name type="corporate">
\r
1488 <xsl:for-each select="marc:subfield[@code='a']">
\r
1490 <xsl:value-of select="."/>
\r
1493 <xsl:for-each select="marc:subfield[@code='b']">
\r
1495 <xsl:value-of select="."/>
\r
1499 <xsl:call-template name="specialSubfieldSelect">
\r
1500 <xsl:with-param name="anyCodes">c</xsl:with-param>
\r
1501 <xsl:with-param name="axis">t</xsl:with-param>
\r
1502 <xsl:with-param name="beforeCodes">dgn</xsl:with-param>
\r
1503 </xsl:call-template>
\r
1505 <xsl:call-template name="role"/>
\r
1507 <xsl:call-template name="relatedForm"/>
\r
1510 <xsl:for-each select="marc:datafield[@tag=811]">
\r
1511 <relatedItem type="series">
\r
1514 <xsl:call-template name="chopPunctuation">
\r
1515 <xsl:with-param name="chopString">
\r
1516 <xsl:call-template name="specialSubfieldSelect">
\r
1517 <xsl:with-param name="anyCodes">tfklsv</xsl:with-param>
\r
1518 <xsl:with-param name="axis">t</xsl:with-param>
\r
1519 <xsl:with-param name="afterCodes">g</xsl:with-param>
\r
1520 </xsl:call-template>
\r
1522 </xsl:call-template>
\r
1524 <xsl:call-template name="relatedPartNumName"/>
\r
1526 <name type="conference">
\r
1528 <xsl:call-template name="specialSubfieldSelect">
\r
1529 <xsl:with-param name="anyCodes">aqdc</xsl:with-param>
\r
1530 <xsl:with-param name="axis">t</xsl:with-param>
\r
1531 <xsl:with-param name="beforeCodes">gn</xsl:with-param>
\r
1532 </xsl:call-template>
\r
1534 <xsl:call-template name="role"/>
\r
1536 <xsl:call-template name="relatedForm"/>
\r
1539 <xsl:for-each select="marc:datafield[@tag=830]">
\r
1540 <relatedItem type="series">
\r
1543 <xsl:call-template name="chopPunctuation">
\r
1544 <xsl:with-param name="chopString">
\r
1545 <xsl:call-template name="subfieldSelect">
\r
1546 <xsl:with-param name="codes">adfgklmorsv</xsl:with-param>
\r
1547 </xsl:call-template>
\r
1549 </xsl:call-template>
\r
1551 <xsl:call-template name="part"/>
\r
1553 <xsl:call-template name="relatedForm"/>
\r
1556 <xsl:for-each select="marc:datafield[@tag=856][@ind2=2]/marc:subfield[@code='q']">
\r
1558 <internetMediaType>
\r
1559 <xsl:value-of select="."/>
\r
1560 </internetMediaType>
\r
1563 <xsl:for-each select="marc:datafield[@tag=020]">
\r
1564 <identifier type="isbn">
\r
1565 <xsl:call-template name="isInvalid"/>
\r
1566 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1569 <xsl:for-each select="marc:datafield[@tag=024][@ind1=0]">
\r
1570 <identifier type="isrc">
\r
1571 <xsl:call-template name="isInvalid"/>
\r
1572 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1575 <xsl:for-each select="marc:datafield[@tag=024][@ind1=2]">
\r
1576 <identifier type="ismn">
\r
1577 <xsl:call-template name="isInvalid"/>
\r
1578 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1581 <xsl:for-each select="marc:datafield[@tag=022]">
\r
1582 <identifier type="issn">
\r
1583 <xsl:call-template name="isInvalid"/>
\r
1584 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1587 <xsl:for-each select="marc:datafield[@tag=010]">
\r
1588 <identifier type="lccn">
\r
1589 <xsl:call-template name="isInvalid"/>
\r
1590 <xsl:value-of select="normalize-space(marc:subfield[@code='a'])"/>
\r
1593 <xsl:for-each select="marc:datafield[@tag=028]">
\r
1595 <xsl:call-template name="isInvalid"/>
\r
1596 <xsl:attribute name="type"><xsl:choose><xsl:when test="@ind1=0">issue number</xsl:when><xsl:when test="@ind1=1">matrix number</xsl:when><xsl:when test="@ind1=2">music plate</xsl:when><xsl:when test="@ind1=3">music publisher</xsl:when><xsl:when test="@ind1=4">videorecording identifier</xsl:when></xsl:choose></xsl:attribute>
\r
1597 <xsl:call-template name="subfieldSelect">
\r
1598 <xsl:with-param name="codes">
\r
1600 <xsl:when test="@ind1=0">ba</xsl:when>
\r
1601 <xsl:otherwise>ab</xsl:otherwise>
\r
1604 </xsl:call-template>
\r
1607 <xsl:for-each select="marc:datafield[@tag=024][@ind1='4']">
\r
1608 <identifier type="sici">
\r
1609 <xsl:call-template name="isInvalid"/>
\r
1610 <xsl:call-template name="subfieldSelect">
\r
1611 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1612 </xsl:call-template>
\r
1615 <xsl:for-each select="marc:datafield[@tag=037]">
\r
1616 <identifier type="stock number">
\r
1617 <xsl:call-template name="isInvalid"/>
\r
1618 <xsl:call-template name="subfieldSelect">
\r
1619 <xsl:with-param name="codes">ab</xsl:with-param>
\r
1620 </xsl:call-template>
\r
1623 <xsl:for-each select="marc:datafield[@tag=856][marc:subfield[@code='u']]">
\r
1625 <xsl:attribute name="type"><xsl:choose><xsl:when test="starts-with(marc:subfield[@code='u'],'urn:doi') or starts-with(marc:subfield[@code='u'],'doi')">doi</xsl:when><xsl:when test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov')">hdl</xsl:when><xsl:otherwise>uri</xsl:otherwise></xsl:choose></xsl:attribute>
\r
1627 <xsl:when test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov') ">
\r
1628 <xsl:value-of select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))"/>
\r
1631 <xsl:value-of select="marc:subfield[@code='u']"/>
\r
1635 <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl')">
\r
1636 <identifier type="hdl">
\r
1637 <xsl:if test="marc:subfield[@code='y' or @code='3' or @code='z']">
\r
1638 <xsl:attribute name="displayLabel"><xsl:call-template name="subfieldSelect"><xsl:with-param name="codes">y3z</xsl:with-param></xsl:call-template></xsl:attribute>
\r
1640 <xsl:value-of select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))"/>
\r
1644 <xsl:for-each select="marc:datafield[@tag=024][@ind1=1]">
\r
1645 <identifier type="upc">
\r
1646 <xsl:call-template name="isInvalid"/>
\r
1647 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1650 <!-- 1/04 fix added $y -->
\r
1651 <xsl:for-each select="marc:datafield[@tag=856][marc:subfield[@code='u']]">
\r
1654 <xsl:if test="marc:subfield[@code='y' or @code='3']">
\r
1655 <xsl:attribute name="displayLabel"><xsl:call-template name="subfieldSelect"><xsl:with-param name="codes">y3</xsl:with-param></xsl:call-template></xsl:attribute>
\r
1657 <xsl:value-of select="marc:subfield[@code='u']"/>
\r
1661 <xsl:for-each select="marc:datafield[@tag=852]">
\r
1663 <physicalLocation>
\r
1664 <xsl:call-template name="displayLabel"/>
\r
1665 <xsl:call-template name="subfieldSelect">
\r
1666 <xsl:with-param name="codes">abje</xsl:with-param>
\r
1667 </xsl:call-template>
\r
1668 </physicalLocation>
\r
1671 <xsl:for-each select="marc:datafield[@tag=506]">
\r
1672 <accessCondition type="restrictionOnAccess">
\r
1673 <xsl:call-template name="subfieldSelect">
\r
1674 <xsl:with-param name="codes">abcd35</xsl:with-param>
\r
1675 </xsl:call-template>
\r
1676 </accessCondition>
\r
1678 <xsl:for-each select="marc:datafield[@tag=540]">
\r
1679 <accessCondition type="useAndReproduction">
\r
1680 <xsl:call-template name="subfieldSelect">
\r
1681 <xsl:with-param name="codes">abcde35</xsl:with-param>
\r
1682 </xsl:call-template>
\r
1683 </accessCondition>
\r
1686 <xsl:for-each select="marc:datafield[@tag=040]">
\r
1687 <recordContentSource authority="marcorg">
\r
1688 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
1689 </recordContentSource>
\r
1691 <xsl:for-each select="marc:controlfield[@tag=008]">
\r
1692 <recordCreationDate encoding="marc">
\r
1693 <xsl:value-of select="substring(.,1,6)"/>
\r
1694 </recordCreationDate>
\r
1696 <xsl:for-each select="marc:controlfield[@tag=005]">
\r
1697 <recordChangeDate encoding="iso8601">
\r
1698 <xsl:value-of select="."/>
\r
1699 </recordChangeDate>
\r
1701 <xsl:for-each select="marc:controlfield[@tag=001]">
\r
1702 <recordIdentifier>
\r
1703 <xsl:if test="../marc:controlfield[@tag=003]">
\r
1704 <xsl:attribute name="source"><xsl:value-of select="../marc:controlfield[@tag=003]"/></xsl:attribute>
\r
1706 <xsl:value-of select="."/>
\r
1707 </recordIdentifier>
\r
1709 <xsl:for-each select="marc:datafield[@tag=040]/marc:subfield[@code='b']">
\r
1710 <languageOfCataloging>
\r
1711 <languageTerm authority="iso639-2b" type="code">
\r
1712 <xsl:value-of select="."/>
\r
1714 </languageOfCataloging>
\r
1718 <xsl:template name="displayForm">
\r
1719 <xsl:for-each select="marc:subfield[@code='c']">
\r
1721 <xsl:value-of select="."/>
\r
1725 <xsl:template name="affiliation">
\r
1726 <xsl:for-each select="marc:subfield[@code='u']">
\r
1728 <xsl:value-of select="."/>
\r
1732 <xsl:template name="uri">
\r
1733 <xsl:for-each select="marc:subfield[@code='u']">
\r
1734 <xsl:attribute name="xlink:href"><xsl:value-of select="."/></xsl:attribute>
\r
1737 <xsl:template name="role">
\r
1738 <xsl:for-each select="marc:subfield[@code='e']">
\r
1740 <roleTerm type="text">
\r
1741 <xsl:value-of select="."/>
\r
1745 <xsl:for-each select="marc:subfield[@code='4']">
\r
1747 <roleTerm authority="marcrelator" type="code">
\r
1748 <xsl:value-of select="."/>
\r
1753 <xsl:template name="part">
\r
1754 <xsl:variable name="partNumber">
\r
1755 <xsl:call-template name="specialSubfieldSelect">
\r
1756 <xsl:with-param name="axis">n</xsl:with-param>
\r
1757 <xsl:with-param name="anyCodes">n</xsl:with-param>
\r
1758 <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param>
\r
1759 </xsl:call-template>
\r
1761 <xsl:variable name="partName">
\r
1762 <xsl:call-template name="specialSubfieldSelect">
\r
1763 <xsl:with-param name="axis">p</xsl:with-param>
\r
1764 <xsl:with-param name="anyCodes">p</xsl:with-param>
\r
1765 <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param>
\r
1766 </xsl:call-template>
\r
1768 <xsl:if test="string-length(normalize-space($partNumber))">
\r
1770 <xsl:call-template name="chopPunctuation">
\r
1771 <xsl:with-param name="chopString" select="$partNumber"/>
\r
1772 </xsl:call-template>
\r
1775 <xsl:if test="string-length(normalize-space($partName))">
\r
1777 <xsl:call-template name="chopPunctuation">
\r
1778 <xsl:with-param name="chopString" select="$partName"/>
\r
1779 </xsl:call-template>
\r
1783 <xsl:template name="relatedPart">
\r
1784 <xsl:if test="@tag=773">
\r
1785 <xsl:for-each select="marc:subfield[@code='g']">
\r
1788 <xsl:value-of select="."/>
\r
1792 <xsl:for-each select="marc:subfield[@code='q']">
\r
1794 <xsl:call-template name="parsePart"/>
\r
1799 <xsl:template name="relatedPartNumName">
\r
1800 <xsl:variable name="partNumber">
\r
1801 <xsl:call-template name="specialSubfieldSelect">
\r
1802 <xsl:with-param name="axis">g</xsl:with-param>
\r
1803 <xsl:with-param name="anyCodes">g</xsl:with-param>
\r
1804 <xsl:with-param name="afterCodes">pst</xsl:with-param>
\r
1805 </xsl:call-template>
\r
1807 <xsl:variable name="partName">
\r
1808 <xsl:call-template name="specialSubfieldSelect">
\r
1809 <xsl:with-param name="axis">p</xsl:with-param>
\r
1810 <xsl:with-param name="anyCodes">p</xsl:with-param>
\r
1811 <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param>
\r
1812 </xsl:call-template>
\r
1814 <xsl:if test="string-length(normalize-space($partNumber))">
\r
1816 <xsl:value-of select="$partNumber"/>
\r
1819 <xsl:if test="string-length(normalize-space($partName))">
\r
1821 <xsl:value-of select="$partName"/>
\r
1825 <xsl:template name="relatedName">
\r
1826 <xsl:for-each select="marc:subfield[@code='a']">
\r
1829 <xsl:value-of select="."/>
\r
1834 <xsl:template name="relatedForm">
\r
1835 <xsl:for-each select="marc:subfield[@code='h']">
\r
1836 <physicalDescription>
\r
1838 <xsl:value-of select="."/>
\r
1840 </physicalDescription>
\r
1843 <xsl:template name="relatedExtent">
\r
1844 <xsl:for-each select="marc:subfield[@code='h']">
\r
1845 <physicalDescription>
\r
1847 <xsl:value-of select="."/>
\r
1849 </physicalDescription>
\r
1852 <xsl:template name="relatedNote">
\r
1853 <xsl:for-each select="marc:subfield[@code='n']">
\r
1855 <xsl:value-of select="."/>
\r
1859 <xsl:template name="relatedSubject">
\r
1860 <xsl:for-each select="marc:subfield[@code='j']">
\r
1862 <temporal encoding="iso8601">
\r
1863 <xsl:call-template name="chopPunctuation">
\r
1864 <xsl:with-param name="chopString" select="."/>
\r
1865 </xsl:call-template>
\r
1870 <xsl:template name="relatedIdentifierISSN">
\r
1871 <xsl:for-each select="marc:subfield[@code='x']">
\r
1872 <identifier type="issn">
\r
1873 <xsl:value-of select="."/>
\r
1877 <xsl:template name="relatedIdentifierLocal">
\r
1878 <xsl:for-each select="marc:subfield[@code='w']">
\r
1879 <identifier type="local">
\r
1880 <xsl:value-of select="."/>
\r
1884 <xsl:template name="relatedIdentifier">
\r
1885 <xsl:for-each select="marc:subfield[@code='o']">
\r
1887 <xsl:value-of select="."/>
\r
1891 <xsl:template name="relatedItem76X-78X">
\r
1892 <xsl:call-template name="displayLabel"/>
\r
1893 <xsl:call-template name="relatedTitle76X-78X"/>
\r
1894 <xsl:call-template name="relatedName"/>
\r
1895 <xsl:call-template name="relatedOriginInfo"/>
\r
1896 <xsl:call-template name="relatedLanguage"/>
\r
1897 <xsl:call-template name="relatedExtent"/>
\r
1898 <xsl:call-template name="relatedNote"/>
\r
1899 <xsl:call-template name="relatedSubject"/>
\r
1900 <xsl:call-template name="relatedIdentifier"/>
\r
1901 <xsl:call-template name="relatedIdentifierISSN"/>
\r
1902 <xsl:call-template name="relatedIdentifierLocal"/>
\r
1903 <xsl:call-template name="relatedPart"/>
\r
1905 <xsl:template name="subjectGeographicZ">
\r
1907 <xsl:call-template name="chopPunctuation">
\r
1908 <xsl:with-param name="chopString" select="."/>
\r
1909 </xsl:call-template>
\r
1912 <xsl:template name="subjectTemporalY">
\r
1914 <xsl:call-template name="chopPunctuation">
\r
1915 <xsl:with-param name="chopString" select="."/>
\r
1916 </xsl:call-template>
\r
1919 <xsl:template name="subjectTopic">
\r
1921 <xsl:call-template name="chopPunctuation">
\r
1922 <xsl:with-param name="chopString" select="."/>
\r
1923 </xsl:call-template>
\r
1926 <xsl:template name="nameABCDN">
\r
1927 <xsl:for-each select="marc:subfield[@code='a']">
\r
1929 <xsl:call-template name="chopPunctuation">
\r
1930 <xsl:with-param name="chopString" select="."/>
\r
1931 </xsl:call-template>
\r
1934 <xsl:for-each select="marc:subfield[@code='b']">
\r
1936 <xsl:value-of select="."/>
\r
1939 <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']">
\r
1941 <xsl:call-template name="subfieldSelect">
\r
1942 <xsl:with-param name="codes">cdn</xsl:with-param>
\r
1943 </xsl:call-template>
\r
1947 <xsl:template name="nameABCDQ">
\r
1949 <xsl:call-template name="chopPunctuation">
\r
1950 <xsl:with-param name="chopString">
\r
1951 <xsl:call-template name="subfieldSelect">
\r
1952 <xsl:with-param name="codes">aq</xsl:with-param>
\r
1953 </xsl:call-template>
\r
1955 <xsl:with-param name="punctuation">
\r
1956 <xsl:text>:,;/ </xsl:text>
\r
1958 </xsl:call-template>
\r
1960 <xsl:call-template name="termsOfAddress"/>
\r
1961 <xsl:call-template name="nameDate"/>
\r
1963 <xsl:template name="nameACDEQ">
\r
1965 <xsl:call-template name="subfieldSelect">
\r
1966 <xsl:with-param name="codes">acdeq</xsl:with-param>
\r
1967 </xsl:call-template>
\r
1970 <xsl:template name="constituentOrRelatedType">
\r
1971 <xsl:if test="@ind2=2">
\r
1972 <xsl:attribute name="type">constituent</xsl:attribute>
\r
1975 <xsl:template name="relatedTitle">
\r
1976 <xsl:for-each select="marc:subfield[@code='t']">
\r
1979 <xsl:call-template name="chopPunctuation">
\r
1980 <xsl:with-param name="chopString">
\r
1981 <xsl:value-of select="."/>
\r
1983 </xsl:call-template>
\r
1988 <xsl:template name="relatedTitle76X-78X">
\r
1989 <xsl:for-each select="marc:subfield[@code='t']">
\r
1992 <xsl:call-template name="chopPunctuation">
\r
1993 <xsl:with-param name="chopString">
\r
1994 <xsl:value-of select="."/>
\r
1996 </xsl:call-template>
\r
1998 <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']">
\r
1999 <xsl:call-template name="relatedPartNumName"/>
\r
2003 <xsl:for-each select="marc:subfield[@code='p']">
\r
2004 <titleInfo type="abbreviated">
\r
2006 <xsl:call-template name="chopPunctuation">
\r
2007 <xsl:with-param name="chopString">
\r
2008 <xsl:value-of select="."/>
\r
2010 </xsl:call-template>
\r
2012 <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']">
\r
2013 <xsl:call-template name="relatedPartNumName"/>
\r
2017 <xsl:for-each select="marc:subfield[@code='s']">
\r
2018 <titleInfo type="uniform">
\r
2020 <xsl:call-template name="chopPunctuation">
\r
2021 <xsl:with-param name="chopString">
\r
2022 <xsl:value-of select="."/>
\r
2024 </xsl:call-template>
\r
2026 <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']">
\r
2027 <xsl:call-template name="relatedPartNumName"/>
\r
2032 <xsl:template name="relatedOriginInfo">
\r
2033 <xsl:if test="marc:subfield[@code='b' or @code='d'] or marc:subfield[@code='f']">
\r
2035 <xsl:if test="@tag=775">
\r
2036 <xsl:for-each select="marc:subfield[@code='f']">
\r
2039 <xsl:attribute name="type">code</xsl:attribute>
\r
2040 <xsl:attribute name="authority">marcgac</xsl:attribute>
\r
2041 <xsl:value-of select="."/>
\r
2046 <xsl:for-each select="marc:subfield[@code='d']">
\r
2048 <xsl:value-of select="."/>
\r
2051 <xsl:for-each select="marc:subfield[@code='b']">
\r
2053 <xsl:value-of select="."/>
\r
2059 <xsl:template name="relatedLanguage">
\r
2060 <xsl:for-each select="marc:subfield[@code='e']">
\r
2061 <xsl:call-template name="getLanguage">
\r
2062 <xsl:with-param name="langString">
\r
2063 <xsl:value-of select="."/>
\r
2065 </xsl:call-template>
\r
2068 <xsl:template name="nameDate">
\r
2069 <xsl:for-each select="marc:subfield[@code='d']">
\r
2070 <namePart type="date">
\r
2071 <xsl:call-template name="chopPunctuation">
\r
2072 <xsl:with-param name="chopString" select="."/>
\r
2073 </xsl:call-template>
\r
2077 <xsl:template name="subjectAuthority">
\r
2078 <xsl:if test="@ind2!=4">
\r
2079 <xsl:if test="@ind2!=' '">
\r
2080 <xsl:if test="@ind2!=8">
\r
2081 <xsl:if test="@ind2!=9">
\r
2082 <xsl:attribute name="authority"><xsl:choose><xsl:when test="@ind2=0">lcsh</xsl:when><xsl:when test="@ind2=1">lcshac</xsl:when><xsl:when test="@ind2=2">mesh</xsl:when><!-- 1/04 fix --><xsl:when test="@ind2=3">nal</xsl:when><xsl:when test="@ind2=5">csh</xsl:when><xsl:when test="@ind2=6">rvm</xsl:when><xsl:when test="@ind2=7"><xsl:value-of select="marc:subfield[@code='2']"/></xsl:when></xsl:choose></xsl:attribute>
\r
2088 <xsl:template name="subjectAnyOrder">
\r
2089 <xsl:for-each select="marc:subfield[@code='v' or @code='x' or @code='y' or @code='z']">
\r
2091 <xsl:when test="@code='v'">
\r
2092 <xsl:call-template name="subjectTopic"/>
\r
2094 <xsl:when test="@code='x'">
\r
2095 <xsl:call-template name="subjectTopic"/>
\r
2097 <xsl:when test="@code='y'">
\r
2098 <xsl:call-template name="subjectTemporalY"/>
\r
2100 <xsl:when test="@code='z'">
\r
2101 <xsl:call-template name="subjectGeographicZ"/>
\r
2106 <xsl:template name="specialSubfieldSelect">
\r
2107 <xsl:param name="anyCodes"/>
\r
2108 <xsl:param name="axis"/>
\r
2109 <xsl:param name="beforeCodes"/>
\r
2110 <xsl:param name="afterCodes"/>
\r
2111 <xsl:variable name="str">
\r
2112 <xsl:for-each select="marc:subfield">
\r
2113 <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
2114 <xsl:value-of select="text()"/>
\r
2115 <xsl:text> </xsl:text>
\r
2119 <xsl:value-of select="substring($str,1,string-length($str)-1)"/>
\r
2121 <xsl:template match="marc:datafield[@tag=600]">
\r
2123 <xsl:call-template name="subjectAuthority"/>
\r
2124 <name type="personal">
\r
2125 <xsl:call-template name="termsOfAddress"/>
\r
2127 <xsl:call-template name="chopPunctuation">
\r
2128 <xsl:with-param name="chopString">
\r
2129 <xsl:call-template name="subfieldSelect">
\r
2130 <xsl:with-param name="codes">aq</xsl:with-param>
\r
2131 </xsl:call-template>
\r
2133 </xsl:call-template>
\r
2135 <xsl:call-template name="nameDate"/>
\r
2136 <xsl:call-template name="affiliation"/>
\r
2137 <xsl:call-template name="role"/>
\r
2139 <xsl:call-template name="subjectAnyOrder"/>
\r
2142 <xsl:template match="marc:datafield[@tag=610]">
\r
2144 <xsl:call-template name="subjectAuthority"/>
\r
2145 <name type="corporate">
\r
2146 <xsl:for-each select="marc:subfield[@code='a']">
\r
2148 <xsl:value-of select="."/>
\r
2151 <xsl:for-each select="marc:subfield[@code='b']">
\r
2153 <xsl:value-of select="."/>
\r
2156 <xsl:if test="marc:subfield[@code='c' or @code='d' or @code='n' or @code='p']">
\r
2158 <xsl:call-template name="subfieldSelect">
\r
2159 <xsl:with-param name="codes">cdnp</xsl:with-param>
\r
2160 </xsl:call-template>
\r
2163 <xsl:call-template name="role"/>
\r
2165 <xsl:call-template name="subjectAnyOrder"/>
\r
2168 <xsl:template match="marc:datafield[@tag=611]">
\r
2170 <xsl:call-template name="subjectAuthority"/>
\r
2171 <name type="conference">
\r
2173 <xsl:call-template name="subfieldSelect">
\r
2174 <xsl:with-param name="codes">abcdeqnp</xsl:with-param>
\r
2175 </xsl:call-template>
\r
2177 <xsl:for-each select="marc:subfield[@code='4']">
\r
2179 <roleTerm authority="marcrelator" type="code">
\r
2180 <xsl:value-of select="."/>
\r
2185 <xsl:call-template name="subjectAnyOrder"/>
\r
2188 <xsl:template match="marc:datafield[@tag=630]">
\r
2190 <xsl:call-template name="subjectAuthority"/>
\r
2193 <xsl:call-template name="chopPunctuation">
\r
2194 <xsl:with-param name="chopString">
\r
2195 <xsl:call-template name="subfieldSelect">
\r
2196 <xsl:with-param name="codes">adfhklor</xsl:with-param>
\r
2197 </xsl:call-template>
\r
2199 </xsl:call-template>
\r
2200 <xsl:call-template name="part"/>
\r
2203 <xsl:call-template name="subjectAnyOrder"/>
\r
2206 <xsl:template match="marc:datafield[@tag=650]">
\r
2208 <xsl:call-template name="subjectAuthority"/>
\r
2210 <xsl:call-template name="chopPunctuation">
\r
2211 <xsl:with-param name="chopString">
\r
2212 <xsl:call-template name="subfieldSelect">
\r
2213 <xsl:with-param name="codes">abcd</xsl:with-param>
\r
2214 </xsl:call-template>
\r
2216 </xsl:call-template>
\r
2218 <xsl:call-template name="subjectAnyOrder"/>
\r
2221 <xsl:template match="marc:datafield[@tag=651]">
\r
2223 <xsl:call-template name="subjectAuthority"/>
\r
2224 <xsl:for-each select="marc:subfield[@code='a']">
\r
2226 <xsl:call-template name="chopPunctuation">
\r
2227 <xsl:with-param name="chopString" select="."/>
\r
2228 </xsl:call-template>
\r
2231 <xsl:call-template name="subjectAnyOrder"/>
\r
2234 <xsl:template match="marc:datafield[@tag=653]">
\r
2236 <xsl:for-each select="marc:subfield[@code='a']">
\r
2238 <xsl:value-of select="."/>
\r
2243 <xsl:template match="marc:datafield[@tag=656]">
\r
2245 <xsl:if test="marc:subfield[@code=2]">
\r
2246 <xsl:attribute name="authority"><xsl:value-of select="marc:subfield[@code=2]"/></xsl:attribute>
\r
2249 <xsl:call-template name="chopPunctuation">
\r
2250 <xsl:with-param name="chopString">
\r
2251 <xsl:value-of select="marc:subfield[@code='a']"/>
\r
2253 </xsl:call-template>
\r
2257 <xsl:template name="termsOfAddress">
\r
2258 <xsl:if test="marc:subfield[@code='b' or @code='c']">
\r
2259 <namePart type="termsOfAddress">
\r
2260 <xsl:call-template name="chopPunctuation">
\r
2261 <xsl:with-param name="chopString">
\r
2262 <xsl:call-template name="subfieldSelect">
\r
2263 <xsl:with-param name="codes">bc</xsl:with-param>
\r
2264 </xsl:call-template>
\r
2266 </xsl:call-template>
\r
2270 <xsl:template name="displayLabel">
\r
2271 <xsl:if test="marc:subfield[@code='i']">
\r
2272 <xsl:attribute name="displayLabel"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute>
\r
2274 <xsl:if test="marc:subfield[@code='3']">
\r
2275 <xsl:attribute name="displayLabel"><xsl:value-of select="marc:subfield[@code='3']"/></xsl:attribute>
\r
2278 <xsl:template name="isInvalid">
\r
2279 <xsl:if test="marc:subfield[@code='z']">
\r
2280 <xsl:attribute name="invalid">yes</xsl:attribute>
\r
2283 <xsl:template name="subtitle">
\r
2284 <xsl:if test="marc:subfield[@code='b']">
\r
2286 <xsl:call-template name="chopPunctuation">
\r
2287 <xsl:with-param name="chopString">
\r
2288 <xsl:value-of select="marc:subfield[@code='b']"/>
\r
2289 <!--<xsl:call-template name="subfieldSelect">
\r
2290 <xsl:with-param name="codes">b</xsl:with-param>
\r
2291 </xsl:call-template>-->
\r
2293 </xsl:call-template>
\r
2297 <xsl:template name="script">
\r
2298 <xsl:param name="scriptCode"/>
\r
2299 <xsl:attribute name="script"><xsl:choose><xsl:when test="$scriptCode='(3'">Arabic</xsl:when><xsl:when test="$scriptCode='(B'">Latin</xsl:when><xsl:when test="$scriptCode='$1'">Chinese, Japanese, Korean</xsl:when><xsl:when test="$scriptCode='(N'">Cyrillic</xsl:when><xsl:when test="$scriptCode='(2'">Hebrew</xsl:when><xsl:when test="$scriptCode='(S'">Greek</xsl:when></xsl:choose></xsl:attribute>
\r
2301 <xsl:template name="parsePart">
\r
2302 <!-- assumes 773$q= 1:2:3<4
\r
2303 with up to 3 levels and one optional start page
\r
2305 <xsl:variable name="level1">
\r
2307 <xsl:when test="contains(text(),':')">
\r
2309 <xsl:value-of select="substring-before(text(),':')"/>
\r
2311 <xsl:when test="not(contains(text(),':'))">
\r
2313 <xsl:if test="contains(text(),'<')">
\r
2315 <xsl:value-of select="substring-before(text(),'<')"/>
\r
2317 <xsl:if test="not(contains(text(),'<'))">
\r
2319 <xsl:value-of select="text()"/>
\r
2324 <xsl:variable name="sici2">
\r
2326 <xsl:when test="starts-with(substring-after(text(),$level1),':')">
\r
2327 <xsl:value-of select="substring(substring-after(text(),$level1),2)"/>
\r
2330 <xsl:value-of select="substring-after(text(),$level1)"/>
\r
2334 <xsl:variable name="level2">
\r
2336 <xsl:when test="contains($sici2,':')">
\r
2338 <xsl:value-of select="substring-before($sici2,':')"/>
\r
2340 <xsl:when test="contains($sici2,'<')">
\r
2342 <xsl:value-of select="substring-before($sici2,'<')"/>
\r
2345 <xsl:value-of select="$sici2"/>
\r
2350 <xsl:variable name="sici3">
\r
2352 <xsl:when test="starts-with(substring-after($sici2,$level2),':')">
\r
2353 <xsl:value-of select="substring(substring-after($sici2,$level2),2)"/>
\r
2356 <xsl:value-of select="substring-after($sici2,$level2)"/>
\r
2360 <xsl:variable name="level3">
\r
2362 <xsl:when test="contains($sici3,'<')">
\r
2364 <xsl:value-of select="substring-before($sici3,'<')"/>
\r
2367 <xsl:value-of select="$sici3"/>
\r
2372 <xsl:variable name="page">
\r
2373 <xsl:if test="contains(text(),'<')">
\r
2374 <xsl:value-of select="substring-after(text(),'<')"/>
\r
2377 <xsl:if test="$level1">
\r
2378 <detail level="1">
\r
2380 <xsl:value-of select="$level1"/>
\r
2384 <xsl:if test="$level2">
\r
2385 <detail level="2">
\r
2387 <xsl:value-of select="$level2"/>
\r
2391 <xsl:if test="$level3">
\r
2392 <detail level="3">
\r
2394 <xsl:value-of select="$level3"/>
\r
2398 <xsl:if test="$page">
\r
2399 <extent unit="page">
\r
2401 <xsl:value-of select="$page"/>
\r
2406 <xsl:template name="getLanguage">
\r
2407 <xsl:param name="langString"/>
\r
2408 <xsl:param name="controlField008-35-37"/>
\r
2409 <xsl:variable name="length" select="string-length($langString)"/>
\r
2411 <xsl:when test="$length=0"/>
\r
2412 <xsl:when test="$controlField008-35-37=substring($langString,1,3)">
\r
2413 <xsl:call-template name="getLanguage">
\r
2414 <xsl:with-param name="langString" select="substring($langString,4,$length)"/>
\r
2415 <xsl:with-param name="controlField008-35-37" select="$controlField008-35-37"/>
\r
2416 </xsl:call-template>
\r
2420 <languageTerm authority="iso639-2b" type="code">
\r
2421 <xsl:value-of select="substring($langString,1,3)"/>
\r
2424 <xsl:call-template name="getLanguage">
\r
2425 <xsl:with-param name="langString" select="substring($langString,4,$length)"/>
\r
2426 <xsl:with-param name="controlField008-35-37" select="$controlField008-35-37"/>
\r
2427 </xsl:call-template>
\r
2431 <xsl:template name="isoLanguage">
\r
2432 <xsl:param name="currentLanguage"/>
\r
2433 <xsl:param name="usedLanguages"/>
\r
2434 <xsl:param name="remainingLanguages"/>
\r
2436 <xsl:when test="string-length($currentLanguage)=0"/>
\r
2437 <xsl:when test="not(contains($usedLanguages, $currentLanguage))">
\r
2439 <xsl:if test="@code!='a'">
\r
2440 <xsl:attribute name="objectPart"><xsl:choose><xsl:when test="@code='b'">summary or subtitle</xsl:when><xsl:when test="@code='d'">sung or spoken text</xsl:when><xsl:when test="@code='e'">libretto</xsl:when><xsl:when test="@code='f'">table of contents</xsl:when><xsl:when test="@code='g'">accompanying material</xsl:when><xsl:when test="@code='h'">translation</xsl:when></xsl:choose></xsl:attribute>
\r
2442 <languageTerm authority="iso639-2b" type="code">
\r
2443 <xsl:value-of select="$currentLanguage"/>
\r
2446 <xsl:call-template name="isoLanguage">
\r
2447 <xsl:with-param name="currentLanguage">
\r
2448 <xsl:value-of select="substring($remainingLanguages,1,3)"/>
\r
2450 <xsl:with-param name="usedLanguages">
\r
2451 <xsl:value-of select="concat($usedLanguages,$currentLanguage)"/>
\r
2453 <xsl:with-param name="remainingLanguages">
\r
2454 <xsl:value-of select="substring($remainingLanguages,4,string-length($remainingLanguages))"/>
\r
2456 </xsl:call-template>
\r
2459 <xsl:call-template name="isoLanguage">
\r
2460 <xsl:with-param name="currentLanguage">
\r
2461 <xsl:value-of select="substring($remainingLanguages,1,3)"/>
\r
2463 <xsl:with-param name="usedLanguages">
\r
2464 <xsl:value-of select="concat($usedLanguages,$currentLanguage)"/>
\r
2466 <xsl:with-param name="remainingLanguages">
\r
2467 <xsl:value-of select="substring($remainingLanguages,4,string-length($remainingLanguages))"/>
\r
2469 </xsl:call-template>
\r
2473 <xsl:template name="chopBrackets">
\r
2474 <xsl:param name="chopString"/>
\r
2475 <xsl:variable name="string">
\r
2476 <xsl:call-template name="chopPunctuation">
\r
2477 <xsl:with-param name="chopString" select="$chopString"/>
\r
2478 </xsl:call-template>
\r
2480 <xsl:if test="substring($string, 1,1)='['">
\r
2481 <xsl:value-of select="substring($string,2, string-length($string)-2)"/>
\r
2483 <xsl:if test="substring($string, 1,1)!='['">
\r
2484 <xsl:value-of select="$string"/>
\r
2487 <xsl:template name="rfcLanguages">
\r
2488 <xsl:param name="nodeNum"/>
\r
2489 <xsl:param name="usedLanguages"/>
\r
2490 <xsl:param name="controlField008-35-37"/>
\r
2491 <xsl:variable name="currentLanguage" select="."/>
\r
2493 <xsl:when test="not($currentLanguage)"/>
\r
2494 <xsl:when test="$currentLanguage!=$controlField008-35-37 and $currentLanguage!='rfc3066'">
\r
2495 <xsl:if test="not(contains($usedLanguages,$currentLanguage))">
\r
2497 <xsl:if test="@code!='a'">
\r
2498 <xsl:attribute name="objectPart"><xsl:choose><xsl:when test="@code='b'">summary or subtitle</xsl:when><xsl:when test="@code='d'">sung or spoken text</xsl:when><xsl:when test="@code='e'">libretto</xsl:when><xsl:when test="@code='f'">table of contents</xsl:when><xsl:when test="@code='g'">accompanying material</xsl:when><xsl:when test="@code='h'">translation</xsl:when></xsl:choose></xsl:attribute>
\r
2500 <languageTerm authority="rfc3066" type="code">
\r
2501 <xsl:value-of select="$currentLanguage"/>
\r
2513 <!-- Stylus Studio meta-information - (c) 2004-2005. Progress Software Corporation. All rights reserved.
\r
2515 <scenarios ><scenario default="no" name="Apr 02 Test" userelativepaths="yes" externalpreview="no" url="file:///n:/jackie/test_files/v3.xml" htmlbaseurl="" outputurl="file:///n:/temp/x.xml" processortype="xalan" useresolver="no" profilemode="0" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal" customvalidator=""/><scenario default="no" name="v3Test1" userelativepaths="yes" externalpreview="no" url="file:///n:/jackie/test_files/v3.xml" htmlbaseurl="" outputurl="file:///n:/jackie/test_files/modsv3Converted.xml" processortype="internal" useresolver="no" profilemode="0" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal" customvalidator=""/><scenario default="no" name="Scenario1" userelativepaths="yes" externalpreview="no" url="file:///n:/ckeith/DESKTOP/test.xml" htmlbaseurl="" outputurl="" processortype="xalan" useresolver="no" profilemode="0" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal" customvalidator=""/><scenario default="no" name="Test" userelativepaths="yes" externalpreview="no" url="file:///n:/jackie/MARCXML/marcxmlfile.xml" htmlbaseurl="" outputurl="" processortype="xalan" useresolver="no" profilemode="0" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal" customvalidator=""/><scenario default="yes" name="z3950 package test" userelativepaths="yes" externalpreview="no" url="d.xml" htmlbaseurl="" outputurl="" processortype="xalan" useresolver="no" profilemode="0" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" validateoutput="no" validator="internal" customvalidator=""/></scenarios><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition><TemplateContext></TemplateContext><MapperFilter side="source"></MapperFilter></MapperMetaTag>
\r
2516 </metaInformation>
\r
2517 --><!-- Stylus Studio meta-information - (c)1998-2003 Copyright Sonic Software Corporation. All rights reserved.
\r
2519 <scenarios/><MapperInfo srcSchemaPath="" srcSchemaRoot="" srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/>
\r
2520 </metaInformation>
\r