Project

General

Profile

1
<RESOURCE_PROFILE>
2
    <HEADER>
3
        <RESOURCE_IDENTIFIER value="a2611b61-3748-4917-9397-3426b5174d8d_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU="/>
4
        <RESOURCE_TYPE value="TransformationRuleDSResourceType"/>
5
        <RESOURCE_KIND value="TransformationRuleDSResources"/>
6
        <RESOURCE_URI value=""/>
7
        <DATE_OF_CREATION value="2018-11-02T12:28:21+00:00"/>
8
    </HEADER>
9
    <BODY>
10
        <CONFIGURATION>
11
            <IMPORTED/>
12
            <SCRIPT>
13
                <TITLE>OPENDOAR 2 DB REST</TITLE>
14
                <CODE>
15
					
16
&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
17
                xmlns:dnet="eu.dnetlib.data.transform.xml.AbstractDNetXsltFunctions" version="1.0"&gt;
18

    
19
	&lt;xsl:param name="varDataSourceId"/&gt;
20
	&lt;xsl:variable name="namespacePrefix" select="string('opendoar____')"/&gt;
21

    
22
	&lt;xsl:template match="/"&gt;
23
		&lt;record&gt;
24

    
25
			&lt;xsl:copy-of select=".//*[local-name()='header']"/&gt;
26
			&lt;metadata&gt;
27
				&lt;xsl:variable name="rid" select="normalize-space(//items/system_metadata/id)"/&gt;
28
				&lt;xsl:variable name="datasourceId" select="concat($namespacePrefix, '::', $rid)"/&gt;
29
				&lt;xsl:variable name="apiId" select="concat('api_________::', $datasourceId, '::0')"/&gt;
30
				&lt;xsl:variable name="oUrl" select="normalize-space(//organisation/url)"/&gt;
31
				&lt;xsl:variable name="oName" select="normalize-space(//organisation/name/name)"/&gt;
32
				&lt;xsl:variable name="organizationId" select="translate(concat($namespacePrefix, '::', $oName), ' ', '_')"/&gt;
33
				&lt;xsl:variable name="repositoryType"&gt;
34
					&lt;xsl:choose&gt;
35
						&lt;xsl:when test="lower-case(normalize-space(//repository_metadata/type)) = 'institutional'"&gt;
36
							&lt;xsl:value-of select="string('pubsrepository::institutional')"/&gt;
37
						&lt;/xsl:when&gt;
38
						&lt;xsl:when test="lower-case(normalize-space(//repository_metadata/type)) = 'governmental'"&gt;
39
							&lt;xsl:value-of select="string('pubsrepository::institutional')"/&gt;
40
						&lt;/xsl:when&gt;
41
						&lt;xsl:when test="lower-case(normalize-space(//repository_metadata/type)) = 'disciplinary'"&gt;
42
							&lt;xsl:value-of select="string('pubsrepository::thematic')"/&gt;
43
						&lt;/xsl:when&gt;
44
						&lt;xsl:when test="lower-case(normalize-space(//repository_metadata/type)) = 'aggregating'"&gt;
45
							&lt;xsl:value-of select="string('aggregator::pubsrepository::unknown')"/&gt;
46
						&lt;/xsl:when&gt;
47
						&lt;xsl:otherwise&gt;
48
							&lt;xsl:value-of select="string('pubsrepository::unknown')"/&gt;
49
						&lt;/xsl:otherwise&gt;
50
					&lt;/xsl:choose&gt;
51
				&lt;/xsl:variable&gt;
52

    
53
				&lt;xsl:variable name="contenttypes"&gt;
54
					&lt;xsl:for-each select=".//content_types"&gt;
55
						&lt;xsl:if test="position() &amp;gt; 1"&gt; - &lt;/xsl:if&gt;
56
						&lt;xsl:value-of select="."/&gt;
57
					&lt;/xsl:for-each&gt;
58
				&lt;/xsl:variable&gt;
59
				&lt;xsl:variable name="languages"&gt;
60
					&lt;xsl:for-each select=".//content_languages"&gt;
61
						&lt;xsl:if test="position() &amp;gt; 1"&gt;, &lt;/xsl:if&gt;
62
						&lt;xsl:value-of select="."/&gt;
63
					&lt;/xsl:for-each&gt;
64
				&lt;/xsl:variable&gt;
65

    
66
				&lt;xsl:variable name="subjects"&gt;
67
					&lt;xsl:for-each select=".//content_subjects/label"&gt;
68
						&lt;xsl:if test="position() &amp;gt; 1"&gt; @@ &lt;/xsl:if&gt;
69
						&lt;xsl:value-of select="."/&gt;
70
					&lt;/xsl:for-each&gt;
71
				&lt;/xsl:variable&gt;
72

    
73
				&lt;ROWS&gt;
74
					&lt;ROW table="dsm_datasources"&gt;
75
						&lt;FIELD name="_dnet_resource_identifier_"&gt;
76
							&lt;xsl:value-of select="$datasourceId"/&gt;
77
						&lt;/FIELD&gt;
78
						&lt;FIELD name="id"&gt;
79
							&lt;xsl:value-of select="$datasourceId"/&gt;
80
						&lt;/FIELD&gt;
81
						&lt;FIELD name="officialname"&gt;
82
							&lt;xsl:value-of select="normalize-space(//repository_metadata/name/name)"/&gt;
83
						&lt;/FIELD&gt;
84
						&lt;FIELD name="englishname"&gt;
85
							&lt;xsl:value-of select="normalize-space(//repository_metadata/acronym)"/&gt;
86
						&lt;/FIELD&gt;
87
						&lt;FIELD name="websiteurl"&gt;
88
							&lt;xsl:value-of select="normalize-space(//repository_metadata/url)"/&gt;
89
						&lt;/FIELD&gt;
90
						&lt;FIELD name="contactemail"&gt;
91
							&lt;xsl:value-of select="normalize-space(//pEmail)"/&gt;
92
						&lt;/FIELD&gt;
93
                                                &lt;xsl:if test="not(normalize-space(//organisation/location/latitude) = 'null')"&gt;
94
						        &lt;FIELD name="latitude" type="float"&gt;
95
							      &lt;xsl:value-of select="normalize-space(//organisation/location/latitude)"/&gt;
96
						        &lt;/FIELD&gt;
97
                                                &lt;/xsl:if&gt;
98
                                                &lt;xsl:if test="normalize-space(//organisation/location/latitude) = 'null'"&gt;
99
							&lt;FIELD name="latitude" type="float"/&gt;
100
                                                &lt;/xsl:if&gt;
101
                                                &lt;xsl:if test="not(normalize-space(//organisation/location/longitude) = 'null')"&gt;
102
						          &lt;FIELD name="longitude" type="float"&gt;
103
							        &lt;xsl:value-of select="normalize-space(//organisation/location/longitude)"/&gt;
104
						          &lt;/FIELD&gt;
105
                                               &lt;/xsl:if&gt;
106
                                               &lt;xsl:if test="normalize-space(//organisation/location/longitude) = 'null'"&gt;
107
							&lt;FIELD name="longitude" type="float"/&gt;
108
                                                &lt;/xsl:if&gt;
109
						&lt;FIELD name="namespaceprefix"&gt;
110
							&lt;xsl:value-of select="dnet:generateNsPrefix('od', $rid)"/&gt;
111
						&lt;/FIELD&gt;
112
						&lt;FIELD name="languages"&gt;
113
							&lt;xsl:value-of select="normalize-space($languages)"/&gt;
114
						&lt;/FIELD&gt;
115
						&lt;FIELD name="od_contenttypes"&gt;
116
							&lt;xsl:value-of select="normalize-space($contenttypes)"/&gt;
117
						&lt;/FIELD&gt;
118
						&lt;FIELD name="collectedfrom"&gt;
119
							&lt;xsl:value-of select="$varDataSourceId"/&gt;
120
						&lt;/FIELD&gt;
121
						&lt;FIELD name="typology"&gt;
122
							&lt;xsl:value-of select="$repositoryType"/&gt;
123
						&lt;/FIELD&gt;
124
						&lt;FIELD name="provenanceaction"&gt;sysimport:crosswalk:entityregistry&lt;/FIELD&gt;
125
						&lt;FIELD name="platform"&gt;
126
							&lt;xsl:value-of select="normalize-space(//repository_metadata/software/name)"/&gt;
127
						&lt;/FIELD&gt;
128
						&lt;FIELD name="description"&gt;
129
							&lt;xsl:value-of select="normalize-space(//repository_metadata/description)"/&gt;
130
						&lt;/FIELD&gt;
131

    
132
						&lt;FIELD name="subjects"&gt;
133
							&lt;xsl:value-of select="normalize-space($subjects)"/&gt;
134
						&lt;/FIELD&gt;
135
					&lt;/ROW&gt;
136

    
137
					&lt;ROW table="dsm_api"&gt;
138
						&lt;FIELD name="_dnet_resource_identifier_"&gt;
139
							&lt;xsl:value-of select="$apiId"/&gt;
140
						&lt;/FIELD&gt;
141
						&lt;FIELD name="id"&gt;
142
							&lt;xsl:value-of select="$apiId"/&gt;
143
						&lt;/FIELD&gt;
144
						&lt;FIELD name="protocol"&gt;oai&lt;/FIELD&gt;
145
						&lt;FIELD name="datasource"&gt;
146
							&lt;xsl:value-of select="$datasourceId"/&gt;
147
						&lt;/FIELD&gt;
148
						&lt;FIELD name="contentdescription"&gt;metadata&lt;/FIELD&gt;
149
						&lt;FIELD name="typology"&gt;
150
							&lt;xsl:value-of select="$repositoryType"/&gt;
151
						&lt;/FIELD&gt;
152
						&lt;FIELD name="baseurl"&gt;
153
							&lt;xsl:value-of select="normalize-space(//repository_metadata/oai_url)"/&gt;
154
						&lt;/FIELD&gt;
155
						&lt;FIELD name="metadata_identifier_path"&gt;//*[local-name()='header']/*[local-name()='identifier']&lt;/FIELD&gt;
156
					&lt;/ROW&gt;
157

    
158
					&lt;ROW table="dsm_apiparams"&gt;
159
						&lt;FIELD name="_dnet_resource_identifier_"&gt;
160
							&lt;xsl:value-of select="concat($apiId, '@@format')"/&gt;
161
						&lt;/FIELD&gt;
162
						&lt;FIELD name="api"&gt;
163
							&lt;xsl:value-of select="$apiId"/&gt;
164
						&lt;/FIELD&gt;
165
						&lt;FIELD name="param"&gt;format&lt;/FIELD&gt;
166
						&lt;FIELD name="value"&gt;oai_dc&lt;/FIELD&gt;
167
					&lt;/ROW&gt;
168

    
169
					&lt;ROW table="dsm_organizations"&gt;
170
						&lt;FIELD name="_dnet_resource_identifier_"&gt;
171
							&lt;xsl:value-of select="$organizationId"/&gt;
172
						&lt;/FIELD&gt;
173
						&lt;FIELD name="id"&gt;
174
							&lt;xsl:value-of select="$organizationId"/&gt;
175
						&lt;/FIELD&gt;
176
						&lt;FIELD name="legalname"&gt;
177
							&lt;xsl:value-of select="$oName"/&gt;
178
						&lt;/FIELD&gt;
179
						&lt;FIELD name="legalshortname"&gt;
180
							&lt;xsl:value-of select="normalize-space(//organisation/name/acronym)"/&gt;
181
						&lt;/FIELD&gt;
182
						&lt;FIELD name="websiteurl"&gt;
183
							&lt;xsl:choose&gt;
184
								&lt;xsl:when test="starts-with(normalize-space($oUrl), 'http')"&gt;
185
									&lt;xsl:value-of select="normalize-space($oUrl)"/&gt;
186
								&lt;/xsl:when&gt;
187
								&lt;xsl:when test="string-length(normalize-space($oUrl)) &amp;gt; 0"&gt;
188
									&lt;xsl:value-of select="concat('http://', normalize-space($oUrl))"/&gt;
189
								&lt;/xsl:when&gt;
190
							&lt;/xsl:choose&gt;
191
						&lt;/FIELD&gt;
192

    
193
						&lt;FIELD name="country"&gt;
194
							&lt;xsl:choose&gt;
195
								&lt;xsl:when test="normalize-space(//organisation/country) = 'GB'"&gt;UK&lt;/xsl:when&gt;
196
								&lt;xsl:otherwise&gt;
197
									&lt;xsl:value-of select="normalize-space(//organisation/country)"&gt;&lt;/xsl:value-of&gt;
198
								&lt;/xsl:otherwise&gt;
199
							&lt;/xsl:choose&gt;
200
						&lt;/FIELD&gt;
201

    
202
						&lt;FIELD name="collectedfrom"&gt;
203
							&lt;xsl:value-of select="$varDataSourceId"/&gt;
204
						&lt;/FIELD&gt;
205
						&lt;FIELD name="provenanceaction"&gt;sysimport:crosswalk:entityregistry&lt;/FIELD&gt;
206
					&lt;/ROW&gt;
207

    
208
					&lt;ROW table="dsm_datasource_organization"&gt;
209
						&lt;FIELD name="_dnet_resource_identifier_"&gt;
210
							&lt;xsl:value-of select="concat($datasourceId, '@@', $organizationId)"/&gt;
211
						&lt;/FIELD&gt;
212
						&lt;FIELD name="datasource"&gt;
213
							&lt;xsl:value-of select="$datasourceId"/&gt;
214
						&lt;/FIELD&gt;
215
						&lt;FIELD name="organization"&gt;
216
							&lt;xsl:value-of select="$organizationId"/&gt;
217
						&lt;/FIELD&gt;
218
					&lt;/ROW&gt;
219

    
220
				&lt;/ROWS&gt;
221
			&lt;/metadata&gt;
222
		&lt;/record&gt;
223
	&lt;/xsl:template&gt;
224

    
225
&lt;/xsl:stylesheet&gt;
226

    
227
					
228
				</CODE>
229
            </SCRIPT>
230
        </CONFIGURATION>
231
        <STATUS/>
232
        <SECURITY_PARAMETERS>SECURITY_PARAMETERS</SECURITY_PARAMETERS>
233
    </BODY>
234
</RESOURCE_PROFILE>
(6-6/7)