1 |
48215
|
alessia.ba
|
<RESOURCE_PROFILE>
|
2 |
53356
|
alessia.ba
|
<HEADER>
|
3 |
|
|
<RESOURCE_IDENTIFIER value="c65bf3ca-1a77-42c4-92a1-f902a4d752a7_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU="/>
|
4 |
|
|
<RESOURCE_TYPE value="TransformationRuleDSResourceType"/>
|
5 |
|
|
<RESOURCE_KIND value="TransformationRuleDSResources"/>
|
6 |
|
|
<RESOURCE_URI value=""/>
|
7 |
|
|
<DATE_OF_CREATION value="2017-06-30T17:01:32+02:00"/>
|
8 |
|
|
</HEADER>
|
9 |
|
|
<BODY>
|
10 |
|
|
<CONFIGURATION>
|
11 |
|
|
<IMPORTED/>
|
12 |
|
|
<SCRIPT>
|
13 |
|
|
<TITLE>claims_openaire_2_ODF</TITLE>
|
14 |
|
|
<CODE><![CDATA[
|
15 |
48215
|
alessia.ba
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
|
16 |
|
|
xmlns:oai="http://www.openarchives.org/OAI/2.0/" xmlns:oaf="http://namespace.openaire.eu/oaf"
|
17 |
|
|
xmlns:dri="http://www.driver-repository.eu/namespace/dri"
|
18 |
|
|
xmlns:dr="http://www.driver-repository.eu/namespace/dr"
|
19 |
|
|
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:date="http://exslt.org/dates-and-times"
|
20 |
|
|
extension-element-prefixes="date" exclude-result-prefixes="xsl">
|
21 |
|
|
|
22 |
|
|
<xsl:output indent="yes"/>
|
23 |
|
|
|
24 |
|
|
<xsl:template match="/">
|
25 |
48219
|
alessia.ba
|
<xsl:choose>
|
26 |
48282
|
alessia.ba
|
<xsl:when test="string-length(//*[local-name() ='objIdentifier']) = 46 and matches(//*[local-name() ='objIdentifier'], '\w{12}') and (//instance/webresource/url != '' or //pid[@classid = 'doi'] != '')">
|
27 |
48215
|
alessia.ba
|
<xsl:call-template name="createRecord"/>
|
28 |
|
|
</xsl:when>
|
29 |
|
|
<xsl:otherwise>
|
30 |
|
|
<xsl:call-template name="skipRecord"/>
|
31 |
|
|
</xsl:otherwise>
|
32 |
|
|
</xsl:choose>
|
33 |
|
|
|
34 |
|
|
</xsl:template>
|
35 |
|
|
|
36 |
|
|
<xsl:template name="skipRecord">
|
37 |
|
|
<oai:record>
|
38 |
|
|
<oai:header>
|
39 |
|
|
<xsl:copy-of select="//*[local-name() = 'header']/dri:dateOfCollection"
|
40 |
|
|
copy-namespaces="no"/>
|
41 |
48219
|
alessia.ba
|
<xsl:copy-of select="//*[local-name() = 'header']/oaf:datasourceprefix"
|
42 |
|
|
copy-namespaces="no"/>
|
43 |
48215
|
alessia.ba
|
<dri:recordIdentifier>
|
44 |
|
|
<xsl:value-of select="//*[local-name() = 'header']/dri:objIdentifier"/>
|
45 |
|
|
</dri:recordIdentifier>
|
46 |
|
|
<dr:dateOfTransformation>
|
47 |
48219
|
alessia.ba
|
<xsl:value-of select="date:date-time()"/>
|
48 |
48215
|
alessia.ba
|
</dr:dateOfTransformation>
|
49 |
|
|
</oai:header>
|
50 |
|
|
<oai:metadata>
|
51 |
|
|
<xsl:copy-of select="//*[local-name() = 'metadata']/*"/>
|
52 |
|
|
</oai:metadata>
|
53 |
|
|
</oai:record>
|
54 |
|
|
</xsl:template>
|
55 |
|
|
|
56 |
|
|
<xsl:template name="createRecord">
|
57 |
|
|
<oai:record>
|
58 |
|
|
<oai:header>
|
59 |
|
|
<xsl:copy-of select="//*[local-name() = 'header']/dri:objIdentifier"
|
60 |
|
|
copy-namespaces="no"/>
|
61 |
|
|
<xsl:copy-of select="//*[local-name() = 'header']/dri:dateOfCollection"
|
62 |
|
|
copy-namespaces="no"/>
|
63 |
48219
|
alessia.ba
|
<xsl:copy-of select="//*[local-name() = 'header']/oaf:datasourceprefix"
|
64 |
|
|
copy-namespaces="no"/>
|
65 |
48215
|
alessia.ba
|
<dr:dateOfTransformation>
|
66 |
|
|
<xsl:value-of select="date:date-time()"/>
|
67 |
|
|
</dr:dateOfTransformation>
|
68 |
|
|
</oai:header>
|
69 |
|
|
<oai:metadata>
|
70 |
|
|
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
71 |
|
|
xsi:schemaLocation="http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd"
|
72 |
|
|
xmlns="http://datacite.org/schema/kernel-3">
|
73 |
48219
|
alessia.ba
|
|
74 |
|
|
<xsl:choose>
|
75 |
|
|
<xsl:when test="//webresource/url != ''">
|
76 |
|
|
<identifier identifierType="URL">
|
77 |
|
|
<xsl:value-of select="./text()"/>
|
78 |
|
|
</identifier>
|
79 |
|
|
</xsl:when>
|
80 |
|
|
<xsl:otherwise>
|
81 |
|
|
<identifier identifierType="URL">
|
82 |
|
|
<xsl:value-of
|
83 |
|
|
select="concat('http://dx.doi.org', '/', //pid[@classid = 'doi'][1])"
|
84 |
|
|
/>
|
85 |
|
|
</identifier>
|
86 |
|
|
</xsl:otherwise>
|
87 |
|
|
</xsl:choose>
|
88 |
|
|
|
89 |
48215
|
alessia.ba
|
<alternateIdentifiers>
|
90 |
48219
|
alessia.ba
|
<xsl:for-each select="//oaf:result/pid[./text()]">
|
91 |
48215
|
alessia.ba
|
<alternateIdentifier alternateIdentifierType="{@classid}">
|
92 |
|
|
<xsl:value-of select="."/>
|
93 |
|
|
</alternateIdentifier>
|
94 |
|
|
</xsl:for-each>
|
95 |
48219
|
alessia.ba
|
<xsl:for-each select="//oaf:result/originalId">
|
96 |
48215
|
alessia.ba
|
<alternateIdentifier>
|
97 |
|
|
<xsl:value-of select="."/>
|
98 |
|
|
</alternateIdentifier>
|
99 |
|
|
</xsl:for-each>
|
100 |
|
|
</alternateIdentifiers>
|
101 |
53356
|
alessia.ba
|
|
102 |
48219
|
alessia.ba
|
<xsl:apply-templates/>
|
103 |
|
|
|
104 |
48215
|
alessia.ba
|
<titles>
|
105 |
48219
|
alessia.ba
|
<xsl:for-each select="//oaf:result/title/text()">
|
106 |
48215
|
alessia.ba
|
<title>
|
107 |
|
|
<xsl:value-of select="normalize-space(.)"/>
|
108 |
|
|
</title>
|
109 |
|
|
</xsl:for-each>
|
110 |
|
|
</titles>
|
111 |
|
|
<descriptions>
|
112 |
48219
|
alessia.ba
|
<xsl:for-each select="//oaf:result/description/text()">
|
113 |
48215
|
alessia.ba
|
<description descriptionType="Abstract">
|
114 |
|
|
<xsl:value-of select="normalize-space(.)"/>
|
115 |
|
|
</description>
|
116 |
|
|
</xsl:for-each>
|
117 |
|
|
</descriptions>
|
118 |
|
|
<subjects>
|
119 |
48219
|
alessia.ba
|
<xsl:for-each select="//oaf:result/subject[./text()]">
|
120 |
48215
|
alessia.ba
|
<xsl:choose>
|
121 |
|
|
<xsl:when test="@classname = 'keyword'">
|
122 |
|
|
<subject>
|
123 |
|
|
<xsl:value-of select="normalize-space(./text())"/>
|
124 |
|
|
</subject>
|
125 |
|
|
</xsl:when>
|
126 |
|
|
<xsl:otherwise>
|
127 |
|
|
<subject subjectScheme="{@classid}">
|
128 |
|
|
<xsl:value-of select="normalize-space(./text())"/>
|
129 |
|
|
</subject>
|
130 |
|
|
</xsl:otherwise>
|
131 |
|
|
</xsl:choose>
|
132 |
|
|
</xsl:for-each>
|
133 |
|
|
</subjects>
|
134 |
|
|
<!-- Size (O) -->
|
135 |
|
|
<sizes>
|
136 |
48219
|
alessia.ba
|
<xsl:for-each select="//oaf:result/size/text()">
|
137 |
48215
|
alessia.ba
|
<size>
|
138 |
|
|
<xsl:value-of select="."/>
|
139 |
|
|
</size>
|
140 |
|
|
</xsl:for-each>
|
141 |
|
|
</sizes>
|
142 |
|
|
</resource>
|
143 |
48219
|
alessia.ba
|
<xsl:call-template name="oafFields"/>
|
144 |
48215
|
alessia.ba
|
</oai:metadata>
|
145 |
|
|
<xsl:copy-of select="//*[local-name() = 'about']" copy-namespaces="no"/>
|
146 |
|
|
</oai:record>
|
147 |
|
|
</xsl:template>
|
148 |
|
|
|
149 |
|
|
<!-- Handling relationships -->
|
150 |
48219
|
alessia.ba
|
<xsl:template match="//oaf:result/rels">
|
151 |
48215
|
alessia.ba
|
<!-- Creators (M) -->
|
152 |
53356
|
alessia.ba
|
<creators xmlns="http://datacite.org/schema/kernel-3">
|
153 |
48215
|
alessia.ba
|
<xsl:for-each select="./rel[./to/@class = 'hasAuthor']">
|
154 |
|
|
<xsl:sort select="ranking"/>
|
155 |
|
|
<creator>
|
156 |
|
|
<creatorName>
|
157 |
|
|
<xsl:value-of select="./fullname"/>
|
158 |
|
|
</creatorName>
|
159 |
|
|
</creator>
|
160 |
|
|
</xsl:for-each>
|
161 |
53356
|
alessia.ba
|
<!-- creators can also come from the new creator field with rank attribute. -->
|
162 |
|
|
<xsl:for-each select="../creator">
|
163 |
|
|
<xsl:sort select="./@rank"/>
|
164 |
|
|
<creator>
|
165 |
|
|
<creatorName>
|
166 |
|
|
<xsl:value-of select="./text()"/>
|
167 |
|
|
</creatorName>
|
168 |
|
|
</creator>
|
169 |
|
|
</xsl:for-each>
|
170 |
48215
|
alessia.ba
|
</creators>
|
171 |
53356
|
alessia.ba
|
<contributors xmlns="http://datacite.org/schema/kernel-3">
|
172 |
|
|
<!-- person contributors -->
|
173 |
|
|
<xsl:apply-templates select="./rel[./to/@class = 'hasContributor']" mode="rel"/>
|
174 |
|
|
<xsl:apply-templates select="../contributor" mode="rel"/>
|
175 |
48215
|
alessia.ba
|
</contributors>
|
176 |
53356
|
alessia.ba
|
<relatedIdentifiers xmlns="http://datacite.org/schema/kernel-3">
|
177 |
|
|
<!-- Links to publications: TODO: how to pass existing links to OpenAIRE pubs?-->
|
178 |
|
|
<!--<xsl:apply-templates select="./rel[./resulttype/@classid = 'publication']"/> -->
|
179 |
48215
|
alessia.ba
|
</relatedIdentifiers>
|
180 |
|
|
|
181 |
|
|
</xsl:template>
|
182 |
|
|
|
183 |
|
|
<!-- Person Contributor template -->
|
184 |
53356
|
alessia.ba
|
<xsl:template match="rel[./to/@class = 'hasContributor']" mode="rel">
|
185 |
|
|
<contributor xmlns="http://datacite.org/schema/kernel-3">
|
186 |
48215
|
alessia.ba
|
<contributorName>
|
187 |
|
|
<xsl:value-of select="./fullname"/>
|
188 |
|
|
</contributorName>
|
189 |
|
|
</contributor>
|
190 |
|
|
</xsl:template>
|
191 |
53356
|
alessia.ba
|
<xsl:template match="contributor" mode="rel">
|
192 |
|
|
<contributor xmlns="http://datacite.org/schema/kernel-3">
|
193 |
|
|
<contributorName>
|
194 |
|
|
<xsl:value-of select="./text()"/>
|
195 |
|
|
</contributorName>
|
196 |
|
|
</contributor>
|
197 |
|
|
</xsl:template>
|
198 |
48215
|
alessia.ba
|
|
199 |
|
|
|
200 |
|
|
<!--publisher (M) from publisher -->
|
201 |
48219
|
alessia.ba
|
<xsl:template match="//oaf:result/publisher/text()">
|
202 |
53356
|
alessia.ba
|
<publisher xmlns="http://datacite.org/schema/kernel-3">
|
203 |
48215
|
alessia.ba
|
<xsl:value-of select="normalize-space(.)"/>
|
204 |
|
|
</publisher>
|
205 |
|
|
</xsl:template>
|
206 |
|
|
|
207 |
|
|
<!-- Publication year (M) -->
|
208 |
48219
|
alessia.ba
|
<xsl:template match="//oaf:result/dateofacceptance/text()">
|
209 |
53356
|
alessia.ba
|
<publicationYear xmlns="http://datacite.org/schema/kernel-3">
|
210 |
48215
|
alessia.ba
|
<xsl:value-of select="normalize-space(substring-before(., '-'))"/>
|
211 |
|
|
</publicationYear>
|
212 |
|
|
</xsl:template>
|
213 |
|
|
|
214 |
|
|
<!-- Language (R) from language@classid -->
|
215 |
48219
|
alessia.ba
|
<xsl:template match="//oaf:result/language/@classid">
|
216 |
53356
|
alessia.ba
|
<language xmlns="http://datacite.org/schema/kernel-3">
|
217 |
48215
|
alessia.ba
|
<xsl:value-of select="."/>
|
218 |
|
|
</language>
|
219 |
|
|
</xsl:template>
|
220 |
|
|
|
221 |
53356
|
alessia.ba
|
<!-- ResourceType (R) -->
|
222 |
|
|
<xsl:template match="//oaf:result/resourcetype[./@classname != '']">
|
223 |
|
|
<resourceType resourceTypeGeneral="{./@classname}" xmlns="http://datacite.org/schema/kernel-3"/>
|
224 |
48215
|
alessia.ba
|
</xsl:template>
|
225 |
|
|
|
226 |
53356
|
alessia.ba
|
|
227 |
48215
|
alessia.ba
|
<!-- Version (O) -->
|
228 |
48219
|
alessia.ba
|
<xsl:template match="//oaf:result/version/text()">
|
229 |
53356
|
alessia.ba
|
<version xmlns="http://datacite.org/schema/kernel-3">
|
230 |
48215
|
alessia.ba
|
<xsl:value-of select="."/>
|
231 |
|
|
</version>
|
232 |
|
|
</xsl:template>
|
233 |
|
|
|
234 |
|
|
<!-- Oaf:fields -->
|
235 |
|
|
<xsl:template name="oafFields">
|
236 |
|
|
<dr:CobjCategory>0021</dr:CobjCategory>
|
237 |
|
|
<oaf:dateAccepted>
|
238 |
|
|
<xsl:value-of select="//oaf:result/dateofacceptance/text()"/>
|
239 |
|
|
</oaf:dateAccepted>
|
240 |
55104
|
alessia.ba
|
<xsl:if test="//oaf:result/bestlicense/@classid">
|
241 |
|
|
<oaf:accessrights>
|
242 |
|
|
<xsl:value-of select="//oaf:result/bestlicense/@classid"/>
|
243 |
|
|
</oaf:accessrights>
|
244 |
|
|
</xsl:if>
|
245 |
|
|
<xsl:if test="//oaf:result/bestaccessright/@classid">
|
246 |
|
|
<oaf:accessrights>
|
247 |
|
|
<xsl:value-of select="//oaf:result/bestaccessright/@classid"/>
|
248 |
|
|
</oaf:accessrights>
|
249 |
|
|
</xsl:if>
|
250 |
48215
|
alessia.ba
|
<oaf:language>
|
251 |
48219
|
alessia.ba
|
<xsl:value-of select="//oaf:result/language/@classid"/>
|
252 |
48215
|
alessia.ba
|
</oaf:language>
|
253 |
55104
|
alessia.ba
|
<oaf:hostedby id="infrastruct_::openaire" name="OpenAIRE"/>
|
254 |
|
|
<oaf:collectedfrom id="infrastruct_::openaire" name="OpenAIRE"/>
|
255 |
|
|
<xsl:if test="//oaf:journal">
|
256 |
|
|
<oaf:journal eissn="{//oaf:result/journal/@eissn}" ep="{//oaf:result/journal/@ep}"
|
257 |
|
|
iss="{//oaf:result/journal/@issn}" issn="{//oaf:result/journal/@issn}"
|
258 |
|
|
lissn="{//oaf:result/journal/@lissn}" sp="{//oaf:result/journal/@sp}"
|
259 |
|
|
vol="{//oaf:result/journal/@vol}">
|
260 |
|
|
<xsl:value-of select="//oaf:result/journal/text()"/>
|
261 |
|
|
</oaf:journal>
|
262 |
|
|
</xsl:if>
|
263 |
48215
|
alessia.ba
|
</xsl:template>
|
264 |
|
|
|
265 |
|
|
<!-- Override default template -->
|
266 |
|
|
<xsl:template match="text() | @*"/>
|
267 |
|
|
</xsl:stylesheet>
|
268 |
|
|
|
269 |
|
|
|
270 |
48219
|
alessia.ba
|
|
271 |
48215
|
alessia.ba
|
]]></CODE>
|
272 |
53356
|
alessia.ba
|
</SCRIPT>
|
273 |
|
|
</CONFIGURATION>
|
274 |
|
|
<STATUS/>
|
275 |
|
|
<SECURITY_PARAMETERS/>
|
276 |
|
|
</BODY>
|
277 |
48215
|
alessia.ba
|
</RESOURCE_PROFILE>
|