Project

General

Profile

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

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

    
8
    <xsl:variable name="dateFormat" select="string('mm-DD-yyyy')"/>
9
    <xsl:variable name="funderID" select="concat($namespacePrefix, '::CONICYT')"/>
10
    <xsl:variable name="fundingId">
11
        <xsl:value-of select="concat($funderID,'::',.//column[@name='FUNDER STREAM LEVEL I'],'::',.//column[@name='FUNDER STREAM LEVEL II'])"/>
12
    </xsl:variable>
13

    
14

    
15
    <xsl:template match="/">
16
        <record
17
        >
18

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

    
21
            <metadata>
22
                <ROWS>
23
                    <xsl:variable name="projectId" select="concat($namespacePrefix, '::',  normalize-space(.//column[@name='PROJECT IDENTIFIER']))"/>
24
                    <xsl:variable name="startDate" select="replace(.//column[@name='START DATE'],'/','-')"/>
25

    
26
                    <xsl:variable name="endDate" select="replace(.//column[@name='END DATE'],'/','-')"/>
27

    
28
                    <ROW table="projects">
29

    
30
                        <FIELD name="_dnet_resource_identifier_">
31
                            <xsl:value-of select="$projectId"/>
32
                        </FIELD>
33
                        <FIELD name="id">
34
                            <xsl:value-of select="$projectId"/>
35
                        </FIELD>
36
                        <FIELD name="code">
37
                            <xsl:value-of select=".//column[@name='PROJECT IDENTIFIER']"/>
38
                        </FIELD>
39
                        <FIELD name="title">
40
                            <xsl:value-of select=".//column[@name='PROJECT TITLE']"/>
41
                        </FIELD>
42
                        <FIELD name="startdate" type="date" format="{$dateFormat}">
43
                            <xsl:value-of select="$startDate"/>
44
                        </FIELD>
45

    
46
                        <FIELD name="enddate" type="date" format="{$dateFormat}">
47
                            <xsl:value-of select="$endDate"/>
48
                        </FIELD>
49
                        <FIELD name="websiteurl">
50
                            <xsl:value-of select=".//column[@name='URL DE INFORME FINAL']"/>
51
                        </FIELD>
52

    
53
                        <FIELD name="contactfullname">
54
                            <xsl:choose>
55
                                <xsl:when test=".//column[@name='DIRECTOR Nombre'] = ''">
56

    
57
                                    <xsl:value-of select="concat(.//column[@name='DIRECTOR Apellido1'],' ' ,.//column[@name='DIRECTOR Apellido2'])"/>
58
                                </xsl:when>
59
                                <xsl:otherwise>
60
                                    <xsl:choose>
61
                                        <xsl:when test=".//column[@name='DIRECTOR Apellido1']=''">
62
                                            <xsl:value-of select=".//column[@name='DIRECTOR Nombre']"/>
63
                                        </xsl:when>
64
                                        <xsl:otherwise>
65
                                            <xsl:value-of select="concat(normalize-space(concat(.//column[@name='DIRECTOR Apellido1'],' ' ,.//column[@name='DIRECTOR Apellido2'])),', ',.//column[@name='DIRECTOR Nombre'])"/>
66
                                        </xsl:otherwise>
67
                                    </xsl:choose>
68

    
69
                                </xsl:otherwise>
70
                            </xsl:choose>
71

    
72
                        </FIELD>
73

    
74
                        <FIELD name="collectedfrom">
75
                            <xsl:value-of select="$parentDatasourceId"/>
76
                        </FIELD>
77
                        <FIELD name="provenanceActionClass">sysimport:crosswalk:entityregistry</FIELD>
78
                        <FIELD name="provenanceActionScheme">dnet:provenanceActions</FIELD>
79

    
80

    
81
                        <FIELD name="oa_mandate_for_publications" type="boolean">false</FIELD>
82
                    </ROW>
83

    
84

    
85

    
86
                    <xsl:for-each select="tokenize(.//column[@name='PARTICIPANT INSTITUTIONS2'],';')">
87
                        <xsl:variable name="organizationId" select="concat($namespacePrefix,'::',utils:md5(normalize-space(.)))"/>
88
                        <ROW table = "organizations">
89
                            <FIELD name="_dnet_resource_identifier_">
90
                                <xsl:value-of select="$organizationId"/>
91
                            </FIELD>
92
                            <FIELD name="id">
93
                                <xsl:value-of select="$organizationId"/>
94
                            </FIELD>
95
                            <FIELD name="legalshortname">
96
                                <xsl:value-of select="normalize-space(.)"/>
97
                            </FIELD>
98
                            <FIELD name="collectedfrom">
99
                                <xsl:value-of select="$parentDatasourceId"/>
100
                            </FIELD>
101
                            <FIELD name="provenanceActionClass">sysimport:crosswalk:entityregistry</FIELD>
102
                            <FIELD name="provenanceActionScheme">dnet:provenanceActions</FIELD>
103
                        </ROW>
104
                        <ROW table="project_organization">
105
                            <FIELD name="_dnet_resource_identifier_">
106
                                <xsl:value-of select='concat($projectId, "@@", $organizationId)'/>
107
                            </FIELD>
108
                            <FIELD name="project">
109
                                <xsl:value-of select="$projectId"/>
110
                            </FIELD>
111
                            <FIELD name="resporganization">
112
                                <xsl:value-of select="$organizationId"/>
113
                            </FIELD>
114

    
115

    
116

    
117
                            <FIELD name="semanticclass">participant</FIELD>
118
                            <FIELD name="semanticscheme">dnet:project_organization_relations</FIELD>
119
                        </ROW>
120
                    </xsl:for-each>
121

    
122
                    <ROW table="project_fundingpath">
123
                        <FIELD name="_dnet_resource_identifier_">
124
                            <xsl:value-of select="concat($fundingId, '@@', $projectId)"/>
125
                        </FIELD>
126
                        <FIELD name="funding">
127
                            <xsl:value-of select="$fundingId"/>
128
                        </FIELD>
129
                        <FIELD name="project">
130
                            <xsl:value-of select="$projectId"/>
131
                        </FIELD>
132
                        <FIELD name="startdate" type="date" format="{$dateFormat}">
133
                            <xsl:value-of select="$startDate"/>
134
                        </FIELD>
135

    
136
                        <FIELD name="enddate" type="date" format="{$dateFormat}">
137
                            <xsl:value-of select="$endDate"/>
138
                        </FIELD>
139
                    </ROW>
140
                </ROWS>
141
            </metadata>
142
        </record>
143
    </xsl:template>
144
</xsl:stylesheet>
(2-2/27)