Project

General

Profile

« Previous | Next » 

Revision 42765

fixed bug

View differences:

efg2edm.xslt
9 9
	<xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
10 10
	<xsl:template match="/">
11 11
		<xsl:choose>
12
			<xsl:when test="count(//efg:efgEntity/efg:avcreation//efg:title) &gt; 0">
12
			<xsl:when test="count(//efg:efgEntity/efg:avcreation//efg:title) &gt; 0 and count(//efg:isShownBy) &gt; 0">
13 13
				<oai:record xmlns:dri="http://www.driver-repository.eu/namespace/dri"
14 14
				            xmlns:oai="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
15 15
					<oai:header>
......
35 35
				</oai:record>
36 36
			</xsl:when>
37 37

  
38
			<xsl:when test="count(//efg:efgEntity/efg:nonavcreation//efg:title) &gt; 0">
38
			<xsl:when test="count(//efg:efgEntity/efg:nonavcreation//efg:title) &gt; 0 and count(//efg:isShownBy) &gt; 0">
39 39
				<oai:record xmlns:dri="http://www.driver-repository.eu/namespace/dri"
40 40
				            xmlns:oai="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
41 41
					<oai:header>
......
100 100
				         xmlns:ore="http://www.openarchives.org/ore/terms/"
101 101
				         xmlns:dcterms="http://purl.org/dc/terms/"
102 102
				         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
103
				         xsi:schemaLocation="http://www.w3.org/1999/02/22-rdf-syntax-ns# EDM-INTERNAL.xsd"
104
				>
103
				         xsi:schemaLocation="http://www.w3.org/1999/02/22-rdf-syntax-ns# EDM-INTERNAL.xsd">
105 104

  
106 105
					<xsl:variable name="efg_provider" select="//efg:provider"/>
107 106

  
108 107

  
109 108
					<ore:Aggregation>
110 109
						<xsl:attribute name="rdf:about">
111
							<xsl:value-of select="concat('AGGR::', $efg_provider, //efg:sourceID)"/>
110
							<xsl:value-of select="//efg:sourceID"/>
112 111
						</xsl:attribute>
113 112

  
114 113
						<edm:aggregatedCHO>
......
134 133

  
135 134
									<edm:aggregatedCHO>
136 135
										<xsl:attribute name="rdf:resource">
137
											<xsl:value-of select=".//efg:identifier"/>
136
											<xsl:value-of select=".//efg:isShownBy"/>
138 137
										</xsl:attribute>
139 138
									</edm:aggregatedCHO>
139
									<xsl:variable name="rightStatus">
140
										<xsl:value-of
141
												select="translate(normalize-space(.//efg:rightsStatus), $upper, $small)"
142
										/>
143
									</xsl:variable>
144
									<xsl:choose>
145
										<xsl:when test="$rightStatus = 'copyright protected'">
146
											<edm:rights>http://www.europeana.eu/rights/rr-f/</edm:rights>
147
										</xsl:when>
148
										<xsl:when test="$rightStatus = 'not copyright protected'">
149
											<edm:rights>http://creativecommons.org/publicdomain/mark/1.0/</edm:rights>
150
										</xsl:when>
151
										<xsl:when test="$rightStatus = 'public domain'">
152
											<edm:rights>http://creativecommons.org/publicdomain/mark/1.0/</edm:rights>
153
										</xsl:when>
154
										<xsl:when test="$rightStatus = 'orphan'">
155
											<edm:rights>http://www.europeana.eu/rights/orphan-work-eu/</edm:rights>
156
										</xsl:when>
157
										<xsl:when
158
												test="$rightStatus = 'no known copyright / orphan work'">
159
											<edm:rights>http://www.europeana.eu/rights/orphan-work-eu/</edm:rights>
160
										</xsl:when>
161
										<xsl:otherwise>
162
											<edm:rights>http://www.europeana.eu/rights/rr-f/</edm:rights>
163
										</xsl:otherwise>
164
									</xsl:choose>
165

  
140 166
									<dc:rights>
141 167
										<xsl:value-of select=".//efg:rightsHolder"/>
142 168
									</dc:rights>
169

  
143 170
									<xsl:choose>
144 171
										<xsl:when test="string-length($rightStatus) &gt; 0">
145 172
											<edm:rights>
......
157 184
											<xsl:value-of select="."/>
158 185
										</edm:isShownAt>
159 186
									</xsl:for-each>
160
									<xsl:for-each select="//efg:thumbnail">
161
										<edm:isShownBy>
162
											<xsl:value-of select="."/>
163
										</edm:isShownBy>
164
									</xsl:for-each>
165 187

  
188
									<xsl:choose>
189
										<xsl:when test="count(//efg:thumbnail) &gt; 0">
190
											<xsl:for-each select="//efg:thumbnail">
191
												<edm:object>
192
													<xsl:value-of select="."/>
193
												</edm:object>
194
											</xsl:for-each>
195
										</xsl:when>
196
										<xsl:otherwise>
197
											<xsl:for-each select="//efg:isShownBy">
198
												<edm:object>
199
													<xsl:value-of select="."/>
200
												</edm:object>
201
											</xsl:for-each>
202
										</xsl:otherwise>
203
									</xsl:choose>
166 204

  
205

  
167 206
								</xsl:when>
168 207
							</xsl:choose>
169 208

  
170 209
						</xsl:for-each>
171 210

  
172
						<xsl:for-each select="//efg:nonavManifestation">
211
						<xsl:for-each select="//efg:nonAVManifestation">
173 212
							<xsl:variable name="status">
174 213
								<xsl:value-of
175 214
										select="translate(normalize-space(.//efg:digitalFormat/efg:status), $upper, $small)"
......
186 225

  
187 226
									<edm:aggregatedCHO>
188 227
										<xsl:attribute name="rdf:resource">
189
											<xsl:value-of select=".//efg:identifier"/>
228
											<xsl:value-of select=".//efg:isShownBy"/>
190 229
										</xsl:attribute>
191 230
									</edm:aggregatedCHO>
192
									<dc:rights>
193
										<xsl:value-of select=".//efg:rightsHolder"/>
194
									</dc:rights>
231
									<xsl:variable name="rightStatus">
232
										<xsl:value-of
233
												select="translate(normalize-space(.//efg:rightsStatus), $upper, $small)"
234
										/>
235
									</xsl:variable>
195 236
									<xsl:choose>
196
										<xsl:when test="string-length($rightStatus) &gt; 0">
197
											<edm:rights>
198
												<xsl:value-of select="$status"/>
199
											</edm:rights>
237
										<xsl:when test="$rightStatus = 'copyright protected'">
238
											<edm:rights>http://www.europeana.eu/rights/rr-f/</edm:rights>
200 239
										</xsl:when>
240
										<xsl:when test="$rightStatus = 'not copyright protected'">
241
											<edm:rights>http://creativecommons.org/publicdomain/mark/1.0/</edm:rights>
242
										</xsl:when>
243
										<xsl:when test="$rightStatus = 'public domain'">
244
											<edm:rights>http://creativecommons.org/publicdomain/mark/1.0/</edm:rights>
245
										</xsl:when>
246
										<xsl:when test="$rightStatus = 'orphan'">
247
											<edm:rights>http://www.europeana.eu/rights/orphan-work-eu/</edm:rights>
248
										</xsl:when>
249
										<xsl:when
250
												test="$rightStatus = 'no known copyright / orphan work'">
251
											<edm:rights>http://www.europeana.eu/rights/orphan-work-eu/</edm:rights>
252
										</xsl:when>
253
										<xsl:otherwise>
254
											<edm:rights>http://www.europeana.eu/rights/rr-f/</edm:rights>
255
										</xsl:otherwise>
201 256
									</xsl:choose>
202 257
									<xsl:for-each select="//efg:isShownBy">
203 258
										<edm:isShownBy>
......
209 264
											<xsl:value-of select="."/>
210 265
										</edm:isShownAt>
211 266
									</xsl:for-each>
212
									<xsl:for-each select="//efg:thumbnail">
213
										<edm:isShownBy>
214
											<xsl:value-of select="."/>
215
										</edm:isShownBy>
216
									</xsl:for-each>
267
									<dc:rights>
268
										<xsl:value-of select=".//efg:rightsHolder"/>
269
									</dc:rights>
270
									<xsl:choose>
271
										<xsl:when test="count(//efg:thumbnail) &gt; 0">
272
											<xsl:for-each select="//efg:thumbnail">
273
												<edm:object>
274
													<xsl:value-of select="."/>
275
												</edm:object>
276
											</xsl:for-each>
277
										</xsl:when>
278
										<xsl:otherwise>
279
											<xsl:for-each select="//efg:isShownBy">
280
												<edm:object>
281
													<xsl:value-of select="."/>
282
												</edm:object>
283
											</xsl:for-each>
284
										</xsl:otherwise>
285
									</xsl:choose>
217 286

  
218 287

  
219 288
								</xsl:when>
......
232 301

  
233 302
					<edm:ProvidedCHO>
234 303
						<xsl:attribute name="rdf:about">
235
							<xsl:value-of select="//efg:avcreation/efg:recordSource/efg:sourceID"/>
304
							<xsl:value-of select="//efg:recordSource[1]/efg:sourceID"/>
236 305
						</xsl:attribute>
237 306
						<xsl:for-each select="//efg:sourceID">
238
							<dc:idenetifier>
307
							<dc:identifier>
239 308
								<xsl:value-of select="."/>
240
							</dc:idenetifier>
309
							</dc:identifier>
241 310
						</xsl:for-each>
242 311
						<xsl:for-each select="//efg:language">
243 312
							<dc:language>
......
245 314
							</dc:language>
246 315
						</xsl:for-each>
247 316

  
248
						<xsl:for-each select="//efg:relPerson">
317
						<xsl:for-each select="//efg:avcreation//efg:relPerson">
249 318
							<xsl:variable name="person_type"
250 319
							              select="translate(normalize-space(./efg:type), $upper, $small)"/>
251 320
							<xsl:choose>
......
272 341
								</xsl:when>
273 342
							</xsl:choose>
274 343
						</xsl:for-each>
344

  
345

  
346
						<xsl:for-each select="//efg:nonavcreation//efg:relPerson">
347
							<xsl:variable name="person_type"
348
							              select="translate(normalize-space(./efg:type), $upper, $small)"/>
349
							<xsl:choose>
350
								<xsl:when
351
										test="
352
									$person_type = 'creator' or $person_type = 'designer' or $person_type = 'photographer'
353
									or $person_type = 'lithographer' or $person_type = 'book designer' or $person_type = 'author'
354
									or $person_type = 'lyrics' or $person_type = 'composer' or $person_type = 'illustrator' or $person_type = 'artist'
355
									or $person_type = 'manufacturer' or $person_type = 'attributed to' or $person_type = 'stills photographer'">
356
									<dc:creator>
357
										<xsl:value-of select="./efg:name"/>
358
									</dc:creator>
359
								</xsl:when>
360
							</xsl:choose>
361
						</xsl:for-each>
362

  
363

  
275 364
						<xsl:for-each select="//efg:relCorporate">
276 365
							<xsl:variable name="corporate_type"
277 366
							              select="translate(normalize-space(./efg:type), $upper, $small)"/>
......
335 424
						</xsl:for-each>
336 425
						<xsl:for-each select="//efg:nonavcreation//efg:keywords">
337 426
							<dcterms:subject>
427
								<xsl:attribute name="xml:lang">
428
									<xsl:value-of select="@lang"/>
429
								</xsl:attribute>
338 430
								<xsl:value-of select="./efg:term"/>
339 431
							</dcterms:subject>
340 432
						</xsl:for-each>
341 433

  
342
						<xsl:for-each select="//efg:avcreation//efg:title">
343
							<xsl:variable name="title_rel"
344
							              select="translate(normalize-space(./efg:relation), $upper, $small)"/>
345
							<xsl:choose>
346
								<xsl:when test="$title_rel = 'original title'">
347
									<dc:title>
348
										<xsl:attribute name="xml:lang">
349
											<xsl:value-of select="@lang"/>
350
										</xsl:attribute>
351
										<xsl:value-of select="./efg:text"/>
352
									</dc:title>
353
								</xsl:when>
354 434

  
355
								<xsl:otherwise>
356
									<dcterms:alternative>
357
										<xsl:attribute name="xml:lang">
358
											<xsl:value-of select="@lang"/>
359
										</xsl:attribute>
360
										<xsl:value-of select="./efg:text"/>
361
									</dcterms:alternative>
362
								</xsl:otherwise>
363
							</xsl:choose>
364
						</xsl:for-each>
435
						<xsl:choose>
436
							<xsl:when test="count(//efg:avManifestation//efg:title) &gt; 0">
437
								<xsl:for-each select="//efg:avManifestation//efg:title">
438
									<xsl:variable name="title_rel"
439
									              select="translate(normalize-space(./efg:relation), $upper, $small)"/>
440
									<xsl:choose>
441
										<xsl:when test="$title_rel = 'original title'">
442
											<dc:title>
443
												<xsl:attribute name="xml:lang">
444
													<xsl:value-of select="@lang"/>
445
												</xsl:attribute>
446
												<xsl:value-of select="./efg:text"/>
447
											</dc:title>
448
										</xsl:when>
449
										<xsl:when test="$title_rel = 'main title'">
450
											<dc:title>
451
												<xsl:attribute name="xml:lang">
452
													<xsl:value-of select="@lang"/>
453
												</xsl:attribute>
454
												<xsl:value-of select="./efg:text"/>
455
											</dc:title>
456
										</xsl:when>
457
										<xsl:otherwise>
458
											<dcterms:alternative>
459
												<xsl:attribute name="xml:lang">
460
													<xsl:value-of select="@lang"/>
461
												</xsl:attribute>
462
												<xsl:value-of select="./efg:text"/>
463
											</dcterms:alternative>
464
										</xsl:otherwise>
465
									</xsl:choose>
466
								</xsl:for-each>
467
							</xsl:when>
468
							<xsl:otherwise>
469
								<xsl:for-each select="//efg:avcreation//efg:title">
470
									<xsl:variable name="title_rel"
471
									              select="translate(normalize-space(./efg:relation), $upper, $small)"/>
472
									<xsl:choose>
473
										<xsl:when test="$title_rel = 'original title'">
474
											<dc:title>
475
												<xsl:attribute name="xml:lang">
476
													<xsl:value-of select="@lang"/>
477
												</xsl:attribute>
478
												<xsl:value-of select="./efg:text"/>
479
											</dc:title>
480
										</xsl:when>
481
										<xsl:when test="$title_rel = 'main title'">
482
											<dc:title>
483
												<xsl:attribute name="xml:lang">
484
													<xsl:value-of select="@lang"/>
485
												</xsl:attribute>
486
												<xsl:value-of select="./efg:text"/>
487
											</dc:title>
488
										</xsl:when>
489
										<xsl:otherwise>
490
											<dcterms:alternative>
491
												<xsl:attribute name="xml:lang">
492
													<xsl:value-of select="@lang"/>
493
												</xsl:attribute>
494
												<xsl:value-of select="./efg:text"/>
495
											</dcterms:alternative>
496
										</xsl:otherwise>
497
									</xsl:choose>
498
								</xsl:for-each>
499
							</xsl:otherwise>
500
						</xsl:choose>
365 501

  
502
						<xsl:choose>
503
							<xsl:when test="count(//efg:nonAVManifestation//efg:title) &gt; 0">
366 504

  
367
						<xsl:for-each select="//efg:avcreation//efg:title">
368
							<xsl:variable name="title_rel"
369
							              select="translate(normalize-space(./efg:relation), $upper, $small)"/>
370
							<xsl:choose>
371
								<xsl:when test="$title_rel = 'main title'">
372
									<dc:title>
373
										<xsl:attribute name="xml:lang">
374
											<xsl:value-of select="@lang"/>
375
										</xsl:attribute>
376
										<xsl:value-of select="./efg:text"/>
377
									</dc:title>
378
								</xsl:when>
505
								<xsl:for-each select="//efg:nonAVManifestation//efg:title">
506
									<xsl:variable name="title_rel"
507
									              select="translate(normalize-space(./efg:relation), $upper, $small)"/>
508
									<xsl:choose>
509
										<xsl:when test="$title_rel = 'original title'">
510
											<dc:title>
511
												<xsl:attribute name="xml:lang">
512
													<xsl:value-of select="@lang"/>
513
												</xsl:attribute>
514
												<xsl:value-of select="./efg:text"/>
515
											</dc:title>
516
										</xsl:when>
517
										<xsl:when test="$title_rel = 'main title'">
518
											<dc:title>
519
												<xsl:attribute name="xml:lang">
520
													<xsl:value-of select="@lang"/>
521
												</xsl:attribute>
522
												<xsl:value-of select="./efg:text"/>
523
											</dc:title>
524
										</xsl:when>
525
										<xsl:otherwise>
526
											<dcterms:alternative>
527
												<xsl:attribute name="xml:lang">
528
													<xsl:value-of select="@lang"/>
529
												</xsl:attribute>
530
												<xsl:value-of select="./efg:text"/>
531
											</dcterms:alternative>
532
										</xsl:otherwise>
533
									</xsl:choose>
534
								</xsl:for-each>
535
							</xsl:when>
536
							<xsl:otherwise>
379 537

  
380
								<xsl:otherwise>
381
									<dcterms:alternative>
382
										<xsl:attribute name="xml:lang">
383
											<xsl:value-of select="@lang"/>
384
										</xsl:attribute>
385
										<xsl:value-of select="./efg:text"/>
386
									</dcterms:alternative>
387
								</xsl:otherwise>
388
							</xsl:choose>
389
						</xsl:for-each>
538
								<xsl:for-each select="//efg:nonavcreation//efg:title">
539
									<xsl:variable name="title_rel"
540
									              select="translate(normalize-space(./efg:relation), $upper, $small)"/>
541
									<xsl:choose>
542
										<xsl:when test="$title_rel = 'original title'">
543
											<dc:title>
544
												<xsl:attribute name="xml:lang">
545
													<xsl:value-of select="@lang"/>
546
												</xsl:attribute>
547
												<xsl:value-of select="./efg:text"/>
548
											</dc:title>
549
										</xsl:when>
550
										<xsl:when test="$title_rel = 'main title'">
551
											<dc:title>
552
												<xsl:attribute name="xml:lang">
553
													<xsl:value-of select="@lang"/>
554
												</xsl:attribute>
555
												<xsl:value-of select="./efg:text"/>
556
											</dc:title>
557
										</xsl:when>
558
										<xsl:otherwise>
559
											<dcterms:alternative>
560
												<xsl:attribute name="xml:lang">
561
													<xsl:value-of select="@lang"/>
562
												</xsl:attribute>
563
												<xsl:value-of select="./efg:text"/>
564
											</dcterms:alternative>
565
										</xsl:otherwise>
566
									</xsl:choose>
567
								</xsl:for-each>
390 568

  
569
							</xsl:otherwise>
570
						</xsl:choose>
571

  
572

  
391 573
						<xsl:for-each select="//efg:specificType">
392 574
							<xsl:choose>
393 575
								<xsl:when
......
411 593
							</dcterms:created>
412 594
						</xsl:for-each>
413 595

  
414
						<xsl:for-each select="//efg:nonavManifestation/efg:dateCreated">
596
						<xsl:for-each select="//efg:nonAVManifestation/efg:dateCreated">
415 597
							<dcterms:created>
416 598
								<xsl:value-of select="."/>
417 599
							</dcterms:created>
......
422 604
							</dc:format>
423 605
						</xsl:for-each>
424 606
						<xsl:for-each
425
								select="//efg:nonavManifestation/efg:date[./efg:type = 'issued']">
607
								select="//efg:nonAVManifestation/efg:date[./efg:type = 'issued']">
426 608
							<dcterms:issued>
427 609
								<xsl:value-of select="."/>
428 610
							</dcterms:issued>
......
472 654
							<xsl:when test="$status != 'born digital'">
473 655
								<edm:WebResource>
474 656
									<xsl:attribute name="rdf:about">
475
										<xsl:value-of select=".//efg:identifier"/>
657
										<xsl:value-of select=".//efg:isShownBy"/>
476 658
									</xsl:attribute>
477 659
									<dc:format>
478 660
										<xsl:value-of select="$status"/>
......
515 697
					</xsl:for-each>
516 698

  
517 699

  
518
					<xsl:for-each select="//efg:nonavManifestation">
700
					<xsl:for-each select="//efg:nonAVManifestation">
519 701
						<xsl:variable name="status">
520 702
							<xsl:value-of
521 703
									select="translate(normalize-space(.//efg:digitalFormat/efg:status), $upper, $small)"
......
526 708
							<xsl:when test="$status != 'born digital'">
527 709
								<edm:WebResource>
528 710
									<xsl:attribute name="rdf:about">
529
										<xsl:value-of select=".//efg:identifier"/>
711
										<xsl:value-of select=".//efg:isShownBy"/>
530 712
									</xsl:attribute>
531 713
									<dc:format>
532 714
										<xsl:value-of select="$status"/>
......
537 719
										</dcterms:extent>
538 720
									</xsl:for-each>
539 721
									<xsl:variable name="rightStatus">
540
										<xsl:value-of
541
												select="translate(normalize-space(.//efg:rightsStatus), $upper, $small)"
722
										<xsl:value-of select="translate(normalize-space(.//efg:rightsStatus), $upper, $small)"
542 723
										/>
543 724
									</xsl:variable>
544 725
									<xsl:choose>
......
565 746
								</edm:WebResource>
566 747
							</xsl:when>
567 748
						</xsl:choose>
568

  
569 749
					</xsl:for-each>
570

  
571

  
572 750
				</rdf:RDF>
573 751
			</metadata>
574 752
		</record>

Also available in: Unified diff