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
<xsl:template match="/">
8
<record type="person">
9
	<xsl:apply-templates select="//header"/>
10
	<xsl:apply-templates select="//oaf:person"/>
11
	<xsl:apply-templates select="//rel"/>
12
</record>
13
</xsl:template>
14

    
15
<xsl:template match="header">
16
	<field name="personId" multiplicity="false" indexId="objIdentifier" label="Object id">
17
		<xsl:attribute name="value">
18
			<xsl:value-of select='./dri:objIdentifier'/>
19
		</xsl:attribute>
20
	</field>	
21
</xsl:template>
22

    
23

    
24
<xsl:template match="oaf:person">
25

    
26
	<field name="firstname" multiplicity="false" indexId="personfirstname" label="Firstname">
27
		<xsl:attribute name="value">
28
			<xsl:value-of select='./firstname'/>
29
		</xsl:attribute>
30
	</field>
31

    
32
	<field name="fullname" multiplicity="false" indexId="personfullname" label="Fullname">
33
		<xsl:attribute name="value">
34
			<xsl:value-of select='./fullname'/>
35
		</xsl:attribute>
36
	</field>
37

    
38
	<field name="secondnames" multiplicity="false" indexId="personsecondnames" label="Second names">
39
		<xsl:attribute name="value">
40
			<xsl:value-of select='./secondnames'/>
41
		</xsl:attribute>
42
	</field>
43

    
44
	<xsl:for-each select = "./fax">
45
		<field name="fax" indexId = "personfax" multiplicity="true" label="fax">
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 = "./phone">
53
		<field name="phone" indexId = "personphone" multiplicity="true" label="phone">
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 = "./email">
61
		<field name="email" indexId = "personemail" multiplicity="true" label="e-mail">
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 = "./pid">
69
		<field name="pidid" indexId = "pidclassid" multiplicity="true" label="Pid">
70
			<xsl:attribute name="value">
71
				<xsl:value-of select='./@classid'/>
72
			</xsl:attribute>
73
		</field>
74
		<field name="pidname" indexId = "pidclassname" multiplicity="true" label="Pid">
75
			<xsl:attribute name="value">
76
				<xsl:value-of select='./@classname'/>
77
			</xsl:attribute>
78
		</field>
79
	</xsl:for-each>
80

    
81
	<xsl:for-each select = "./collectedfrom">
82
		<field name="collectedfrom" indexId = "personcollectedfrom" multiplicity="true" label="Collected from">
83
			<xsl:attribute name="value">
84
				<xsl:value-of select='.'/>
85
			</xsl:attribute>
86
		</field>
87
	</xsl:for-each>
88
	
89
	<xsl:for-each select = "./nationality">
90
		<field name="nationalityid" indexId = "personcountryid" multiplicity="true" label="Country">
91
			<xsl:attribute name="value">
92
				<xsl:value-of select='./@classid'/>
93
			</xsl:attribute>
94
		</field>
95
		<field name="nationalityname" indexId = "personcountryname" multiplicity="true" label="Country">
96
			<xsl:attribute name="value">
97
				<xsl:value-of select='./@classname'/>
98
			</xsl:attribute>
99
		</field>
100
	</xsl:for-each>
101

    
102

    
103
</xsl:template>
104

    
105
<xsl:template match="rel">
106
<!--PERSON-->
107
	<xsl:if test="./to/@type='person'">
108
		<field name="author" indexId = "objIdentifier"  multiplicity="true">
109
			<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
110
			<field name = "personId" indexId ="objIdentifier" multiplicity="false" label="Person id">		
111
				<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
112
			</field>
113
			<field name = "role" indexId ="" multiplicity="false" label="role">		
114
				<xsl:attribute name="value"><xsl:value-of select='./to/@class'/> </xsl:attribute>
115
			</field>
116
			<field name = "fullname" indexId ="personfullname" multiplicity="false" label="Person fullname">		
117
				<xsl:attribute name="value"><xsl:value-of select='./fullname'/> </xsl:attribute>
118
			</field>
119
			<field name = "ranking" indexId ="" multiplicity="false" label="ranking">		
120
				<xsl:attribute name="value"><xsl:value-of select='./ranking'/> </xsl:attribute>
121
			</field>
122
		</field>
123
	</xsl:if>
124
<!--PROJECT-->
125
	<xsl:if test="./to/@type='project'">	
126
		<field name="project" indexId = "objIdentifier" multiplicity="true">
127
			<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
128
			<field name = "projectId" indexId ="objIdentifier" multiplicity="false" label="Project id">		
129
				<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
130
			</field>
131
			<field name = "role" indexId ="" multiplicity="false" label="role">		
132
				<xsl:attribute name="value"><xsl:value-of select='./to/@class'/> </xsl:attribute>
133
			</field>
134
			<field name = "projectcode" indexId ="projectcode" multiplicity="false" label="Project(s)">		
135
				<xsl:attribute name="value"><xsl:value-of select='./code'/> </xsl:attribute>
136
			</field>	
137
			<field name = "projectacronym" indexId ="projectacronym" multiplicity="false" label="Project(s)">		
138
				<xsl:attribute name="value"><xsl:value-of select='./acronym'/> </xsl:attribute>
139
			</field>
140
			<field name = "projecttitle" indexId ="projecttitle" multiplicity="false" label="Project title">		
141
				<xsl:attribute name="value"><xsl:value-of select='./title'/> </xsl:attribute>
142
			</field>
143
			<field name = "projectcontracttypeid" indexId ="projectcontracttypeid" multiplicity="false" label="Project contract type id">		
144
				<xsl:attribute name="value"><xsl:value-of select='./contracttype/@classid'/> </xsl:attribute>
145
			</field>
146
			<field name = "projectcontracttypename" indexId ="projectcontracttypename" multiplicity="false" label="Project contract type name">		
147
				<xsl:attribute name="value"><xsl:value-of select='./contracttype/@classname'/> </xsl:attribute>
148
			</field>
149
		</field>
150
	</xsl:if>
151
<!--RESULT-->
152
	<xsl:if test="./to/@type='result'">
153
		<field name="result" indexId = "objIdentifier"  multiplicity="true">
154
			<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
155
			<field name = "resultid" indexId ="objIdentifier" multiplicity="false" label="Result id">		
156
				<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
157
			</field>
158
			<field name = "title" indexId = "resulttitle" multiplicity = "false" label = "Title">
159
				<xsl:attribute name="value">
160
					<xsl:value-of select="./title"/>
161
				</xsl:attribute>
162
			</field>
163
			<field name = "dateofacceptance" indexId = "resultdateofacceptance" multiplicity = "false" label = "Date of acceptance">
164
				<xsl:attribute name="value">
165
					<xsl:value-of select="./dateofacceptance"/>
166
				</xsl:attribute>
167
			</field>
168
			<field name = "resulttypeid" indexId = "resulttypeid" multiplicity = "false" label = "type id">
169
				<xsl:attribute name="value">
170
					<xsl:value-of select="./resulttype/@classid"/>
171
				</xsl:attribute>
172
			</field>
173
			<field name = "resulttypename" indexId = "resulttypename" multiplicity = "false" label = "type name">
174
				<xsl:attribute name="value">
175
					<xsl:value-of select="./resulttype/@classname"/>
176
				</xsl:attribute>
177
			</field>
178
		</field>
179
	</xsl:if>	
180
<!--ORGANIZATION-->
181
	<xsl:if test="./to/@type='organization'">
182
		<field name="organization" indexId = "objIdentifier"  multiplicity="true">
183
			<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
184
			<field name = "organizationid" indexId ="objIdentifier" multiplicity="false" label="Organization id">		
185
				<xsl:attribute name="value"><xsl:value-of select='./to'/> </xsl:attribute>
186
			</field>
187
			<field name = "role" indexId ="" multiplicity="false" label="role">		
188
				<xsl:attribute name="value"><xsl:value-of select='./to/@class'/> </xsl:attribute>
189
			</field>
190
			<field name = "legalshortname" indexId ="organizationlegalshortname" multiplicity="false" label="Organization short name">		
191
				<xsl:attribute name="value"><xsl:value-of select='./legalshortname'/> </xsl:attribute>
192
			</field>
193
			<field name = "websiteurl" indexId ="organizationwebsiteurl" multiplicity="false" label="Website">		
194
				<xsl:attribute name="value"><xsl:value-of select='./websiteurl'/> </xsl:attribute>
195
			</field>
196
			<field name = "countryid" indexId ="organizationcountryid" multiplicity="false" label="Country code">		
197
				<xsl:attribute name="value"><xsl:value-of select='./country/@classid'/> </xsl:attribute>
198
			</field>
199
			<field name = "countryname" indexId ="organizationcountryname" multiplicity="false" label="Country">		
200
				<xsl:attribute name="value"><xsl:value-of select='./country/@classname'/> </xsl:attribute>
201
			</field>
202
			<field name = "participantnumber" indexId ="" multiplicity="false" label="Participant Number">		
203
				<xsl:attribute name="value"><xsl:value-of select='./participantnumber'/> </xsl:attribute>
204
			</field>
205
			<field name = "contactperson" indexId ="" multiplicity="false" label="Contact Person">		
206
				<xsl:attribute name="value"><xsl:value-of select='./contactperson'/> </xsl:attribute>
207
			</field>
208
		</field>
209
	</xsl:if>
210

    
211
</xsl:template>
212
</xsl:stylesheet>
(14-14/23)