Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
3
xmlns:dri="http://www.driver-repository.eu/namespace/dri"
4
xmlns:oaf="http://namespace.openaire.eu/oaf"
5
xmlns:dc="http://purl.org/dc/elements/1.1/">
6
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
7

    
8
<xsl:template match = "/">
9
<result type ="result">
10
	<xsl:apply-templates select="//header"/>
11
	<xsl:apply-templates select="//oaf:datasource"/>
12
	<xsl:apply-templates select="//rel"/>
13
</result>
14
</xsl:template>
15

    
16

    
17
<!-- HEADER
18
fields in header:
19
1. dri:objIdentifier 		[objIdentifier]
20
2. dri:repositoryId			X
21
3. dri:dateOfCollection		X
22
-->
23
<xsl:template match = "header">
24
	<field name="datasourceId" multiplicity="false" indexId="objIdentifier" label="Object id">
25
		<xsl:attribute name="value">
26
			<xsl:value-of select='./dri:objIdentifier'/>
27
		</xsl:attribute>
28
	</field>
29
	<!--<field name="repositoryId" multiplicity="false" indexId="???" label="???">
30
		<xsl:attribute name="value">
31
			<xsl:value-of select='./dri:repositoryId'/>
32
		</xsl:attribute>
33
	</field>-->
34
	<!--<field name="dateOfCollection" multiplicity="false" indexId="???" label="???">
35
		<xsl:attribute name="value">
36
			<xsl:value-of select='./dri:dateOfCollection'/>
37
		</xsl:attribute>
38
	</field>-->
39
</xsl:template>
40

    
41

    
42
<xsl:template match = "oaf:datasource">
43

    
44
	<xsl:for-each select = "./officialname">		
45
		<field name="officialname" indexId = "datasourceofficialname" multiplicity="true" label="Official name">
46
			<xsl:attribute name="value">
47
				<xsl:value-of select='.'/>
48
			</xsl:attribute>
49
		</field>
50
	</xsl:for-each>
51

    
52
	<xsl:for-each select = "./englishname">
53
		<field name="englishname" indexId = "datasourceenglishname" multiplicity="true" label="English name">
54
			<xsl:attribute name="value">
55
				<xsl:value-of select='.'/>
56
			</xsl:attribute>
57
		</field>
58
	</xsl:for-each>
59

    
60
	<xsl:for-each select = "./websiteurl">
61
		<field name="websiteurl" indexId = "datasourcewebsiteurl" multiplicity="true" label="Website url">
62
			<xsl:attribute name="value">
63
				<xsl:value-of select='.'/>
64
			</xsl:attribute>
65
		</field>
66
	</xsl:for-each>
67

    
68
	<xsl:for-each select = "./logourl">
69
		<field name="logourl" indexId = "datasourcelogourl" multiplicity="true" label="Logo url">
70
			<xsl:attribute name="value">
71
				<xsl:value-of select='.'/>
72
			</xsl:attribute>
73
		</field>
74
	</xsl:for-each>
75

    
76
	<xsl:for-each select = "./contactemail">
77
		<field name="contactemail" indexId = "datasourcecontactemail" multiplicity="true" label="Contact e-mail">
78
			<xsl:attribute name="value">
79
				<xsl:value-of select='.'/>
80
			</xsl:attribute>
81
		</field>
82
	</xsl:for-each>
83
	
84
	<xsl:for-each select = "./oddescription">
85
		<field name="oddescription" indexId = "datasourceoddescription" multiplicity="true" label="Description">
86
			<xsl:attribute name="value">
87
				<xsl:value-of select='.'/>
88
			</xsl:attribute>
89
		</field>
90
	</xsl:for-each>
91
	
92
	<xsl:for-each select = "./odnumberofitems">
93
		<field name="odnumberofitems" indexId = "datasourceodnumberofitems" multiplicity="true" label="number of items">
94
			<xsl:attribute name="value">
95
				<xsl:value-of select='.'/>
96
			</xsl:attribute>
97
		</field>
98
	</xsl:for-each>
99
	
100
	<xsl:for-each select = "./odnumberofitemsdate">
101
		<field name="odnumberofitemsdate" indexId = "datasourceodnumberofitemsdate" multiplicity="true" label="date">
102
			<xsl:attribute name="value">
103
				<xsl:value-of select='.'/>
104
			</xsl:attribute>
105
		</field>
106
	</xsl:for-each>
107
	
108
	<xsl:for-each select = "./odsubjects">
109
		<field name="odsubjects" indexId = "datasourceodsubjects" multiplicity="true" label="Subjects">
110
			<xsl:attribute name="value">
111
				<xsl:value-of select='.'/>
112
			</xsl:attribute>
113
		</field>
114
	</xsl:for-each>	
115
	
116
	<xsl:for-each select = "./odlanguages">
117
		<field name="odlanguages" indexId = "datasourceodlanguages" multiplicity="true" label="Languages">
118
			<xsl:attribute name="value">
119
				<xsl:value-of select='.'/>
120
			</xsl:attribute>
121
		</field>
122
	</xsl:for-each>	
123

    
124
	<xsl:for-each select = "./odcontenttypes">
125
		<field name="odcontenttypes" indexId = "datasourceodcontenttypes" multiplicity="true" label="Content">
126
			<xsl:attribute name="value">
127
				<xsl:value-of select='.'/>
128
			</xsl:attribute>
129
		</field>
130
	</xsl:for-each>	
131

    
132
	<xsl:for-each select = "./datasourcetype">
133
		<field name="datasourcetypeid" indexId = "datasourcetypeid" multiplicity="true" label="Datasource type"> 
134
			<xsl:attribute name="value">
135
				<xsl:value-of select='./@classid'/>
136
			</xsl:attribute>
137
		</field>
138
	
139
		<field name="datasourcetypename" indexId = "datasourcetypename" multiplicity="true" label="Datasource type"> 
140
			<xsl:attribute name="value">
141
				<xsl:value-of select='./@classname'/>
142
			</xsl:attribute>
143
		</field>
144
	</xsl:for-each>
145
	
146
	<xsl:for-each select = "./datasourcetypeui">
147
		<field name="datasourcetypeuiid" indexId = "datasourcetypeui" multiplicity="true" label="Datasource type"> 
148
			<xsl:attribute name="value">
149
				<xsl:value-of select='./@classid'/>
150
			</xsl:attribute>
151
		</field>
152
	</xsl:for-each>
153

    
154
	<xsl:for-each select = "./openairecompatibility">
155
		<field name="openairecompatibilityid" indexId = "datasourcecompatibilityid" multiplicity="true" label="openaire compatibility"> 
156
			<xsl:attribute name="value">
157
				<xsl:value-of select='./@classid'/>
158
			</xsl:attribute>
159
		</field>
160

    
161
		<field name="openairecompatibilityname" indexId = "datasourcecompatibilityname" multiplicity="true" label="openaire compatibility"> 
162
			<xsl:attribute name="value">
163
				<xsl:value-of select='./@classname'/>
164
			</xsl:attribute>
165
		</field>
166
	</xsl:for-each>
167
	
168
	<xsl:for-each select = "./accessinfopackage">
169
		<field name="accessinfopackage" indexId = "" multiplicity="true" label="OAI-PMH"> 
170
			<xsl:attribute name="value">
171
				<xsl:value-of select='.'/>
172
			</xsl:attribute>
173
		</field>
174
	</xsl:for-each>
175
	
176
	<xsl:for-each select = "./namespaceprefix">
177
		<field name="namespaceprefix" indexId = "" multiplicity="true" label="namespace prefix"> 
178
			<xsl:attribute name="value">
179
				<xsl:value-of select='.'/>
180
			</xsl:attribute>
181
		</field>
182
	</xsl:for-each>	
183

    
184
	<xsl:for-each select = "./odpolicies">
185
		<field name="odpolicies" indexId = "" multiplicity="true" label="Policies"> 
186
			<xsl:attribute name="value">
187
				<xsl:value-of select='.'/>
188
			</xsl:attribute>
189
		</field>
190
	</xsl:for-each>
191
	
192
	<xsl:for-each select = "./pid">
193
		<field name="pidid" indexId = "pidclassid" multiplicity="true" label="Pid">
194
			<xsl:attribute name="value">
195
				<xsl:value-of select='./@classid'/>
196
			</xsl:attribute>
197
		</field>
198
		<field name="pidname" indexId = "pidclassname" multiplicity="true" label="Pid">
199
			<xsl:attribute name="value">
200
				<xsl:value-of select='./@classname'/>
201
			</xsl:attribute>
202
		</field>
203
	</xsl:for-each>
204

    
205
	<xsl:for-each select = "./aggregatortype">
206
		<field name="aggregatortypeid" indexId = "" multiplicity="true" label="Pid">
207
			<xsl:attribute name="value">
208
				<xsl:value-of select='./@classid'/>
209
			</xsl:attribute>
210
		</field>
211
		<field name="aggregatortypename" indexId = "" multiplicity="true" label="Pid">
212
			<xsl:attribute name="value">
213
				<xsl:value-of select='./@classname'/>
214
			</xsl:attribute>
215
		</field>
216
	</xsl:for-each>
217

    
218
	<field name="latitude" indexId="" multiplicity="false" label="latitutde">
219
		<xsl:attribute name="value">
220
				<xsl:value-of select='./latitude'/>
221
			</xsl:attribute>
222
	</field>
223

    
224
	<field name="longitude" indexId="" multiplicity="false" label="longitude">
225
		<xsl:attribute name="value">
226
				<xsl:value-of select='./longitude'/>
227
			</xsl:attribute>
228
	</field>	
229

    
230
	<field name="dateofcollection" indexId="" multiplicity="false" label="date of collection">
231
		<xsl:attribute name="value">
232
				<xsl:value-of select='./dateofcollection'/>
233
			</xsl:attribute>
234
	</field>
235

    
236
</xsl:template>
237

    
238
<!--  RELS  
239
1. person
240
2. project
241
3. organisation 
242
4. result  
243
5. datasource TODO
244
-->
245
<xsl:template match="rel">
246
<!--PERSON-->
247
	<xsl:if test="./to/@type='person'">
248
		<field name="author" indexId = "objIdentifier"  multiplicity="true">
249
			<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
250
			<field name = "personId" indexId ="objIdentifier" multiplicity="false" label="Person id">		
251
				<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
252
			</field>
253
			<field name = "role" indexId ="" multiplicity="false" label="role">		
254
				<xsl:attribute name="value"><xsl:value-of select='./to/@class'/> </xsl:attribute>
255
			</field>
256
			<field name = "fullname" indexId ="personfullname" multiplicity="false" label="Person fullname">		
257
				<xsl:attribute name="value"><xsl:value-of select='./fullname'/> </xsl:attribute>
258
			</field>
259
			<field name = "ranking" indexId ="" multiplicity="false" label="ranking">		
260
				<xsl:attribute name="value"><xsl:value-of select='./ranking'/> </xsl:attribute>
261
			</field>
262
		</field>
263
	</xsl:if>
264
<!--PROJECT-->
265
	<xsl:if test="./to/@type='project'">	
266
		<field name="project" indexId = "objIdentifier" multiplicity="true">
267
			<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
268
			<field name = "projectId" indexId ="objIdentifier" multiplicity="false" label="Project id">		
269
				<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
270
			</field>
271
			<field name = "role" indexId ="" multiplicity="false" label="role">		
272
				<xsl:attribute name="value"><xsl:value-of select='./to/@class'/> </xsl:attribute>
273
			</field>
274
			<field name = "projectcode" indexId ="projectcode" multiplicity="false" label="Project(s)">		
275
				<xsl:attribute name="value"><xsl:value-of select='./code'/> </xsl:attribute>
276
			</field>	
277
			<field name = "projectacronym" indexId ="projectacronym" multiplicity="false" label="Project(s)">		
278
				<xsl:attribute name="value"><xsl:value-of select='./acronym'/> </xsl:attribute>
279
			</field>
280
			<field name = "projecttitle" indexId ="projecttitle" multiplicity="false" label="Project title">		
281
				<xsl:attribute name="value"><xsl:value-of select='./title'/> </xsl:attribute>
282
			</field>
283
			<field name = "projectcontracttypeid" indexId ="projectcontracttypeid" multiplicity="false" label="Project contract type id">		
284
				<xsl:attribute name="value"><xsl:value-of select='./contracttype/@classid'/> </xsl:attribute>
285
			</field>
286
			<field name = "projectcontracttypename" indexId ="projectcontracttypename" multiplicity="false" label="Project contract type name">		
287
				<xsl:attribute name="value"><xsl:value-of select='./contracttype/@classname'/> </xsl:attribute>
288
			</field>
289
		</field>
290
	</xsl:if>
291
<!--RESULT-->
292
	<xsl:if test="./to/@type='result'">
293
		<field name="result" indexId = "objIdentifier"  multiplicity="true">
294
			<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
295
			<field name = "resultid" indexId ="objIdentifier" multiplicity="false" label="Result id">		
296
				<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
297
			</field>
298
			<field name = "title" indexId = "resulttitle" multiplicity = "false" label = "Title">
299
				<xsl:attribute name="value">
300
					<xsl:value-of select="./title"/>
301
				</xsl:attribute>
302
			</field>
303
			<field name = "dateofacceptance" indexId = "resultdateofacceptance" multiplicity = "false" label = "Date of acceptance">
304
				<xsl:attribute name="value">
305
					<xsl:value-of select="./dateofacceptance"/>
306
				</xsl:attribute>
307
			</field>
308
			<field name = "resulttypeid" indexId = "resulttypeid" multiplicity = "false" label = "type id">
309
				<xsl:attribute name="value">
310
					<xsl:value-of select="./resulttype/@classid"/>
311
				</xsl:attribute>
312
			</field>
313
			<field name = "resulttypename" indexId = "resulttypename" multiplicity = "false" label = "type name">
314
				<xsl:attribute name="value">
315
					<xsl:value-of select="./resulttype/@classname"/>
316
				</xsl:attribute>
317
			</field>
318
		</field>
319
	</xsl:if>	
320
<!--ORGANIZATION-->
321
	<xsl:if test="./to/@type='organization'">
322
		<field name="organization" indexId = "objIdentifier"  multiplicity="true">
323
			<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
324
			<field name = "organizationid" indexId ="objIdentifier" multiplicity="false" label="Organization id">		
325
				<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
326
			</field>
327
			<field name = "role" indexId ="" multiplicity="false" label="role">		
328
				<xsl:attribute name="value"><xsl:value-of select='./to/@class'/> </xsl:attribute>
329
			</field>
330
			<field name = "legalshortname" indexId ="organizationlegalshortname" multiplicity="false" label="Organization short name">		
331
				<xsl:attribute name="value"><xsl:value-of select='./legalshortname'/> </xsl:attribute>
332
			</field>
333
			<field name = "legalname" indexId ="organizationlegalname" multiplicity="false" label="Organization name">		
334
				<xsl:attribute name="value"><xsl:value-of select='./legalname'/> </xsl:attribute>
335
			</field>
336
			<field name = "websiteurl" indexId ="organizationwebsiteurl" multiplicity="false" label="Website">		
337
				<xsl:attribute name="value"><xsl:value-of select='./websiteurl'/> </xsl:attribute>
338
			</field>
339
			<field name = "countryid" indexId ="organizationcountryid" multiplicity="false" label="Country code">		
340
				<xsl:attribute name="value"><xsl:value-of select='./country/@classid'/> </xsl:attribute>
341
			</field>
342
			<field name = "countryname" indexId ="organizationcountryname" multiplicity="false" label="Country">		
343
				<xsl:attribute name="value"><xsl:value-of select='./country/@classname'/> </xsl:attribute>
344
			</field>
345
			<field name = "participantnumber" indexId ="" multiplicity="false" label="Participant Number">		
346
				<xsl:attribute name="value"><xsl:value-of select='./participantnumber'/> </xsl:attribute>
347
			</field>
348
			<field name = "contactperson" indexId ="" multiplicity="false" label="Contact Person">		
349
				<xsl:attribute name="value"><xsl:value-of select='./contactperson'/> </xsl:attribute>
350
			</field>
351
		</field>
352
	</xsl:if>
353

    
354
</xsl:template>
355

    
356
</xsl:stylesheet>
357

    
358

    
(6-6/23)