Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2
<xsl:stylesheet xmlns:fwf="eu.dnetlib.data.transform.xml.FWFXsltFunctions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3

    
4
	<xsl:param name="parentDatasourceId"/>
5
	<xsl:param name="namespacePrefix"/>
6

    
7
	<xsl:variable name="funderID" select="concat($namespacePrefix, '::FWF')"/>
8

    
9
	<xsl:variable name="fundingCode" select="normalize-space(substring-before(.//column[@name='project number'],' –'))"/>
10
	<xsl:variable name="projectNumber" select="normalize-space(substring-after(.//column[@name='project number'],' – '))"/>
11
	<xsl:variable name="fundingID">
12
		<xsl:choose>
13
			<xsl:when test="string-length($fundingCode) &gt; 0">
14
				<xsl:value-of select="concat($funderID, '::', $fundingCode)"/>
15
			</xsl:when>
16
			<xsl:otherwise>
17
				<xsl:value-of select="$funderID"/>
18
			</xsl:otherwise>
19
		</xsl:choose>
20
	</xsl:variable>
21

    
22

    
23
	<xsl:variable name="projectID" select="concat($namespacePrefix, '::', concat($fundingCode,'_',$projectNumber))"/>
24
	<xsl:variable name="projectCode" select="concat($fundingCode,' ',$projectNumber)"/>
25

    
26
	<xsl:variable name="projectTitle" select=".//column[@name='project title']"/>
27

    
28
	<xsl:variable name="startDate" select=".//column[@name='from']"/>
29
	<xsl:variable name="endDate" select=".//column[@name='till']"/>
30
	<xsl:variable name="personId" select="concat($namespacePrefix,translate(normalize-space(.//column[@name='project lead']),' ','_'))"/>
31
	<xsl:variable name="dateFormat" select="string('yyyy-MM-dd')"/>
32
	<xsl:variable name="organizationId" select="concat($namespacePrefix,fwf:getMd5(.//column[@name='research place and institute']))"/>
33
	<xsl:template match="/">
34
		<xsl:if test="string-length($projectTitle) &gt; 0 and
35
                      string-length($projectID) &gt; 0 and
36
                      //column[@name='status'] != 'canceled'">
37
			<record>
38

    
39
				<xsl:copy-of select=".//*[local-name()='header']"/>
40

    
41
				<metadata>
42

    
43
					<ROWS>
44

    
45
						<ROW table="projects">
46
							<FIELD name="_dnet_resource_identifier_">
47
								<xsl:value-of select="$projectID"/>
48
							</FIELD>
49
							<FIELD name="id">
50
								<xsl:value-of select="$projectID"/>
51
							</FIELD>
52
							<FIELD name="code">
53
								<xsl:value-of select="$projectCode"/>
54
							</FIELD>
55
							<FIELD name="startdate" type="date" format="{$dateFormat}">
56
								<xsl:value-of select="$startDate"/>
57
							</FIELD>
58
							<FIELD name="enddate" type="date" format="{$dateFormat}">
59
								<xsl:value-of select="$endDate"/>
60
							</FIELD>
61
							<FIELD name="title">
62
								<xsl:value-of select="$projectTitle"/>
63
							</FIELD>
64
							<FIELD name ="contactfullname">
65
								<xsl:value-of select="concat(normalize-space(fwf:getName(.//column[@name='project lead'],false())),', ',fwf:getName(.//column[@name='project lead'],true()))"/>
66
							</FIELD>
67
							<FIELD name="keywords">
68
								<xsl:value-of select=".//column[@name='keywords']"/>
69
							</FIELD>
70
							<FIELD name="optional1">
71
								<xsl:variable name="grantAmount" select=".//column[@name='grants awarded']"/>
72
								<xsl:variable name="tmp" select="substring(normalize-space($grantAmount),1,1)"/>
73
								<xsl:value-of select="concat($tmp,' ',substring-after($grantAmount,$tmp))"/>
74
							</FIELD>
75

    
76
							<FIELD name="provenanceActionClass">sysimport:crosswalk:entityregistry</FIELD>
77
							<FIELD name="provenanceActionScheme">dnet:provenanceActions</FIELD>
78
							<FIELD name="collectedfrom">
79
								<xsl:value-of select="$parentDatasourceId"/>
80
							</FIELD>
81
						</ROW>
82
						<ROW table="project_fundingpath">
83
							<FIELD name="_dnet_resource_identifier_">
84

    
85
								<xsl:value-of select="concat($fundingID,'@@', $projectID)"/>
86
							</FIELD>
87
							<FIELD name="funding">
88
								<xsl:value-of select="$fundingID"/>
89
							</FIELD>
90
							<FIELD name="project">
91
								<xsl:value-of select="$projectID"/>
92
							</FIELD>
93
							<FIELD name="startdate" type="date" format="{$dateFormat}">
94
								<xsl:value-of select="$startDate"/>
95
							</FIELD>
96
							<FIELD name="enddate" type="date" format="{$dateFormat}">
97
								<xsl:value-of select="$endDate"/>
98
							</FIELD>
99
						</ROW>
100
						<xsl:if test="string-length($organizationId) &gt; 0">
101
							<ROW table="organizations">
102

    
103
								<FIELD name="_dnet_resource_identifier_">
104
									<xsl:value-of select="$organizationId"/>
105
								</FIELD>
106
								<FIELD name="id">
107
									<xsl:value-of select="$organizationId"/>
108
								</FIELD>
109
								<FIELD name="legalname">
110
									<xsl:variable name="orgName" select="normalize-space(.//column[@name='research place and institute'])"/>
111
									<xsl:choose>
112
										<xsl:when test="string-length( $orgName) &gt; 255">
113
											<xsl:value-of select="substring($orgName,0,254)"/>
114
										</xsl:when>
115
										<xsl:otherwise>
116
											<xsl:value-of select="normalize-space($orgName)"/>
117
										</xsl:otherwise>
118
									</xsl:choose>
119

    
120

    
121
								</FIELD>
122
								<FIELD name="collectedfrom">
123
									<xsl:value-of select="$parentDatasourceId"/>
124
								</FIELD>
125
								<FIELD name="provenanceActionClass">sysimport:crosswalk:entityregistry</FIELD>
126
								<FIELD name="provenanceActionScheme">dnet:provenanceActions</FIELD>
127
							</ROW>
128
						</xsl:if>
129
				<!--		<xsl:if test="string-length($personId) &gt; 0">
130
							<ROW table="persons">
131
								<FIELD name="_dnet_resource_identifier_">
132
									<xsl:value-of select="$personId"/>
133
								</FIELD>
134
								<FIELD name="id">
135
									<xsl:value-of select="$personId"/>
136
								</FIELD>
137
								<FIELD name="firstname">
138
									<xsl:value-of select="fwf:getName(.//column[@name='project lead'],true())"/>
139
								</FIELD>
140
								<FIELD name="secondnames">
141
									<xsl:value-of select="fwf:getName(.//column[@name='project lead'],false())"/>
142
								</FIELD>
143
								<FIELD name="collectedfrom">
144
									<xsl:value-of select="$parentDatasourceId"/>
145
								</FIELD>
146
								<FIELD name="provenanceActionClass">sysimport:crosswalk:entityregistry</FIELD>
147
								<FIELD name="provenanceActionScheme">dnet:provenanceActions</FIELD>
148
							</ROW>
149
						</xsl:if>-->
150

    
151
						<xsl:if test="string-length($organizationId) &gt; 0">
152
							<ROW table="project_organization">
153
								<FIELD name="_dnet_resource_identifier_">
154
									<xsl:value-of select='concat($projectID, "@@", $organizationId)'/>
155
								</FIELD>
156
								<FIELD name="project">
157
									<xsl:value-of select="$projectID"/>
158
								</FIELD>
159
								<FIELD name="resporganization">
160
									<xsl:value-of select="$organizationId"/>
161
								</FIELD>
162
							<!--	<FIELD name="contactperson">
163
									<xsl:value-of select="$personId"/>
164
								</FIELD>-->
165
								<FIELD name="semanticclass">participant</FIELD>
166
								<FIELD name="semanticscheme">dnet:project_organization_relations</FIELD>
167
							</ROW>
168
						</xsl:if>
169

    
170
					</ROWS>
171
				</metadata>
172
			</record>
173
		</xsl:if>
174
	</xsl:template>
175
</xsl:stylesheet>
(10-10/27)