Project

General

Profile

1 26600 sandro.lab
<?xml version="1.0" encoding="UTF-8"?>
2 39441 claudio.at
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3
                xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dr="http://www.driver-repository.eu/namespace/dr"
4
                xmlns:dri="http://www.driver-repository.eu/namespace/dri" xmlns:oaa="http://namespace.openaire.eu/oaa"
5 40198 claudio.at
                xmlns:oaf="http://namespace.openaire.eu/oaf" xmlns:dnet="eu.dnetlib.data.transform.xml.OafToHbaseXsltFunctions"
6
                xmlns:date="java.lang.System"
7 39441 claudio.at
                xmlns:exslt="http://exslt.org/common"
8
                version="1.0"
9
                extension-element-prefixes="exslt"
10
                exclude-result-prefixes="xsl dc dr dri oaa oaf dnet exslt date">
11 26600 sandro.lab
12 39441 claudio.at
    <xsl:output omit-xml-declaration="yes" indent="yes"/>
13 26600 sandro.lab
14 39441 claudio.at
    <xsl:param name="trust" select="string('0.9')"/>
15
    <xsl:param name="provenance" select="string('UNKNOWN')"/>
16 26600 sandro.lab
17 39441 claudio.at
    <xsl:template match="/*">
18
        <xsl:variable name="about" select="/*[local-name() = 'record']/*[local-name() = 'about']"/>
19
        <xsl:variable name="dateofcollection" select="//dr:dateOfCollection"/>
20 40708 claudio.at
        <xsl:variable name="dateoftransformation" select="//dr:dateOfTransformation"/>
21 26600 sandro.lab
22 39441 claudio.at
        <xsl:variable name="metadata" select="exslt:node-set(//*[local-name()='metadata']/*)"/>
23 26600 sandro.lab
24 39441 claudio.at
        <xsl:choose>
25
            <xsl:when test="count($metadata) = 0">
26 44129 claudio.at
                <ROWS/>
27 39441 claudio.at
            </xsl:when>
28
            <xsl:otherwise>
29 26600 sandro.lab
30 39441 claudio.at
                <xsl:variable name="objidentifier" select="/record/*[local-name() = 'header']/*[local-name() = 'objIdentifier']"/>
31 26600 sandro.lab
32 39441 claudio.at
                <xsl:variable name="resultId" select="dnet:oafSimpleId('result', $objidentifier)"/>
33 26600 sandro.lab
34 39441 claudio.at
                <xsl:variable name="hostedbyid" select="dnet:oafSplitId('datasource', //oaf:hostedBy/@id)"/>
35
                <xsl:variable name="hostedbyname" select="//oaf:hostedBy/@name"/>
36
37
                <xsl:variable name="collectedfromid" select="dnet:oafSplitId('datasource', //oaf:collectedFrom/@id)"/>
38
                <xsl:variable name="collectedfromname" select="//oaf:collectedFrom/@name"/>
39
40 40708 claudio.at
                <xsl:variable name="originalidTest" select="/record/*[local-name() = 'header']/*[local-name() = 'recordIdentifier']"/>
41
                <xsl:variable name="originalid">
42
                    <xsl:choose>
43
                        <xsl:when test="contains($originalidTest, '::')">
44
                            <xsl:value-of select="substring-after($originalidTest, '::')"/>
45
                        </xsl:when>
46
                        <xsl:otherwise>
47
                            <xsl:value-of select="$originalidTest"/>
48
                        </xsl:otherwise>
49
                    </xsl:choose>
50
                </xsl:variable>
51
52 39441 claudio.at
                <xsl:variable name="result"
53 40708 claudio.at
                              select="dnet:oafResult($resultId, $provenance, $trust, $about, $hostedbyid, $hostedbyname,
54
	                          $collectedfromid, $collectedfromname, $originalid, $dateofcollection, $dateoftransformation, $metadata)"/>
55 39441 claudio.at
56 44129 claudio.at
                <ROWS>
57
	                <ROW targetKey="{$resultId}" targetColumnFamily="result">
58
                        <QUALIFIER name="{concat('update_', date:nanoTime())}" type="base64"><xsl:value-of select="$result"/></QUALIFIER>
59
                    </ROW>
60
                </ROWS>
61 39441 claudio.at
            </xsl:otherwise>
62
        </xsl:choose>
63
    </xsl:template>
64
65 26600 sandro.lab
</xsl:stylesheet>