Project

General

Profile

1
<RESOURCE_PROFILE>
2
    <HEADER>
3
        <RESOURCE_IDENTIFIER
4
                value="43988efd-278a-4ad7-9060-2dc8a9a19653_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU="/>
5
        <RESOURCE_TYPE value="TransformationRuleDSResourceType"/>
6
        <RESOURCE_KIND value="TransformationRuleDSResources"/>
7
        <RESOURCE_URI value=""/>
8
        <DATE_OF_CREATION value="2017-03-23T11:05:55+01:00"/>
9
    </HEADER>
10
    <BODY>
11
        <CONFIGURATION>
12
            <IMPORTED/>
13
            <SCRIPT>
14
                <TITLE>DLI: RCSB to Datacite transform</TITLE>
15
                <CODE><![CDATA[
16
				<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
17
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18
    xmlns:oai="http://www.openarchives.org/OAI/2.0/"
19
    xmlns:dnet="eu.dnetlib.dli.DLIUtils"
20
    xmlns:dri="http://www.driver-repository.eu/namespace/dri"
21
    exclude-result-prefixes="xsl  dnet ">
22

    
23

    
24
    <xsl:variable name="namespacePrefix" select="//dri:datasourceprefix"/>
25
    <xsl:variable name="datasourceID" select="dnet:getIdFromDataSourcePrefix($namespacePrefix)"/>
26
    <xsl:variable name="datasourceName" select="dnet:getNameFromDataSourcePrefix($namespacePrefix)"/>
27
    <xsl:variable name="recordId" select="//*[local-name()='column' and ./@isID='true']"></xsl:variable>
28
    <xsl:variable name="reldoi" select="//*[local-name()='column' and ./@name='doi']"></xsl:variable>
29
    <xsl:variable name="relpmc" select="//*[local-name()='column' and ./@name='pmc']"></xsl:variable>
30
    <xsl:variable name="relpubmed" select="//*[local-name()='column' and ./@name='pubmedId']"></xsl:variable>
31
    <xsl:variable name="relationID">
32
		<xsl:choose>
33
			<xsl:when test="string-length(normalize-space($reldoi)) &gt; 0">
34
				<xsl:value-of select="$reldoi" />
35
			</xsl:when>
36
			<xsl:when test="string-length(normalize-space($relpmc)) &gt; 0">
37
				<xsl:value-of select="$relpmc" />
38
			</xsl:when>
39
			<xsl:when test="string-length(normalize-space($relpubmed)) &gt; 0">
40
				<xsl:value-of select="$relpubmed" />
41
			</xsl:when>
42
			<xsl:otherwise>
43

    
44
			</xsl:otherwise>
45
		</xsl:choose>
46
    </xsl:variable>
47

    
48
    <xsl:variable name="relationIDType">
49
		<xsl:choose>
50
			<xsl:when test="string-length(normalize-space($reldoi)) &gt; 0">doi</xsl:when>
51
			<xsl:when test="string-length(normalize-space($relpmc)) &gt; 0">pmcId</xsl:when>
52
			<xsl:when test="string-length(normalize-space($relpubmed)) &gt; 0">pubmedId</xsl:when>
53
		</xsl:choose>
54
    </xsl:variable>
55

    
56
    <xsl:template match="/">
57
        <oai:record xmlns="http://namespace.openaire.eu/"
58
            xmlns:dc="http://purl.org/dc/elements/1.1/"
59
            xmlns:dr="http://www.driver-repository.eu/namespace/dr"
60
            xmlns:prov="http://www.openarchives.org/OAI/2.0/provenance"
61
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
62
            <xsl:copy-of select="//*[local-name()='header']"/>
63
            <metadata>
64
            <resource xmlns="http://datacite.org/schema/kernel-3"
65
                xsi:schemaLocation="http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd">
66
         			<identifier identifierType="pdb"><xsl:value-of select="$recordId"/></identifier>
67
				<creators>
68
					<xsl:for-each select="tokenize(//*[local-name()='column' and ./@name='structureAuthor'],'#')">
69
						<creator>
70
							<creatorName><xsl:value-of select="."/></creatorName>
71
						</creator>
72
					</xsl:for-each>
73
				</creators>
74
				<titles>
75
					<title><xsl:value-of select="//*[local-name()='column' and ./@name='structureTitle']"/></title>
76
				</titles>
77
				<dates>
78
					<date dateType="Collected"><xsl:value-of select="//*[local-name()='column' and ./@name='releaseDate']"/></date>
79
				</dates>
80
				<resourceType resourceTypeGeneral="Dataset">Dataset</resourceType>
81
				<relatedIdentifiers>
82
					<relatedIdentifier xmlns:oaf="http://namespace.dnet.eu/oaf" inverseRelationType="unknown" relationType="unknown">
83
						<xsl:attribute name="relatedIdentifierType"> <xsl:value-of select="$relationIDType" /></xsl:attribute>
84
						<xsl:value-of select="$relationID"/>
85
					</relatedIdentifier>
86
				</relatedIdentifiers>
87
			</resource>
88
            </metadata>
89
			<oaf:about xmlns:oaf="http://namespace.dnet.eu/oaf">
90
				<oaf:datainfo>
91
					<oaf:collectedFrom completionStatus="complete">
92
						<xsl:attribute name="id"><xsl:value-of select="$datasourceID"/></xsl:attribute>
93
						<xsl:attribute name="name"><xsl:value-of select="$datasourceName"/></xsl:attribute>
94
					</oaf:collectedFrom>
95
					<oaf:completionStatus>complete</oaf:completionStatus>
96
					<oaf:provisionMode>collected</oaf:provisionMode>
97
				</oaf:datainfo>
98
			</oaf:about>
99
        </oai:record>
100
    </xsl:template>
101
</xsl:stylesheet>]]>
102
                </CODE>
103
            </SCRIPT>
104
        </CONFIGURATION>
105
        <STATUS/>
106
        <SECURITY_PARAMETERS/>
107
    </BODY>
108
</RESOURCE_PROFILE>
(14-14/16)