Project

General

Profile

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

    
4
	<xsl:param name="parentDatasourceId"/>
5
	<xsl:param name="namespacePrefix" select="string('snsf_________')"/>
6
	<xsl:param name="quote">"</xsl:param>
7

    
8
	<xsl:template match="/">
9
		<record>
10

    
11
			<xsl:copy-of select=".//*[local-name()='header']"/>
12
			<metadata>
13
				<ROWS>
14
					<xsl:if test="string-length(normalize-space(.//column[@name='Project Title'])) &gt; 0 and string-length(normalize-space(.//column[@name='Project Number'])) &gt; 0">
15

    
16
						<xsl:variable name="projectId" select="concat($namespacePrefix, '::', normalize-space(.//column[@name='Project Number']))"/>
17

    
18
						<xsl:variable name="orgId" select="concat($namespacePrefix, '::', translate(normalize-space(.//column[@name='Institution']), ' ,.', '___'))"/>
19

    
20
						<xsl:variable name="startDate" select=".//column[@name='Start Date']"/>
21
						<xsl:variable name="endDate" select=".//column[@name='End Date']"/>
22

    
23
						<ROW table="projects">
24
							<FIELD name="_dnet_resource_identifier_">
25
								<xsl:value-of select="$projectId"/>
26
							</FIELD>
27
							<FIELD name="id">
28
								<xsl:value-of select="$projectId"/>
29
							</FIELD>
30
							<FIELD name="code">
31
								<xsl:value-of select="normalize-space(.//column[@name='Project Number String'])"/>
32
							</FIELD>
33
							<FIELD name="startdate" type="date" format="dd.MM.yyyy">
34
								<xsl:value-of select="$startDate"/>
35
							</FIELD>
36
							<FIELD name="enddate" type="date" format="dd.MM.yyyy">
37
								<xsl:value-of select="$endDate"/>
38
							</FIELD>
39
							<FIELD name="title">
40
								<xsl:value-of select=".//column[@name='Project Title']"/>
41
							</FIELD>
42
							<FIELD name="acronym"></FIELD>
43
							<FIELD name="provenanceActionClass">sysimport:crosswalk:entityregistry</FIELD>
44
							<FIELD name="provenanceActionScheme">dnet:provenanceActions</FIELD>
45
							<FIELD name="collectedfrom">
46
								<xsl:value-of select="$parentDatasourceId"/>
47
							</FIELD>
48
							<!-- <FIELD name="???"><xsl:value-of select=".//AbstractNarration" /></FIELD> -->
49
							<xsl:variable name="personName" select="normalize-space(.//column[@name='Responsible Applicant'])"/>
50
							<xsl:if test="string-length($personName) &gt; 0">
51
								<FIELD name="contactfullname">
52
									<xsl:value-of select="$personName"/>
53
								</FIELD>
54
							</xsl:if>
55
						</ROW>
56

    
57
						<ROW table="organizations">
58
							<FIELD name="_dnet_resource_identifier_">
59
								<xsl:value-of select="$orgId"/>
60
							</FIELD>
61
							<FIELD name="id">
62
								<xsl:value-of select="$orgId"/>
63
							</FIELD>
64
							<FIELD name="legalname">
65
								<xsl:value-of select=".//column[@name='Institution']"/>
66
							</FIELD>
67
							<FIELD name="collectedfrom">
68
								<xsl:value-of select="$parentDatasourceId"/>
69
							</FIELD>
70
							<FIELD name="provenanceActionClass">sysimport:crosswalk:entityregistry</FIELD>
71
							<FIELD name="provenanceActionScheme">dnet:provenanceActions</FIELD>
72
							<FIELD name="optional1">
73
								<xsl:value-of select=".//column[@name='University']"/>
74
							</FIELD>
75
						</ROW>
76

    
77
						<ROW table="project_organization">
78
							<FIELD name="_dnet_resource_identifier_">
79
								<xsl:value-of select="concat($projectId, '@@', $orgId)"/>
80
							</FIELD>
81
							<FIELD name="participantnumber" type="int">1</FIELD>
82
							<FIELD name="startdate" type="date" format="dd.MM.yyyy">
83
								<xsl:value-of select="$startDate"/>
84
							</FIELD>
85
							<FIELD name="enddate" type="date" format="dd.MM.yyyy">
86
								<xsl:value-of select="$endDate"/>
87
							</FIELD>
88
							<FIELD name="project">
89
								<xsl:value-of select="$projectId"/>
90
							</FIELD>
91
							<FIELD name="resporganization">
92
								<xsl:value-of select="$orgId"/>
93
							</FIELD>
94
							<FIELD name="semanticclass">coordinator</FIELD>
95
							<FIELD name="semanticscheme">dnet:project_organization_relations</FIELD>
96
						</ROW>
97

    
98
						<xsl:variable name="p0" select="normalize-space(.//column[@name='Funding Instrument Hierarchy'])"/>
99
						<xsl:variable name="p1" select="normalize-space(.//column[@name='Funding Instrument'])"/>
100

    
101
						<xsl:variable name="fundingId">
102
							<xsl:choose>
103
								<xsl:when test="(string-length($p0) &gt; 0) and (string-length($p1) &gt; 0)">
104
									<xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p0, '::', $p1)"/>
105
								</xsl:when>
106
								<xsl:when test="string-length($p0) &gt; 0">
107
									<xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p0)"/>
108
								</xsl:when>
109
								<xsl:when test="string-length($p1) &gt; 0">
110
									<xsl:value-of select="concat($namespacePrefix, '::SNSF::', $p1)"/>
111
								</xsl:when>
112
							</xsl:choose>
113
						</xsl:variable>
114

    
115
						<ROW table="project_fundingpath">
116
							<FIELD name="_dnet_resource_identifier_">
117
								<xsl:value-of select="concat(normalize-space($fundingId),'@@', $projectId)"/>
118
							</FIELD>
119
							<FIELD name="funding">
120
								<xsl:value-of select="normalize-space($fundingId)"/>
121
							</FIELD>
122
							<FIELD name="project">
123
								<xsl:value-of select="$projectId"/>
124
							</FIELD>
125
							<FIELD name="startdate" type="date" format="dd.MM.yyyy">
126
								<xsl:value-of select="$startDate"/>
127
							</FIELD>
128
							<FIELD name="enddate" type="date" format="dd.MM.yyyy">
129
								<xsl:value-of select="$endDate"/>
130
							</FIELD>
131
						</ROW>
132

    
133
					</xsl:if>
134
				</ROWS>
135
			</metadata>
136
		</record>
137
	</xsl:template>
138

    
139
</xsl:stylesheet>
(26-26/29)