Line 0
Link Here
|
0 |
- |
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
|
2 |
<xsl:stylesheet version="1.0" xmlns:mads="http://www.loc.gov/mads/v2" |
3 |
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:marc="http://www.loc.gov/MARC21/slim" |
4 |
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="marc"> |
5 |
|
6 |
<xsl:include href="http://www.loc.gov/marcxml/xslt/MARC21slimUtils.xsl"/> |
7 |
<xsl:output method="xml" indent="yes" encoding="UTF-8"/> |
8 |
<xsl:strip-space elements="*"/> |
9 |
|
10 |
<!-- |
11 |
2.10 fixed type=other and type=otherType for mads:related tmee 09/16/2011 |
12 |
2.09 fixed professionTerm and genreTerm empty tag error tmee 09/16/2011 |
13 |
2.08 fixed marc:subfield @code='i' matching error tmee 09/16/2011 |
14 |
2.07 fixed 555 duplication error tmee 08/10/2011 |
15 |
2.06 fixed topic subfield error tmee 08/10/2011 |
16 |
2.05 fixed title subfield error tmee 06/20/2011 |
17 |
2.04 fixed geographicSubdivision mapping for authority element tmee 06/16/2011 |
18 |
2.03 added classification for 053, 055, 060, 065, 070, 080, 082, 083, 086, 087 tmee 06/03/2011 |
19 |
2.02 added descriptionStandard for 008/10 tmee 04/27/2011 |
20 |
2.01 added extensions for 046, 336, 370, 374, 375, 376 tmee 04/08/2011 |
21 |
2.00 redefined imported MODS elements in version 1.0 to MADS elements in version 2.0 tmee 02/08/2011 |
22 |
1.08 added 372 subfields $a $s $t for <fieldOfActivity> tmee 06/24/2010 |
23 |
1.07 removed role/roleTerm 100, 110, 111, 400, 410, 411, 500, 510, 511, 700, 710, 711 tmee 06/24/2010 |
24 |
1.06 added strip-space tmee 06/24/2010 |
25 |
1.05 added subfield $a for 130, 430, 530 tmee 06/21/2010 |
26 |
1.04 fixed 550 z omission ntra 08/11/2008 |
27 |
1.03 removed duplication of 550 $a text tmee 11/01/2006 |
28 |
1.02 fixed namespace references between mads and mods ntra 10/06/2006 |
29 |
1.01 revised rgue/jrad 11/29/05 |
30 |
1.00 adapted from MARC21Slim2MODS3.xsl ntra 07/06/05 |
31 |
--> |
32 |
|
33 |
<!-- authority attribute defaults to 'naf' if not set using this authority parameter, for <authority> descriptors: name, titleInfo, geographic --> |
34 |
<xsl:param name="authority"/> |
35 |
<xsl:variable name="auth"> |
36 |
<xsl:choose> |
37 |
<xsl:when test="$authority"> |
38 |
<xsl:value-of select="$authority"/> |
39 |
</xsl:when> |
40 |
<xsl:otherwise>naf</xsl:otherwise> |
41 |
</xsl:choose> |
42 |
</xsl:variable> |
43 |
<xsl:variable name="controlField008" select="marc:controlfield[@tag='008']"/> |
44 |
<xsl:variable name="controlField008-06" |
45 |
select="substring(descendant-or-self::marc:controlfield[@tag=008],7,1)"/> |
46 |
<xsl:variable name="controlField008-11" |
47 |
select="substring(descendant-or-self::marc:controlfield[@tag=008],12,1)"/> |
48 |
<xsl:variable name="controlField008-14" |
49 |
select="substring(descendant-or-self::marc:controlfield[@tag=008],15,1)"/> |
50 |
<xsl:template match="/"> |
51 |
<xsl:choose> |
52 |
<xsl:when test="descendant-or-self::marc:collection"> |
53 |
<mads:madsCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
54 |
xsi:schemaLocation="http://www.loc.gov/mads/v2 http://www.loc.gov/standards/mads/v2/mads-2-0.xsd"> |
55 |
<xsl:for-each select="descendant-or-self::marc:collection/marc:record"> |
56 |
<mads:mads version="2.0"> |
57 |
<xsl:call-template name="marcRecord"/> |
58 |
</mads:mads> |
59 |
</xsl:for-each> |
60 |
</mads:madsCollection> |
61 |
</xsl:when> |
62 |
<xsl:otherwise> |
63 |
<mads:mads version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
64 |
xsi:schemaLocation="http://www.loc.gov/mads/v2 http://www.loc.gov/standards/mads/mads-2-0.xsd"> |
65 |
<xsl:for-each select="descendant-or-self::marc:record"> |
66 |
<xsl:call-template name="marcRecord"/> |
67 |
</xsl:for-each> |
68 |
</mads:mads> |
69 |
</xsl:otherwise> |
70 |
</xsl:choose> |
71 |
</xsl:template> |
72 |
|
73 |
<xsl:template name="marcRecord"> |
74 |
<mads:authority> |
75 |
<!-- 2.04 --> |
76 |
<xsl:choose> |
77 |
<xsl:when test="$controlField008-06='d'"> |
78 |
<xsl:attribute name="geographicSubdivision"> |
79 |
<xsl:text>direct</xsl:text> |
80 |
</xsl:attribute> |
81 |
</xsl:when> |
82 |
<xsl:when test="$controlField008-06='i'"> |
83 |
<xsl:attribute name="geographicSubdivision"> |
84 |
<xsl:text>indirect</xsl:text> |
85 |
</xsl:attribute> |
86 |
</xsl:when> |
87 |
<xsl:when test="$controlField008-06='n'"> |
88 |
<xsl:attribute name="geographicSubdivision"> |
89 |
<xsl:text>not applicable</xsl:text> |
90 |
</xsl:attribute> |
91 |
</xsl:when> |
92 |
</xsl:choose> |
93 |
|
94 |
<xsl:apply-templates select="marc:datafield[100 <= @tag and @tag < 200]"/> |
95 |
</mads:authority> |
96 |
|
97 |
<!-- related --> |
98 |
<xsl:apply-templates |
99 |
select="marc:datafield[500 <= @tag and @tag <= 585]|marc:datafield[700 <= @tag and @tag <= 785]"/> |
100 |
|
101 |
<!-- variant --> |
102 |
<xsl:apply-templates select="marc:datafield[400 <= @tag and @tag <= 485]"/> |
103 |
|
104 |
<!-- notes --> |
105 |
<xsl:apply-templates select="marc:datafield[667 <= @tag and @tag <= 688]"/> |
106 |
|
107 |
<!-- url --> |
108 |
<xsl:apply-templates select="marc:datafield[@tag=856]"/> |
109 |
<xsl:apply-templates select="marc:datafield[@tag=010]"/> |
110 |
<xsl:apply-templates select="marc:datafield[@tag=024]"/> |
111 |
<xsl:apply-templates select="marc:datafield[@tag=372]"/> |
112 |
|
113 |
<!-- classification --> |
114 |
<xsl:apply-templates select="marc:datafield[@tag=053]"/> |
115 |
<xsl:apply-templates select="marc:datafield[@tag=055]"/> |
116 |
<xsl:apply-templates select="marc:datafield[@tag=060]"/> |
117 |
<xsl:apply-templates select="marc:datafield[@tag=065]"/> |
118 |
<xsl:apply-templates select="marc:datafield[@tag=070]"/> |
119 |
<xsl:apply-templates select="marc:datafield[@tag=080]"/> |
120 |
<xsl:apply-templates select="marc:datafield[@tag=082]"/> |
121 |
<xsl:apply-templates select="marc:datafield[@tag=083]"/> |
122 |
<xsl:apply-templates select="marc:datafield[@tag=086]"/> |
123 |
<xsl:apply-templates select="marc:datafield[@tag=087]"/> |
124 |
|
125 |
<!-- affiliation--> |
126 |
|
127 |
<xsl:for-each select="marc:datafield[@tag=373]"> |
128 |
<mads:affiliation> |
129 |
<mads:position> |
130 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
131 |
</mads:position> |
132 |
<mads:dateValid point="start"> |
133 |
<xsl:value-of select="marc:subfield[@code='s']"/> |
134 |
</mads:dateValid> |
135 |
<mads:dateValid point="end"> |
136 |
<xsl:value-of select="marc:subfield[@code='t']"/> |
137 |
</mads:dateValid> |
138 |
</mads:affiliation> |
139 |
</xsl:for-each> |
140 |
<xsl:for-each select="marc:datafield[@tag=371]"> |
141 |
<mads:affiliation> |
142 |
<mads:address> |
143 |
<mads:street> |
144 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
145 |
</mads:street> |
146 |
<mads:city> |
147 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
148 |
</mads:city> |
149 |
<mads:state> |
150 |
<xsl:value-of select="marc:subfield[@code='c']"/> |
151 |
</mads:state> |
152 |
<mads:country> |
153 |
<xsl:value-of select="marc:subfield[@code='d']"/> |
154 |
</mads:country> |
155 |
<mads:postcode> |
156 |
<xsl:value-of select="marc:subfield[@code='e']"/> |
157 |
</mads:postcode> |
158 |
</mads:address> |
159 |
<mads:email> |
160 |
<xsl:value-of select="marc:subfield[@code='m']"/> |
161 |
</mads:email> |
162 |
</mads:affiliation> |
163 |
</xsl:for-each> |
164 |
|
165 |
<!-- extension--> |
166 |
<xsl:for-each select="marc:datafield[@tag=336]"> |
167 |
<mads:extension> |
168 |
<mads:contentType> |
169 |
<mads:contentType type="text"> |
170 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
171 |
</mads:contentType> |
172 |
<mads:contentType type="code"> |
173 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
174 |
</mads:contentType> |
175 |
</mads:contentType> |
176 |
</mads:extension> |
177 |
</xsl:for-each> |
178 |
|
179 |
<xsl:for-each select="marc:datafield[@tag=374]"> |
180 |
<mads:extension> |
181 |
<mads:profession> |
182 |
<xsl:choose> |
183 |
<xsl:when test="marc:subfield[@code='a']"> |
184 |
<mads:professionTerm> |
185 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
186 |
</mads:professionTerm> |
187 |
</xsl:when> |
188 |
<xsl:when test="marc:subfield[@code='s']"> |
189 |
<mads:dateValid point="start"> |
190 |
<xsl:value-of select="marc:subfield[@code='s']"/> |
191 |
</mads:dateValid> |
192 |
</xsl:when> |
193 |
<xsl:when test="marc:subfield[@code='t']"> |
194 |
<mads:dateValid point="end"> |
195 |
<xsl:value-of select="marc:subfield[@code='t']"/> |
196 |
</mads:dateValid> |
197 |
</xsl:when> |
198 |
</xsl:choose> |
199 |
</mads:profession> |
200 |
</mads:extension> |
201 |
</xsl:for-each> |
202 |
|
203 |
<xsl:for-each select="marc:datafield[@tag=375]"> |
204 |
<mads:extension> |
205 |
<mads:gender> |
206 |
<xsl:choose> |
207 |
<xsl:when test="marc:subfield[@code='a']"> |
208 |
<mads:genderTerm> |
209 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
210 |
</mads:genderTerm> |
211 |
</xsl:when> |
212 |
<xsl:when test="marc:subfield[@code='s']"> |
213 |
<mads:dateValid point="start"> |
214 |
<xsl:value-of select="marc:subfield[@code='s']"/> |
215 |
</mads:dateValid> |
216 |
</xsl:when> |
217 |
<xsl:when test="marc:subfield[@code='t']"> |
218 |
<mads:dateValid point="end"> |
219 |
<xsl:value-of select="marc:subfield[@code='t']"/> |
220 |
</mads:dateValid> |
221 |
</xsl:when> |
222 |
</xsl:choose> |
223 |
</mads:gender> |
224 |
</mads:extension> |
225 |
</xsl:for-each> |
226 |
|
227 |
<xsl:for-each select="marc:datafield[@tag=376]"> |
228 |
<mads:extension> |
229 |
<mads:familyInformation> |
230 |
<mads:typeOfFamily> |
231 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
232 |
</mads:typeOfFamily> |
233 |
<mads:nameOfProminentMember> |
234 |
<xsl:value-of select="marc:subfield[@code='b']"/> |
235 |
</mads:nameOfProminentMember> |
236 |
<mads:hereditaryTitle> |
237 |
<xsl:value-of select="marc:subfield[@code='c']"/> |
238 |
</mads:hereditaryTitle> |
239 |
<mads:dateValid point="start"> |
240 |
<xsl:value-of select="marc:subfield[@code='s']"/> |
241 |
</mads:dateValid> |
242 |
<mads:dateValid point="end"> |
243 |
<xsl:value-of select="marc:subfield[@code='t']"/> |
244 |
</mads:dateValid> |
245 |
</mads:familyInformation> |
246 |
</mads:extension> |
247 |
</xsl:for-each> |
248 |
|
249 |
<mads:recordInfo> |
250 |
<mads:recordOrigin>Converted from MARCXML to MADS version 2.0 (Revision 2.10)</mads:recordOrigin> |
251 |
<!-- <xsl:apply-templates select="marc:datafield[@tag=024]"/> --> |
252 |
|
253 |
<xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='a']"/> |
254 |
<xsl:apply-templates select="marc:controlfield[@tag=005]"/> |
255 |
<xsl:apply-templates select="marc:controlfield[@tag=001]"/> |
256 |
<xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='b']"/> |
257 |
<xsl:apply-templates select="marc:datafield[@tag=040]/marc:subfield[@code='e']"/> |
258 |
<xsl:for-each select="marc:controlfield[@tag=008]"> |
259 |
<xsl:if test="substring(.,11,1)='a'"> |
260 |
<mads:descriptionStandard> |
261 |
<xsl:text>earlier rules</xsl:text> |
262 |
</mads:descriptionStandard> |
263 |
</xsl:if> |
264 |
<xsl:if test="substring(.,11,1)='b'"> |
265 |
<mads:descriptionStandard> |
266 |
<xsl:text>aacr1</xsl:text> |
267 |
</mads:descriptionStandard> |
268 |
</xsl:if> |
269 |
<xsl:if test="substring(.,11,1)='c'"> |
270 |
<mads:descriptionStandard> |
271 |
<xsl:text>aacr2</xsl:text> |
272 |
</mads:descriptionStandard> |
273 |
</xsl:if> |
274 |
<xsl:if test="substring(.,11,1)='d'"> |
275 |
<mads:descriptionStandard> |
276 |
<xsl:text>aacr2 compatible</xsl:text> |
277 |
</mads:descriptionStandard> |
278 |
</xsl:if> |
279 |
<xsl:if test="substring(.,11,1)='z'"> |
280 |
<mads:descriptionStandard> |
281 |
<xsl:text>other rules</xsl:text> |
282 |
</mads:descriptionStandard> |
283 |
</xsl:if> |
284 |
</xsl:for-each> |
285 |
</mads:recordInfo> |
286 |
</xsl:template> |
287 |
|
288 |
<!-- start of secondary templates --> |
289 |
|
290 |
<!-- ======== xlink ======== --> |
291 |
|
292 |
<!-- <xsl:template name="uri"> |
293 |
<xsl:for-each select="marc:subfield[@code='0']"> |
294 |
<xsl:attribute name="xlink:href"> |
295 |
<xsl:value-of select="."/> |
296 |
</xsl:attribute> |
297 |
</xsl:for-each> |
298 |
</xsl:template> |
299 |
--> |
300 |
<xsl:template match="marc:subfield[@code='i']"> |
301 |
<xsl:attribute name="otherType"> |
302 |
<xsl:value-of select="."/> |
303 |
</xsl:attribute> |
304 |
</xsl:template> |
305 |
|
306 |
<!-- No role/roleTerm mapped in MADS 06/24/2010 |
307 |
<xsl:template name="role"> |
308 |
<xsl:for-each select="marc:subfield[@code='e']"> |
309 |
<mads:role> |
310 |
<mads:roleTerm type="text"> |
311 |
<xsl:value-of select="."/> |
312 |
</mads:roleTerm> |
313 |
</mads:role> |
314 |
</xsl:for-each> |
315 |
</xsl:template> |
316 |
--> |
317 |
|
318 |
<xsl:template name="part"> |
319 |
<xsl:variable name="partNumber"> |
320 |
<xsl:call-template name="specialSubfieldSelect"> |
321 |
<xsl:with-param name="axis">n</xsl:with-param> |
322 |
<xsl:with-param name="anyCodes">n</xsl:with-param> |
323 |
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param> |
324 |
</xsl:call-template> |
325 |
</xsl:variable> |
326 |
<xsl:variable name="partName"> |
327 |
<xsl:call-template name="specialSubfieldSelect"> |
328 |
<xsl:with-param name="axis">p</xsl:with-param> |
329 |
<xsl:with-param name="anyCodes">p</xsl:with-param> |
330 |
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param> |
331 |
</xsl:call-template> |
332 |
</xsl:variable> |
333 |
<xsl:if test="string-length(normalize-space($partNumber))"> |
334 |
<mads:partNumber> |
335 |
<xsl:call-template name="chopPunctuation"> |
336 |
<xsl:with-param name="chopString" select="$partNumber"/> |
337 |
</xsl:call-template> |
338 |
</mads:partNumber> |
339 |
</xsl:if> |
340 |
<xsl:if test="string-length(normalize-space($partName))"> |
341 |
<mads:partName> |
342 |
<xsl:call-template name="chopPunctuation"> |
343 |
<xsl:with-param name="chopString" select="$partName"/> |
344 |
</xsl:call-template> |
345 |
</mads:partName> |
346 |
</xsl:if> |
347 |
</xsl:template> |
348 |
|
349 |
<xsl:template name="nameABCDN"> |
350 |
<xsl:for-each select="marc:subfield[@code='a']"> |
351 |
<mads:namePart> |
352 |
<xsl:call-template name="chopPunctuation"> |
353 |
<xsl:with-param name="chopString" select="."/> |
354 |
</xsl:call-template> |
355 |
</mads:namePart> |
356 |
</xsl:for-each> |
357 |
<xsl:for-each select="marc:subfield[@code='b']"> |
358 |
<mads:namePart> |
359 |
<xsl:value-of select="."/> |
360 |
</mads:namePart> |
361 |
</xsl:for-each> |
362 |
<xsl:if |
363 |
test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']"> |
364 |
<mads:namePart> |
365 |
<xsl:call-template name="subfieldSelect"> |
366 |
<xsl:with-param name="codes">cdn</xsl:with-param> |
367 |
</xsl:call-template> |
368 |
</mads:namePart> |
369 |
</xsl:if> |
370 |
</xsl:template> |
371 |
|
372 |
<xsl:template name="nameABCDQ"> |
373 |
<mads:namePart> |
374 |
<xsl:call-template name="chopPunctuation"> |
375 |
<xsl:with-param name="chopString"> |
376 |
<xsl:call-template name="subfieldSelect"> |
377 |
<xsl:with-param name="codes">aq</xsl:with-param> |
378 |
</xsl:call-template> |
379 |
</xsl:with-param> |
380 |
</xsl:call-template> |
381 |
</mads:namePart> |
382 |
<xsl:call-template name="termsOfAddress"/> |
383 |
<xsl:call-template name="nameDate"/> |
384 |
</xsl:template> |
385 |
|
386 |
<xsl:template name="nameACDENQ"> |
387 |
<mads:namePart> |
388 |
<xsl:call-template name="subfieldSelect"> |
389 |
<xsl:with-param name="codes">acdenq</xsl:with-param> |
390 |
</xsl:call-template> |
391 |
</mads:namePart> |
392 |
</xsl:template> |
393 |
|
394 |
<xsl:template name="nameDate"> |
395 |
<xsl:for-each select="marc:subfield[@code='d']"> |
396 |
<mads:namePart type="date"> |
397 |
<xsl:call-template name="chopPunctuation"> |
398 |
<xsl:with-param name="chopString" select="."/> |
399 |
</xsl:call-template> |
400 |
</mads:namePart> |
401 |
</xsl:for-each> |
402 |
</xsl:template> |
403 |
|
404 |
<xsl:template name="specialSubfieldSelect"> |
405 |
<xsl:param name="anyCodes"/> |
406 |
<xsl:param name="axis"/> |
407 |
<xsl:param name="beforeCodes"/> |
408 |
<xsl:param name="afterCodes"/> |
409 |
<xsl:variable name="str"> |
410 |
<xsl:for-each select="marc:subfield"> |
411 |
<xsl:if |
412 |
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])"> |
413 |
<xsl:value-of select="text()"/> |
414 |
<xsl:text> </xsl:text> |
415 |
</xsl:if> |
416 |
</xsl:for-each> |
417 |
</xsl:variable> |
418 |
<xsl:value-of select="substring($str,1,string-length($str)-1)"/> |
419 |
</xsl:template> |
420 |
|
421 |
<xsl:template name="termsOfAddress"> |
422 |
<xsl:if test="marc:subfield[@code='b' or @code='c']"> |
423 |
<mads:namePart type="termsOfAddress"> |
424 |
<xsl:call-template name="chopPunctuation"> |
425 |
<xsl:with-param name="chopString"> |
426 |
<xsl:call-template name="subfieldSelect"> |
427 |
<xsl:with-param name="codes">bc</xsl:with-param> |
428 |
</xsl:call-template> |
429 |
</xsl:with-param> |
430 |
</xsl:call-template> |
431 |
</mads:namePart> |
432 |
</xsl:if> |
433 |
</xsl:template> |
434 |
|
435 |
<xsl:template name="displayLabel"> |
436 |
<xsl:if test="marc:subfield[@code='z']"> |
437 |
<xsl:attribute name="displayLabel"> |
438 |
<xsl:value-of select="marc:subfield[@code='z']"/> |
439 |
</xsl:attribute> |
440 |
</xsl:if> |
441 |
<xsl:if test="marc:subfield[@code='3']"> |
442 |
<xsl:attribute name="displayLabel"> |
443 |
<xsl:value-of select="marc:subfield[@code='3']"/> |
444 |
</xsl:attribute> |
445 |
</xsl:if> |
446 |
</xsl:template> |
447 |
|
448 |
<xsl:template name="isInvalid"> |
449 |
<xsl:if test="@code='z'"> |
450 |
<xsl:attribute name="invalid">yes</xsl:attribute> |
451 |
</xsl:if> |
452 |
</xsl:template> |
453 |
|
454 |
<xsl:template name="sub2Attribute"> |
455 |
<!-- 024 --> |
456 |
<xsl:if test="../marc:subfield[@code='2']"> |
457 |
<xsl:attribute name="type"> |
458 |
<xsl:value-of select="../marc:subfield[@code='2']"/> |
459 |
</xsl:attribute> |
460 |
</xsl:if> |
461 |
</xsl:template> |
462 |
|
463 |
<xsl:template match="marc:controlfield[@tag=001]"> |
464 |
<mads:recordIdentifier> |
465 |
<xsl:if test="../marc:controlfield[@tag=003]"> |
466 |
<xsl:attribute name="source"> |
467 |
<xsl:value-of select="../marc:controlfield[@tag=003]"/> |
468 |
</xsl:attribute> |
469 |
</xsl:if> |
470 |
<xsl:value-of select="."/> |
471 |
</mads:recordIdentifier> |
472 |
</xsl:template> |
473 |
|
474 |
<xsl:template match="marc:controlfield[@tag=005]"> |
475 |
<mads:recordChangeDate encoding="iso8601"> |
476 |
<xsl:value-of select="."/> |
477 |
</mads:recordChangeDate> |
478 |
</xsl:template> |
479 |
|
480 |
<xsl:template match="marc:controlfield[@tag=008]"> |
481 |
<mads:recordCreationDate encoding="marc"> |
482 |
<xsl:value-of select="substring(.,1,6)"/> |
483 |
</mads:recordCreationDate> |
484 |
</xsl:template> |
485 |
|
486 |
<xsl:template match="marc:datafield[@tag=010]"> |
487 |
<xsl:for-each select="marc:subfield"> |
488 |
<mads:identifier type="lccn"> |
489 |
<xsl:call-template name="isInvalid"/> |
490 |
<xsl:value-of select="."/> |
491 |
</mads:identifier> |
492 |
</xsl:for-each> |
493 |
</xsl:template> |
494 |
|
495 |
<xsl:template match="marc:datafield[@tag=024]"> |
496 |
<xsl:for-each select="marc:subfield[not(@code=2)]"> |
497 |
<mads:identifier> |
498 |
<xsl:call-template name="isInvalid"/> |
499 |
<xsl:call-template name="sub2Attribute"/> |
500 |
<xsl:value-of select="."/> |
501 |
</mads:identifier> |
502 |
</xsl:for-each> |
503 |
</xsl:template> |
504 |
|
505 |
<!-- ========== 372 ========== --> |
506 |
<xsl:template match="marc:datafield[@tag=372]"> |
507 |
<mads:fieldOfActivity> |
508 |
<xsl:call-template name="subfieldSelect"> |
509 |
<xsl:with-param name="codes">a</xsl:with-param> |
510 |
</xsl:call-template> |
511 |
<xsl:text>-</xsl:text> |
512 |
<xsl:call-template name="subfieldSelect"> |
513 |
<xsl:with-param name="codes">st</xsl:with-param> |
514 |
</xsl:call-template> |
515 |
</mads:fieldOfActivity> |
516 |
</xsl:template> |
517 |
|
518 |
|
519 |
<!-- ========== 040 ========== --> |
520 |
<xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='a']"> |
521 |
<mads:recordContentSource authority="marcorg"> |
522 |
<xsl:value-of select="."/> |
523 |
</mads:recordContentSource> |
524 |
</xsl:template> |
525 |
|
526 |
<xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='b']"> |
527 |
<mads:languageOfCataloging> |
528 |
<mads:languageTerm authority="iso639-2b" type="code"> |
529 |
<xsl:value-of select="."/> |
530 |
</mads:languageTerm> |
531 |
</mads:languageOfCataloging> |
532 |
</xsl:template> |
533 |
|
534 |
<xsl:template match="marc:datafield[@tag=040]/marc:subfield[@code='e']"> |
535 |
<mads:descriptionStandard> |
536 |
<xsl:value-of select="."/> |
537 |
</mads:descriptionStandard> |
538 |
</xsl:template> |
539 |
|
540 |
<!-- ========== classification 2.03 ========== --> |
541 |
|
542 |
<xsl:template match="marc:datafield[@tag=053]"> |
543 |
<mads:classification> |
544 |
<xsl:value-of select="."/> |
545 |
</mads:classification> |
546 |
</xsl:template> |
547 |
<xsl:template match="marc:datafield[@tag=055]"> |
548 |
<mads:classification> |
549 |
<xsl:value-of select="."/> |
550 |
</mads:classification> |
551 |
</xsl:template> |
552 |
<xsl:template match="marc:datafield[@tag=060]"> |
553 |
<mads:classification> |
554 |
<xsl:value-of select="."/> |
555 |
</mads:classification> |
556 |
</xsl:template> |
557 |
<xsl:template match="marc:datafield[@tag=065]"> |
558 |
<mads:classification> |
559 |
<xsl:value-of select="."/> |
560 |
</mads:classification> |
561 |
</xsl:template> |
562 |
<xsl:template match="marc:datafield[@tag=070]"> |
563 |
<mads:classification> |
564 |
<xsl:value-of select="."/> |
565 |
</mads:classification> |
566 |
</xsl:template> |
567 |
<xsl:template match="marc:datafield[@tag=080]"> |
568 |
<mads:classification> |
569 |
<xsl:value-of select="."/> |
570 |
</mads:classification> |
571 |
</xsl:template> |
572 |
<xsl:template match="marc:datafield[@tag=082]"> |
573 |
<mads:classification> |
574 |
<xsl:value-of select="."/> |
575 |
</mads:classification> |
576 |
</xsl:template> |
577 |
<xsl:template match="marc:datafield[@tag=083]"> |
578 |
<mads:classification> |
579 |
<xsl:value-of select="."/> |
580 |
</mads:classification> |
581 |
</xsl:template> |
582 |
<xsl:template match="marc:datafield[@tag=086]"> |
583 |
<mads:classification> |
584 |
<xsl:value-of select="."/> |
585 |
</mads:classification> |
586 |
</xsl:template> |
587 |
<xsl:template match="marc:datafield[@tag=087]"> |
588 |
<mads:classification> |
589 |
<xsl:value-of select="."/> |
590 |
</mads:classification> |
591 |
</xsl:template> |
592 |
|
593 |
|
594 |
<!-- ========== names ========== --> |
595 |
<xsl:template match="marc:datafield[@tag=100]"> |
596 |
<mads:name type="personal"> |
597 |
<xsl:call-template name="setAuthority"/> |
598 |
<xsl:call-template name="nameABCDQ"/> |
599 |
</mads:name> |
600 |
<xsl:apply-templates select="*[marc:subfield[not(contains('abcdeq',@code))]]"/> |
601 |
<xsl:call-template name="title"/> |
602 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
603 |
</xsl:template> |
604 |
|
605 |
<xsl:template match="marc:datafield[@tag=110]"> |
606 |
<mads:name type="corporate"> |
607 |
<xsl:call-template name="setAuthority"/> |
608 |
<xsl:call-template name="nameABCDN"/> |
609 |
</mads:name> |
610 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
611 |
</xsl:template> |
612 |
|
613 |
<xsl:template match="marc:datafield[@tag=111]"> |
614 |
<mads:name type="conference"> |
615 |
<xsl:call-template name="setAuthority"/> |
616 |
<xsl:call-template name="nameACDENQ"/> |
617 |
</mads:name> |
618 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
619 |
</xsl:template> |
620 |
|
621 |
<xsl:template match="marc:datafield[@tag=400]"> |
622 |
<mads:variant> |
623 |
<xsl:call-template name="variantTypeAttribute"/> |
624 |
<mads:name type="personal"> |
625 |
<xsl:call-template name="nameABCDQ"/> |
626 |
</mads:name> |
627 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
628 |
<xsl:call-template name="title"/> |
629 |
</mads:variant> |
630 |
</xsl:template> |
631 |
|
632 |
<xsl:template match="marc:datafield[@tag=410]"> |
633 |
<mads:variant> |
634 |
<xsl:call-template name="variantTypeAttribute"/> |
635 |
<mads:name type="corporate"> |
636 |
<xsl:call-template name="nameABCDN"/> |
637 |
</mads:name> |
638 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
639 |
</mads:variant> |
640 |
</xsl:template> |
641 |
|
642 |
<xsl:template match="marc:datafield[@tag=411]"> |
643 |
<mads:variant> |
644 |
<xsl:call-template name="variantTypeAttribute"/> |
645 |
<mads:name type="conference"> |
646 |
<xsl:call-template name="nameACDENQ"/> |
647 |
</mads:name> |
648 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
649 |
</mads:variant> |
650 |
</xsl:template> |
651 |
|
652 |
<xsl:template match="marc:datafield[@tag=500]|marc:datafield[@tag=700]"> |
653 |
<mads:related> |
654 |
<xsl:call-template name="relatedTypeAttribute"/> |
655 |
<!-- <xsl:call-template name="uri"/> --> |
656 |
<mads:name type="personal"> |
657 |
<xsl:call-template name="setAuthority"/> |
658 |
<xsl:call-template name="nameABCDQ"/> |
659 |
</mads:name> |
660 |
<xsl:call-template name="title"/> |
661 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
662 |
</mads:related> |
663 |
</xsl:template> |
664 |
|
665 |
<xsl:template match="marc:datafield[@tag=510]|marc:datafield[@tag=710]"> |
666 |
<mads:related> |
667 |
<xsl:call-template name="relatedTypeAttribute"/> |
668 |
<!-- <xsl:call-template name="uri"/> --> |
669 |
<mads:name type="corporate"> |
670 |
<xsl:call-template name="setAuthority"/> |
671 |
<xsl:call-template name="nameABCDN"/> |
672 |
</mads:name> |
673 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
674 |
</mads:related> |
675 |
</xsl:template> |
676 |
|
677 |
<xsl:template match="marc:datafield[@tag=511]|marc:datafield[@tag=711]"> |
678 |
<mads:related> |
679 |
<xsl:call-template name="relatedTypeAttribute"/> |
680 |
<!-- <xsl:call-template name="uri"/> --> |
681 |
<mads:name type="conference"> |
682 |
<xsl:call-template name="setAuthority"/> |
683 |
<xsl:call-template name="nameACDENQ"/> |
684 |
</mads:name> |
685 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
686 |
</mads:related> |
687 |
</xsl:template> |
688 |
|
689 |
<!-- ========== titles ========== --> |
690 |
<xsl:template match="marc:datafield[@tag=130]"> |
691 |
<xsl:call-template name="uniform-title"/> |
692 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
693 |
</xsl:template> |
694 |
|
695 |
<xsl:template match="marc:datafield[@tag=430]"> |
696 |
<mads:variant> |
697 |
<xsl:call-template name="variantTypeAttribute"/> |
698 |
<xsl:call-template name="uniform-title"/> |
699 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
700 |
</mads:variant> |
701 |
</xsl:template> |
702 |
|
703 |
<xsl:template match="marc:datafield[@tag=530]|marc:datafield[@tag=730]"> |
704 |
<mads:related> |
705 |
<xsl:call-template name="relatedTypeAttribute"/> |
706 |
<xsl:call-template name="uniform-title"/> |
707 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
708 |
</mads:related> |
709 |
</xsl:template> |
710 |
|
711 |
<xsl:template name="title"> |
712 |
<xsl:variable name="hasTitle"> |
713 |
<xsl:for-each select="marc:subfield"> |
714 |
<xsl:if test="(contains('tfghklmors',@code) )"> |
715 |
<xsl:value-of select="@code"/> |
716 |
</xsl:if> |
717 |
</xsl:for-each> |
718 |
</xsl:variable> |
719 |
<xsl:if test="string-length($hasTitle) > 0 "> |
720 |
<mads:titleInfo> |
721 |
<xsl:call-template name="setAuthority"/> |
722 |
<mads:title> |
723 |
<xsl:variable name="str"> |
724 |
<xsl:for-each select="marc:subfield"> |
725 |
<xsl:if test="(contains('atfghklmors',@code) )"> |
726 |
<xsl:value-of select="text()"/> |
727 |
<xsl:text> </xsl:text> |
728 |
</xsl:if> |
729 |
</xsl:for-each> |
730 |
</xsl:variable> |
731 |
<xsl:call-template name="chopPunctuation"> |
732 |
<xsl:with-param name="chopString"> |
733 |
<xsl:value-of select="substring($str,1,string-length($str)-1)"/> |
734 |
</xsl:with-param> |
735 |
</xsl:call-template> |
736 |
</mads:title> |
737 |
<xsl:call-template name="part"/> |
738 |
<!-- <xsl:call-template name="uri"/> --> |
739 |
</mads:titleInfo> |
740 |
</xsl:if> |
741 |
</xsl:template> |
742 |
|
743 |
<xsl:template name="uniform-title"> |
744 |
<xsl:variable name="hasTitle"> |
745 |
<xsl:for-each select="marc:subfield"> |
746 |
<xsl:if test="(contains('atfghklmors',@code) )"> |
747 |
<xsl:value-of select="@code"/> |
748 |
</xsl:if> |
749 |
</xsl:for-each> |
750 |
</xsl:variable> |
751 |
<xsl:if test="string-length($hasTitle) > 0 "> |
752 |
<mads:titleInfo> |
753 |
<xsl:call-template name="setAuthority"/> |
754 |
<mads:title> |
755 |
<xsl:variable name="str"> |
756 |
<xsl:for-each select="marc:subfield"> |
757 |
<xsl:if test="(contains('adfghklmors',@code) )"> |
758 |
<xsl:value-of select="text()"/> |
759 |
<xsl:text> </xsl:text> |
760 |
</xsl:if> |
761 |
</xsl:for-each> |
762 |
</xsl:variable> |
763 |
<xsl:call-template name="chopPunctuation"> |
764 |
<xsl:with-param name="chopString"> |
765 |
<xsl:value-of select="substring($str,1,string-length($str)-1)"/> |
766 |
</xsl:with-param> |
767 |
</xsl:call-template> |
768 |
</mads:title> |
769 |
<xsl:call-template name="part"/> |
770 |
<!-- <xsl:call-template name="uri"/> --> |
771 |
</mads:titleInfo> |
772 |
</xsl:if> |
773 |
</xsl:template> |
774 |
|
775 |
|
776 |
<!-- ========== topics ========== --> |
777 |
<xsl:template match="marc:subfield[@code='x']"> |
778 |
<mads:topic> |
779 |
<xsl:call-template name="chopPunctuation"> |
780 |
<xsl:with-param name="chopString"> |
781 |
<xsl:value-of select="."/> |
782 |
</xsl:with-param> |
783 |
</xsl:call-template> |
784 |
</mads:topic> |
785 |
</xsl:template> |
786 |
|
787 |
<!-- 2.06 fix --> |
788 |
<xsl:template |
789 |
match="marc:datafield[@tag=150][marc:subfield[@code='a' or @code='b']]|marc:datafield[@tag=180][marc:subfield[@code='x']]"> |
790 |
<xsl:call-template name="topic"/> |
791 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
792 |
</xsl:template> |
793 |
<xsl:template |
794 |
match="marc:datafield[@tag=450][marc:subfield[@code='a' or @code='b']]|marc:datafield[@tag=480][marc:subfield[@code='x']]"> |
795 |
<mads:variant> |
796 |
<xsl:call-template name="variantTypeAttribute"/> |
797 |
<xsl:call-template name="topic"/> |
798 |
</mads:variant> |
799 |
</xsl:template> |
800 |
<xsl:template |
801 |
match="marc:datafield[@tag=550 or @tag=750][marc:subfield[@code='a' or @code='b']]"> |
802 |
<mads:related> |
803 |
<xsl:call-template name="relatedTypeAttribute"/> |
804 |
<!-- <xsl:call-template name="uri"/> --> |
805 |
<xsl:call-template name="topic"/> |
806 |
<xsl:apply-templates select="marc:subfield[@code='z']"/> |
807 |
</mads:related> |
808 |
</xsl:template> |
809 |
<xsl:template name="topic"> |
810 |
<mads:topic> |
811 |
<xsl:call-template name="setAuthority"/> |
812 |
<!-- tmee2006 dedupe 550a |
813 |
<xsl:if test="@tag=550 or @tag=750"> |
814 |
<xsl:call-template name="subfieldSelect"> |
815 |
<xsl:with-param name="codes">ab</xsl:with-param> |
816 |
</xsl:call-template> |
817 |
</xsl:if> |
818 |
--> |
819 |
<xsl:choose> |
820 |
<xsl:when test="@tag=180 or @tag=480 or @tag=580 or @tag=780"> |
821 |
<xsl:call-template name="chopPunctuation"> |
822 |
<xsl:with-param name="chopString"> |
823 |
<xsl:apply-templates select="marc:subfield[@code='x']"/> |
824 |
</xsl:with-param> |
825 |
</xsl:call-template> |
826 |
</xsl:when> |
827 |
</xsl:choose> |
828 |
<xsl:call-template name="chopPunctuation"> |
829 |
<xsl:with-param name="chopString"> |
830 |
<xsl:choose> |
831 |
<xsl:when test="@tag=180 or @tag=480 or @tag=580 or @tag=780"> |
832 |
<xsl:apply-templates select="marc:subfield[@code='x']"/> |
833 |
</xsl:when> |
834 |
<xsl:otherwise> |
835 |
<xsl:call-template name="subfieldSelect"> |
836 |
<xsl:with-param name="codes">ab</xsl:with-param> |
837 |
</xsl:call-template> |
838 |
</xsl:otherwise> |
839 |
</xsl:choose> |
840 |
</xsl:with-param> |
841 |
</xsl:call-template> |
842 |
</mads:topic> |
843 |
</xsl:template> |
844 |
|
845 |
<!-- ========= temporals ========== --> |
846 |
<xsl:template match="marc:subfield[@code='y']"> |
847 |
<mads:temporal> |
848 |
<xsl:call-template name="chopPunctuation"> |
849 |
<xsl:with-param name="chopString"> |
850 |
<xsl:value-of select="."/> |
851 |
</xsl:with-param> |
852 |
</xsl:call-template> |
853 |
</mads:temporal> |
854 |
</xsl:template> |
855 |
<xsl:template |
856 |
match="marc:datafield[@tag=148][marc:subfield[@code='a']]|marc:datafield[@tag=182 ][marc:subfield[@code='y']]"> |
857 |
<xsl:call-template name="temporal"/> |
858 |
</xsl:template> |
859 |
<xsl:template |
860 |
match="marc:datafield[@tag=448][marc:subfield[@code='a']]|marc:datafield[@tag=482][marc:subfield[@code='y']]"> |
861 |
<mads:variant> |
862 |
<xsl:call-template name="variantTypeAttribute"/> |
863 |
<xsl:call-template name="temporal"/> |
864 |
</mads:variant> |
865 |
</xsl:template> |
866 |
<xsl:template |
867 |
match="marc:datafield[@tag=548 or @tag=748][marc:subfield[@code='a']]|marc:datafield[@tag=582 or @tag=782][marc:subfield[@code='y']]"> |
868 |
<mads:related> |
869 |
<xsl:call-template name="relatedTypeAttribute"/> |
870 |
<!-- <xsl:call-template name="uri"/> --> |
871 |
<xsl:call-template name="temporal"/> |
872 |
</mads:related> |
873 |
</xsl:template> |
874 |
<xsl:template name="temporal"> |
875 |
<mads:temporal> |
876 |
<xsl:call-template name="setAuthority"/> |
877 |
<xsl:if test="@tag=548 or @tag=748"> |
878 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
879 |
</xsl:if> |
880 |
<xsl:call-template name="chopPunctuation"> |
881 |
<xsl:with-param name="chopString"> |
882 |
<xsl:choose> |
883 |
<xsl:when test="@tag=182 or @tag=482 or @tag=582 or @tag=782"> |
884 |
<xsl:apply-templates select="marc:subfield[@code='y']"/> |
885 |
</xsl:when> |
886 |
<xsl:otherwise> |
887 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
888 |
</xsl:otherwise> |
889 |
</xsl:choose> |
890 |
</xsl:with-param> |
891 |
</xsl:call-template> |
892 |
</mads:temporal> |
893 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
894 |
</xsl:template> |
895 |
|
896 |
<!-- ========== genre ========== --> |
897 |
<xsl:template match="marc:subfield[@code='v']"> |
898 |
<mads:genre> |
899 |
<xsl:call-template name="chopPunctuation"> |
900 |
<xsl:with-param name="chopString"> |
901 |
<xsl:value-of select="."/> |
902 |
</xsl:with-param> |
903 |
</xsl:call-template> |
904 |
</mads:genre> |
905 |
</xsl:template> |
906 |
<xsl:template |
907 |
match="marc:datafield[@tag=155][marc:subfield[@code='a']]|marc:datafield[@tag=185][marc:subfield[@code='v']]"> |
908 |
<xsl:call-template name="genre"/> |
909 |
</xsl:template> |
910 |
<xsl:template |
911 |
match="marc:datafield[@tag=455][marc:subfield[@code='a']]|marc:datafield[@tag=485 ][marc:subfield[@code='v']]"> |
912 |
<mads:variant> |
913 |
<xsl:call-template name="variantTypeAttribute"/> |
914 |
<xsl:call-template name="genre"/> |
915 |
</mads:variant> |
916 |
</xsl:template> |
917 |
<!-- |
918 |
<xsl:template match="marc:datafield[@tag=555]"> |
919 |
<mads:related> |
920 |
<xsl:call-template name="relatedTypeAttribute"/> |
921 |
<xsl:call-template name="uri"/> |
922 |
<xsl:call-template name="genre"/> |
923 |
</mads:related> |
924 |
</xsl:template> |
925 |
--> |
926 |
<xsl:template |
927 |
match="marc:datafield[@tag=555 or @tag=755][marc:subfield[@code='a']]|marc:datafield[@tag=585][marc:subfield[@code='v']]"> |
928 |
<mads:related> |
929 |
<xsl:call-template name="relatedTypeAttribute"/> |
930 |
<xsl:call-template name="genre"/> |
931 |
</mads:related> |
932 |
</xsl:template> |
933 |
<xsl:template name="genre"> |
934 |
<mads:genre> |
935 |
<xsl:if test="@tag=555"> |
936 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
937 |
</xsl:if> |
938 |
<xsl:call-template name="setAuthority"/> |
939 |
<xsl:call-template name="chopPunctuation"> |
940 |
<xsl:with-param name="chopString"> |
941 |
<xsl:choose> |
942 |
<!-- 2.07 fix --> |
943 |
<xsl:when test="@tag='555'"/> |
944 |
<xsl:when test="@tag=185 or @tag=485 or @tag=585"> |
945 |
<xsl:apply-templates select="marc:subfield[@code='v']"/> |
946 |
</xsl:when> |
947 |
<xsl:otherwise> |
948 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
949 |
</xsl:otherwise> |
950 |
</xsl:choose> |
951 |
</xsl:with-param> |
952 |
</xsl:call-template> |
953 |
</mads:genre> |
954 |
<xsl:apply-templates/> |
955 |
</xsl:template> |
956 |
|
957 |
<!-- ========= geographic ========== --> |
958 |
<xsl:template match="marc:subfield[@code='z']"> |
959 |
<mads:geographic> |
960 |
<xsl:call-template name="chopPunctuation"> |
961 |
<xsl:with-param name="chopString"> |
962 |
<xsl:value-of select="."/> |
963 |
</xsl:with-param> |
964 |
</xsl:call-template> |
965 |
</mads:geographic> |
966 |
</xsl:template> |
967 |
<xsl:template name="geographic"> |
968 |
<mads:geographic> |
969 |
<xsl:if test="@tag=551"> |
970 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
971 |
</xsl:if> |
972 |
<xsl:call-template name="setAuthority"/> |
973 |
<xsl:call-template name="chopPunctuation"> |
974 |
<xsl:with-param name="chopString"> |
975 |
<xsl:choose> |
976 |
<xsl:when test="@tag=181 or @tag=481 or @tag=581"> |
977 |
<xsl:apply-templates select="marc:subfield[@code='z']"/> |
978 |
</xsl:when> |
979 |
<xsl:otherwise> |
980 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
981 |
</xsl:otherwise> |
982 |
</xsl:choose> |
983 |
</xsl:with-param> |
984 |
</xsl:call-template> |
985 |
</mads:geographic> |
986 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
987 |
</xsl:template> |
988 |
<xsl:template |
989 |
match="marc:datafield[@tag=151][marc:subfield[@code='a']]|marc:datafield[@tag=181][marc:subfield[@code='z']]"> |
990 |
<xsl:call-template name="geographic"/> |
991 |
</xsl:template> |
992 |
<xsl:template |
993 |
match="marc:datafield[@tag=451][marc:subfield[@code='a']]|marc:datafield[@tag=481][marc:subfield[@code='z']]"> |
994 |
<mads:variant> |
995 |
<xsl:call-template name="variantTypeAttribute"/> |
996 |
<xsl:call-template name="geographic"/> |
997 |
</mads:variant> |
998 |
</xsl:template> |
999 |
<xsl:template |
1000 |
match="marc:datafield[@tag=551]|marc:datafield[@tag=581][marc:subfield[@code='z']]"> |
1001 |
<mads:related> |
1002 |
<xsl:call-template name="relatedTypeAttribute"/> |
1003 |
<!-- <xsl:call-template name="uri"/> --> |
1004 |
<xsl:call-template name="geographic"/> |
1005 |
</mads:related> |
1006 |
</xsl:template> |
1007 |
<xsl:template match="marc:datafield[@tag=580]"> |
1008 |
<mads:related> |
1009 |
<xsl:call-template name="relatedTypeAttribute"/> |
1010 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
1011 |
</mads:related> |
1012 |
</xsl:template> |
1013 |
<xsl:template |
1014 |
match="marc:datafield[@tag=751][marc:subfield[@code='z']]|marc:datafield[@tag=781][marc:subfield[@code='z']]"> |
1015 |
<mads:related> |
1016 |
<xsl:call-template name="relatedTypeAttribute"/> |
1017 |
<xsl:call-template name="geographic"/> |
1018 |
</mads:related> |
1019 |
</xsl:template> |
1020 |
<xsl:template match="marc:datafield[@tag=755]"> |
1021 |
<mads:related> |
1022 |
<xsl:call-template name="relatedTypeAttribute"/> |
1023 |
<xsl:call-template name="genre"/> |
1024 |
<xsl:call-template name="setAuthority"/> |
1025 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
1026 |
</mads:related> |
1027 |
</xsl:template> |
1028 |
<xsl:template match="marc:datafield[@tag=780]"> |
1029 |
<mads:related> |
1030 |
<xsl:call-template name="relatedTypeAttribute"/> |
1031 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
1032 |
</mads:related> |
1033 |
</xsl:template> |
1034 |
<xsl:template match="marc:datafield[@tag=785]"> |
1035 |
<mads:related> |
1036 |
<xsl:call-template name="relatedTypeAttribute"/> |
1037 |
<xsl:apply-templates select="marc:subfield[@code!='i']"/> |
1038 |
</mads:related> |
1039 |
</xsl:template> |
1040 |
|
1041 |
<!-- ========== notes ========== --> |
1042 |
<xsl:template match="marc:datafield[667 <= @tag and @tag <= 688]"> |
1043 |
<mads:note> |
1044 |
<xsl:choose> |
1045 |
<xsl:when test="@tag=667"> |
1046 |
<xsl:attribute name="type">nonpublic</xsl:attribute> |
1047 |
</xsl:when> |
1048 |
<xsl:when test="@tag=670"> |
1049 |
<xsl:attribute name="type">source</xsl:attribute> |
1050 |
</xsl:when> |
1051 |
<xsl:when test="@tag=675"> |
1052 |
<xsl:attribute name="type">notFound</xsl:attribute> |
1053 |
</xsl:when> |
1054 |
<xsl:when test="@tag=678"> |
1055 |
<xsl:attribute name="type">history</xsl:attribute> |
1056 |
</xsl:when> |
1057 |
<xsl:when test="@tag=681"> |
1058 |
<xsl:attribute name="type">subject example</xsl:attribute> |
1059 |
</xsl:when> |
1060 |
<xsl:when test="@tag=682"> |
1061 |
<xsl:attribute name="type">deleted heading information</xsl:attribute> |
1062 |
</xsl:when> |
1063 |
<xsl:when test="@tag=688"> |
1064 |
<xsl:attribute name="type">application history</xsl:attribute> |
1065 |
</xsl:when> |
1066 |
</xsl:choose> |
1067 |
<xsl:call-template name="chopPunctuation"> |
1068 |
<xsl:with-param name="chopString"> |
1069 |
<xsl:choose> |
1070 |
<xsl:when test="@tag=667 or @tag=675"> |
1071 |
<xsl:value-of select="marc:subfield[@code='a']"/> |
1072 |
</xsl:when> |
1073 |
<xsl:when test="@tag=670 or @tag=678"> |
1074 |
<xsl:call-template name="subfieldSelect"> |
1075 |
<xsl:with-param name="codes">ab</xsl:with-param> |
1076 |
</xsl:call-template> |
1077 |
</xsl:when> |
1078 |
<xsl:when test="680 <= @tag and @tag <=688"> |
1079 |
<xsl:call-template name="subfieldSelect"> |
1080 |
<xsl:with-param name="codes">ai</xsl:with-param> |
1081 |
</xsl:call-template> |
1082 |
</xsl:when> |
1083 |
</xsl:choose> |
1084 |
</xsl:with-param> |
1085 |
</xsl:call-template> |
1086 |
</mads:note> |
1087 |
</xsl:template> |
1088 |
|
1089 |
<!-- ========== url ========== --> |
1090 |
<xsl:template match="marc:datafield[@tag=856][marc:subfield[@code='u']]"> |
1091 |
<mads:url> |
1092 |
<xsl:if test="marc:subfield[@code='z' or @code='3']"> |
1093 |
<xsl:attribute name="displayLabel"> |
1094 |
<xsl:call-template name="subfieldSelect"> |
1095 |
<xsl:with-param name="codes">z3</xsl:with-param> |
1096 |
</xsl:call-template> |
1097 |
</xsl:attribute> |
1098 |
</xsl:if> |
1099 |
<xsl:value-of select="marc:subfield[@code='u']"/> |
1100 |
</mads:url> |
1101 |
</xsl:template> |
1102 |
|
1103 |
<xsl:template name="relatedTypeAttribute"> |
1104 |
<xsl:choose> |
1105 |
<xsl:when |
1106 |
test="@tag=500 or @tag=510 or @tag=511 or @tag=548 or @tag=550 or @tag=551 or @tag=555 or @tag=580 or @tag=581 or @tag=582 or @tag=585"> |
1107 |
<xsl:if test="substring(marc:subfield[@code='w'],1,1)='a'"> |
1108 |
<xsl:attribute name="type">earlier</xsl:attribute> |
1109 |
</xsl:if> |
1110 |
<xsl:if test="substring(marc:subfield[@code='w'],1,1)='b'"> |
1111 |
<xsl:attribute name="type">later</xsl:attribute> |
1112 |
</xsl:if> |
1113 |
<xsl:if test="substring(marc:subfield[@code='w'],1,1)='t'"> |
1114 |
<xsl:attribute name="type">parentOrg</xsl:attribute> |
1115 |
</xsl:if> |
1116 |
<xsl:if test="substring(marc:subfield[@code='w'],1,1)='g'"> |
1117 |
<xsl:attribute name="type">broader</xsl:attribute> |
1118 |
</xsl:if> |
1119 |
<xsl:if test="substring(marc:subfield[@code='w'],1,1)='h'"> |
1120 |
<xsl:attribute name="type">narrower</xsl:attribute> |
1121 |
</xsl:if> |
1122 |
<xsl:if test="substring(marc:subfield[@code='w'],1,1)='r'"> |
1123 |
<xsl:attribute name="type">other</xsl:attribute> |
1124 |
</xsl:if> |
1125 |
<xsl:if test="contains('fin|', substring(marc:subfield[@code='w'],1,1))"> |
1126 |
<xsl:attribute name="type">other</xsl:attribute> |
1127 |
</xsl:if> |
1128 |
</xsl:when> |
1129 |
<xsl:when test="@tag=530 or @tag=730"> |
1130 |
<xsl:attribute name="type">other</xsl:attribute> |
1131 |
</xsl:when> |
1132 |
<xsl:otherwise> |
1133 |
<!-- 7xx --> |
1134 |
<xsl:attribute name="type">equivalent</xsl:attribute> |
1135 |
</xsl:otherwise> |
1136 |
</xsl:choose> |
1137 |
<xsl:apply-templates select="marc:subfield[@code='i']"/> |
1138 |
</xsl:template> |
1139 |
|
1140 |
<xsl:template name="variantTypeAttribute"> |
1141 |
<xsl:choose> |
1142 |
<xsl:when |
1143 |
test="@tag=400 or @tag=410 or @tag=411 or @tag=451 or @tag=455 or @tag=480 or @tag=481 or @tag=482 or @tag=485"> |
1144 |
<xsl:if test="substring(marc:subfield[@code='w'],1,1)='d'"> |
1145 |
<xsl:attribute name="type">acronym</xsl:attribute> |
1146 |
</xsl:if> |
1147 |
<xsl:if test="substring(marc:subfield[@code='w'],1,1)='n'"> |
1148 |
<xsl:attribute name="type">other</xsl:attribute> |
1149 |
</xsl:if> |
1150 |
<xsl:if test="contains('fit', substring(marc:subfield[@code='w'],1,1))"> |
1151 |
<xsl:attribute name="type">other</xsl:attribute> |
1152 |
</xsl:if> |
1153 |
</xsl:when> |
1154 |
<xsl:otherwise> |
1155 |
<!-- 430 --> |
1156 |
<xsl:attribute name="type">other</xsl:attribute> |
1157 |
</xsl:otherwise> |
1158 |
</xsl:choose> |
1159 |
<xsl:apply-templates select="marc:subfield[@code='i']"/> |
1160 |
</xsl:template> |
1161 |
|
1162 |
<xsl:template name="setAuthority"> |
1163 |
<xsl:choose> |
1164 |
<!-- can be called from the datafield or subfield level, so "..//@tag" means |
1165 |
the tag can be at the subfield's parent level or at the datafields own level --> |
1166 |
|
1167 |
<xsl:when |
1168 |
test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='a' and $controlField008-14='a'"> |
1169 |
<xsl:attribute name="authority"> |
1170 |
<xsl:text>naf</xsl:text> |
1171 |
</xsl:attribute> |
1172 |
</xsl:when> |
1173 |
<xsl:when |
1174 |
test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='a' and $controlField008-14='b'"> |
1175 |
<xsl:attribute name="authority"> |
1176 |
<xsl:text>lcsh</xsl:text> |
1177 |
</xsl:attribute> |
1178 |
</xsl:when> |
1179 |
<xsl:when |
1180 |
test="ancestor-or-self::marc:datafield/@tag=100 and (@ind1=0 or @ind1=1) and $controlField008-11='k'"> |
1181 |
<xsl:attribute name="authority"> |
1182 |
<xsl:text>lacnaf</xsl:text> |
1183 |
</xsl:attribute> |
1184 |
</xsl:when> |
1185 |
<xsl:when |
1186 |
test="ancestor-or-self::marc:datafield/@tag=100 and @ind1=3 and $controlField008-11='a' and $controlField008-14='b'"> |
1187 |
<xsl:attribute name="authority"> |
1188 |
<xsl:text>lcsh</xsl:text> |
1189 |
</xsl:attribute> |
1190 |
</xsl:when> |
1191 |
<xsl:when |
1192 |
test="ancestor-or-self::marc:datafield/@tag=100 and @ind1=3 and $controlField008-11='k' and $controlField008-14='b'"> |
1193 |
<xsl:attribute name="authority">cash</xsl:attribute> |
1194 |
</xsl:when> |
1195 |
<xsl:when |
1196 |
test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='a' and $controlField008-14='a'"> |
1197 |
<xsl:attribute name="authority">naf</xsl:attribute> |
1198 |
</xsl:when> |
1199 |
<xsl:when |
1200 |
test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='a' and $controlField008-14='b'"> |
1201 |
<xsl:attribute name="authority">lcsh</xsl:attribute> |
1202 |
</xsl:when> |
1203 |
<xsl:when |
1204 |
test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='k' and $controlField008-14='a'"> |
1205 |
<xsl:attribute name="authority"> |
1206 |
<xsl:text>lacnaf</xsl:text> |
1207 |
</xsl:attribute> |
1208 |
</xsl:when> |
1209 |
<xsl:when |
1210 |
test="ancestor-or-self::marc:datafield/@tag=110 and $controlField008-11='k' and $controlField008-14='b'"> |
1211 |
<xsl:attribute name="authority"> |
1212 |
<xsl:text>cash</xsl:text> |
1213 |
</xsl:attribute> |
1214 |
</xsl:when> |
1215 |
<xsl:when |
1216 |
test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='b'"> |
1217 |
<xsl:attribute name="authority"> |
1218 |
<xsl:text>lcshcl</xsl:text> |
1219 |
</xsl:attribute> |
1220 |
</xsl:when> |
1221 |
<xsl:when |
1222 |
test="(ancestor-or-self::marc:datafield/@tag=100 or ancestor-or-self::marc:datafield/@tag=110 or ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130 or ancestor-or-self::marc:datafield/@tag=151) and $controlField008-11='c'"> |
1223 |
<xsl:attribute name="authority"> |
1224 |
<xsl:text>nlmnaf</xsl:text> |
1225 |
</xsl:attribute> |
1226 |
</xsl:when> |
1227 |
<xsl:when |
1228 |
test="(ancestor-or-self::marc:datafield/@tag=100 or ancestor-or-self::marc:datafield/@tag=110 or ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130 or ancestor-or-self::marc:datafield/@tag=151) and $controlField008-11='d'"> |
1229 |
<xsl:attribute name="authority"> |
1230 |
<xsl:text>nalnaf</xsl:text> |
1231 |
</xsl:attribute> |
1232 |
</xsl:when> |
1233 |
<xsl:when |
1234 |
test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='r'"> |
1235 |
<xsl:attribute name="authority"> |
1236 |
<xsl:text>aat</xsl:text> |
1237 |
</xsl:attribute> |
1238 |
</xsl:when> |
1239 |
<xsl:when |
1240 |
test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='s'"> |
1241 |
<xsl:attribute name="authority">sears</xsl:attribute> |
1242 |
</xsl:when> |
1243 |
<xsl:when |
1244 |
test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='v'"> |
1245 |
<xsl:attribute name="authority">rvm</xsl:attribute> |
1246 |
</xsl:when> |
1247 |
<xsl:when |
1248 |
test="100 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 155 and $controlField008-11='z'"> |
1249 |
<xsl:attribute name="authority"> |
1250 |
<xsl:value-of |
1251 |
select="../marc:datafield[ancestor-or-self::marc:datafield/@tag=040]/marc:subfield[@code='f']" |
1252 |
/> |
1253 |
</xsl:attribute> |
1254 |
</xsl:when> |
1255 |
<xsl:when |
1256 |
test="(ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130) and $controlField008-11='a' and $controlField008-14='a'"> |
1257 |
<xsl:attribute name="authority"> |
1258 |
<xsl:text>naf</xsl:text> |
1259 |
</xsl:attribute> |
1260 |
</xsl:when> |
1261 |
<xsl:when |
1262 |
test="(ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130) and $controlField008-11='a' and $controlField008-14='b'"> |
1263 |
<xsl:attribute name="authority"> |
1264 |
<xsl:text>lcsh</xsl:text> |
1265 |
</xsl:attribute> |
1266 |
</xsl:when> |
1267 |
<xsl:when |
1268 |
test="(ancestor-or-self::marc:datafield/@tag=111 or ancestor-or-self::marc:datafield/@tag=130) and $controlField008-11='k' "> |
1269 |
<xsl:attribute name="authority"> |
1270 |
<xsl:text>lacnaf</xsl:text> |
1271 |
</xsl:attribute> |
1272 |
</xsl:when> |
1273 |
<xsl:when |
1274 |
test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='a' "> |
1275 |
<xsl:attribute name="authority"> |
1276 |
<xsl:text>lcsh</xsl:text> |
1277 |
</xsl:attribute> |
1278 |
</xsl:when> |
1279 |
<xsl:when |
1280 |
test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='a' "> |
1281 |
<xsl:attribute name="authority"> |
1282 |
<xsl:text>lcsh</xsl:text> |
1283 |
</xsl:attribute> |
1284 |
</xsl:when> |
1285 |
<xsl:when |
1286 |
test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='c' "> |
1287 |
<xsl:attribute name="authority"> |
1288 |
<xsl:text>mesh</xsl:text> |
1289 |
</xsl:attribute> |
1290 |
</xsl:when> |
1291 |
<xsl:when |
1292 |
test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='d' "> |
1293 |
<xsl:attribute name="authority"> |
1294 |
<xsl:text>nal</xsl:text> |
1295 |
</xsl:attribute> |
1296 |
</xsl:when> |
1297 |
<xsl:when |
1298 |
test="(ancestor-or-self::marc:datafield/@tag=148 or ancestor-or-self::marc:datafield/@tag=150 or ancestor-or-self::marc:datafield/@tag=155) and $controlField008-11='k' "> |
1299 |
<xsl:attribute name="authority"> |
1300 |
<xsl:text>cash</xsl:text> |
1301 |
</xsl:attribute> |
1302 |
</xsl:when> |
1303 |
<xsl:when |
1304 |
test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='a' and $controlField008-14='a'"> |
1305 |
<xsl:attribute name="authority"> |
1306 |
<xsl:text>naf</xsl:text> |
1307 |
</xsl:attribute> |
1308 |
</xsl:when> |
1309 |
<xsl:when |
1310 |
test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='a' and $controlField008-14='b'"> |
1311 |
<xsl:attribute name="authority">lcsh</xsl:attribute> |
1312 |
</xsl:when> |
1313 |
<xsl:when |
1314 |
test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='k' and $controlField008-14='a'"> |
1315 |
<xsl:attribute name="authority">lacnaf</xsl:attribute> |
1316 |
</xsl:when> |
1317 |
<xsl:when |
1318 |
test="ancestor-or-self::marc:datafield/@tag=151 and $controlField008-11='k' and $controlField008-14='b'"> |
1319 |
<xsl:attribute name="authority">cash</xsl:attribute> |
1320 |
</xsl:when> |
1321 |
<xsl:when |
1322 |
test="(..//ancestor-or-self::marc:datafield/@tag=180 or ..//ancestor-or-self::marc:datafield/@tag=181 or ..//ancestor-or-self::marc:datafield/@tag=182 or ..//ancestor-or-self::marc:datafield/@tag=185) and $controlField008-11='a'"> |
1323 |
<xsl:attribute name="authority">lcsh</xsl:attribute> |
1324 |
</xsl:when> |
1325 |
<xsl:when |
1326 |
test="ancestor-or-self::marc:datafield/@tag=700 and (@ind1='0' or @ind1='1') and @ind2='0'"> |
1327 |
<xsl:attribute name="authority">naf</xsl:attribute> |
1328 |
</xsl:when> |
1329 |
<xsl:when |
1330 |
test="ancestor-or-self::marc:datafield/@tag=700 and (@ind1='0' or @ind1='1') and @ind2='5'"> |
1331 |
<xsl:attribute name="authority">lacnaf</xsl:attribute> |
1332 |
</xsl:when> |
1333 |
<xsl:when test="ancestor-or-self::marc:datafield/@tag=700 and @ind1='3' and @ind2='0'"> |
1334 |
<xsl:attribute name="authority">lcsh</xsl:attribute> |
1335 |
</xsl:when> |
1336 |
<xsl:when test="ancestor-or-self::marc:datafield/@tag=700 and @ind1='3' and @ind2='5'"> |
1337 |
<xsl:attribute name="authority">cash</xsl:attribute> |
1338 |
</xsl:when> |
1339 |
<xsl:when |
1340 |
test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='1'"> |
1341 |
<xsl:attribute name="authority">lcshcl</xsl:attribute> |
1342 |
</xsl:when> |
1343 |
<xsl:when |
1344 |
test="(ancestor-or-self::marc:datafield/@tag=700 or ancestor-or-self::marc:datafield/@tag=710 or ancestor-or-self::marc:datafield/@tag=711 or ancestor-or-self::marc:datafield/@tag=730 or ancestor-or-self::marc:datafield/@tag=751) and @ind2='2'"> |
1345 |
<xsl:attribute name="authority">nlmnaf</xsl:attribute> |
1346 |
</xsl:when> |
1347 |
<xsl:when |
1348 |
test="(ancestor-or-self::marc:datafield/@tag=700 or ancestor-or-self::marc:datafield/@tag=710 or ancestor-or-self::marc:datafield/@tag=711 or ancestor-or-self::marc:datafield/@tag=730 or ancestor-or-self::marc:datafield/@tag=751) and @ind2='3'"> |
1349 |
<xsl:attribute name="authority">nalnaf</xsl:attribute> |
1350 |
</xsl:when> |
1351 |
<xsl:when |
1352 |
test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='6'"> |
1353 |
<xsl:attribute name="authority">rvm</xsl:attribute> |
1354 |
</xsl:when> |
1355 |
<xsl:when |
1356 |
test="(700 <= ancestor-or-self::marc:datafield/@tag and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='7'"> |
1357 |
<xsl:attribute name="authority"> |
1358 |
<xsl:value-of select="marc:subfield[@code='2']"/> |
1359 |
</xsl:attribute> |
1360 |
</xsl:when> |
1361 |
<xsl:when |
1362 |
test="(ancestor-or-self::marc:datafield/@tag=710 or ancestor-or-self::marc:datafield/@tag=711 or ancestor-or-self::marc:datafield/@tag=730 or ancestor-or-self::marc:datafield/@tag=751) and @ind2='5'"> |
1363 |
<xsl:attribute name="authority">lacnaf</xsl:attribute> |
1364 |
</xsl:when> |
1365 |
<xsl:when |
1366 |
test="(ancestor-or-self::marc:datafield/@tag=710 or ancestor-or-self::marc:datafield/@tag=711 or ancestor-or-self::marc:datafield/@tag=730 or ancestor-or-self::marc:datafield/@tag=751) and @ind2='0'"> |
1367 |
<xsl:attribute name="authority">naf</xsl:attribute> |
1368 |
</xsl:when> |
1369 |
<xsl:when |
1370 |
test="(ancestor-or-self::marc:datafield/@tag=748 or ancestor-or-self::marc:datafield/@tag=750 or ancestor-or-self::marc:datafield/@tag=755) and @ind2='0'"> |
1371 |
<xsl:attribute name="authority">lcsh</xsl:attribute> |
1372 |
</xsl:when> |
1373 |
<xsl:when |
1374 |
test="(ancestor-or-self::marc:datafield/@tag=748 or ancestor-or-self::marc:datafield/@tag=750 or ancestor-or-self::marc:datafield/@tag=755) and @ind2='2'"> |
1375 |
<xsl:attribute name="authority">mesh</xsl:attribute> |
1376 |
</xsl:when> |
1377 |
<xsl:when |
1378 |
test="(ancestor-or-self::marc:datafield/@tag=748 or ancestor-or-self::marc:datafield/@tag=750 or ancestor-or-self::marc:datafield/@tag=755) and @ind2='3'"> |
1379 |
<xsl:attribute name="authority">nal</xsl:attribute> |
1380 |
</xsl:when> |
1381 |
<xsl:when |
1382 |
test="(ancestor-or-self::marc:datafield/@tag=748 or ancestor-or-self::marc:datafield/@tag=750 or ancestor-or-self::marc:datafield/@tag=755) and @ind2='5'"> |
1383 |
<xsl:attribute name="authority">cash</xsl:attribute> |
1384 |
</xsl:when> |
1385 |
</xsl:choose> |
1386 |
</xsl:template> |
1387 |
<xsl:template match="*"/> |
1388 |
</xsl:stylesheet> |