Commit 1c39370d authored by Gerrit Hübbers's avatar Gerrit Hübbers 🃏
Browse files

Update configurations to give updated DOI prefixes and DOI now always goes to dc.identifier.doi

parent 0bf46cfc
......@@ -7,6 +7,7 @@ import org.gesis.dda.feeder.FeedingContext;
import org.gesis.dda.feeder.NextIncrementalHarvestingIntervalStrategy;
import org.gesis.dda.filter.BundleFilter;
import org.gesis.dda.filter.impl.AcceptAnyBundleFilter;
import org.gesis.dda.filter.impl.Fqs2SsoarBundleFilter;
import org.gesis.dda.filter.impl.SsoarTargetRepositoryBundleFilter;
import org.gesis.dda.filter.impl.Wbv2SsoarBundleFilter;
import org.gesis.dda.persist.PersistableHelper;
......@@ -116,19 +117,23 @@ public class FeedingContextFactory {
String sourceId = source.getReference();
String targetId = target.getReference();
String key = sourceId + "$$" + targetId;
log.debug("Looking up MetadataTransformer for key {}", key);
switch (key) {
case "http://dspace.wbv.de:8888/oai/request$$ssoar":
log.debug("using http://dspace.wbv.de:8888/oai/request$$ssoar");
result = new Wbv2SsoarBundleFilter();
break;
case "http://www.qualitative-research.net/index.php/fqs/oai/$$ssoar":
log.info("using Fqs2SsoarBundleFilter");
result = new Fqs2SsoarBundleFilter();
break;
default:
log.debug("using default IdentityMetadataTransformer");
result = new AcceptAnyBundleFilter();
break;
}
return result;
}
......
package org.gesis.dda.filter.impl;
import java.util.Set;
import org.gesis.dda.filter.BundleFilter;
import org.gesis.dda.publishing.domain.Bundle;
import org.gesis.dda.publishing.domain.Metadatum;
public class Fqs2SsoarBundleFilter implements BundleFilter {
/**
* SSOAR already has everything up to and including dc.source.volume=16 dc.source.issue=3 ->
* there are only three issues in volume=16 -> therefore: if volume <= 16, then filter away bundle
*/
@Override
public boolean test(Bundle bundle) {
boolean result;
Set<Metadatum> metadata = bundle.getMetadata();
Metadatum volume = metadata.stream().filter( m -> m.getKey().equals("dc.source.volume") ).findFirst().orElse(null);
if (null != volume) {
String volumeValueString = volume.getValue();
int volumeValue = Integer.parseInt(volumeValueString);
if ( volumeValue <= 16 ) {
result = false;
}
else {
result = true;
}
}
else {
result = true;
}
return result;
}
}
......@@ -71,7 +71,7 @@ public class Wbv2SsoarMetadataTransformer implements MetadataTransformer {
else if ( originalMetadatumKey.matches("dc.identifier.doi") ) {
String cleanedMetadatumValue = originalMetadatumValue;
if ( ! cleanedMetadatumValue.startsWith("http") ) {
cleanedMetadatumValue = "https://dx.doi.org/" + cleanedMetadatumValue;
cleanedMetadatumValue = "https://doi.org/" + cleanedMetadatumValue;
}
Metadatum newMetadatum = new SimpleMetadatum("dc.identifier.doi", cleanedMetadatumValue);
result.add(newMetadatum);
......
......@@ -12,6 +12,8 @@ import java.time.LocalDate;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import org.apache.commons.io.IOUtils;
......@@ -446,7 +448,7 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.other", "en", "social inclusion") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.other", "en", "socio-economic equality") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "The Socio-Economic Integration of Ethnic Minorities") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "http://dx.doi.org/10.17645/si.v5i1.943") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.doi", "https://doi.org/10.17645/si.v5i1.943") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "MISC") ) );
......@@ -512,7 +514,7 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.other", "en", "surveillance") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "Outrage without Consequences? Post-Snowden Discourses and Governmental Practice in Germany") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "http://dx.doi.org/10.17645/mac.v5i1.814") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.doi", "https://doi.org/10.17645/mac.v5i1.814") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "MISC") ) );
......@@ -577,7 +579,7 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.other", "en", "socio-cultural") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "Engendering Creative City Image by Using Information Communication Technology in Developing Countries") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "http://dx.doi.org/10.17645/up.v1i3.686") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.doi", "https://doi.org/10.17645/up.v1i3.686") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "MISC") ) );
LOG.info("---------------------------------------");
......@@ -640,7 +642,7 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.other", "en", "prisons") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "The Radicalisation of Prison Inmates: A Review of the Literature on Recruitment, Religion and Prisoner Vulnerability") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "http://dx.doi.org/10.12924/johs2013.09010004") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.doi", "https://doi.org/10.12924/johs2013.09010004") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.dda.reference", "http://www.librelloph.com/journalofhumansecurity/oai/@@oai:ojs.www.librelloph.com:article/18") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "CHE") ) );
......@@ -707,7 +709,7 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.other", "en", "urban policies") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "Urban Agriculture, Commons and Urban Policies: Scaling up Local Innovation") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "http://dx.doi.org/10.12924/cis2016.04010010") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.doi", "https://doi.org/10.12924/cis2016.04010010") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.dda.reference", "http://www.librelloph.com/challengesinsustainability/oai/@@oai:ojs.www.librelloph.com:article/247") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "CHE") ) );
......@@ -766,11 +768,12 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.other", "en", "Foreign Fighters; Islamic State; Jabhat al Nusra; Southeast Asia; Syria and Iraq") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "Mobilizations and Movements of Foreign Fighters from Southeast Asia to Syria and Iraq") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "http://dx.doi.org/10.21512/jas.v4i1.1533") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.doi", "https://doi.org/10.21512/jas.v4i1.1533") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.dda.reference", "http://journal.binus.ac.id/index.php/jas/oai/@@oai:ojs.journal.binus.ac.id:article/1533") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "MISC") ) );
}
// UPDATE 2018-05-04 REGION currently does not provide nlm metadata prefix
@Test
public void getSinglePublicationRegion() throws IOException {
Map<String, String> map = new HashMap<>();
......@@ -788,6 +791,7 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
XsltTransformerOaiPmhBundlesStreamSource bss = new XsltTransformerOaiPmhBundlesStreamSource("http://openjournals.wu.ac.at/ojs/index.php/region/oai/", map);
Bundle bundle = bss.getBundle("oai:ojs.openjournals.wu.ac.at:article/121");
LOG.info("{}", bundle);
Set<Metadatum> metadata = bundle.getMetadata();
......@@ -821,7 +825,7 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
assertTrue( metadata.contains( new SimpleMetadatum("dc.subject.other", "en", "Decentralised government") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "Subjective Wellbeing Impacts of National and Subnational Fiscal Policies") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "http://dx.doi.org/10.18335/region.v3i1.121") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.doi", "https://doi.org/10.18335/region.v3i1.121") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.dda.reference", "http://openjournals.wu.ac.at/ojs/index.php/region/oai/@@oai:ojs.openjournals.wu.ac.at:article/121") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "AUT") ) );
......@@ -864,7 +868,8 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
metadata.stream().map(Object::toString).forEach(LOG::info);
assertTrue( metadata.contains( new SimpleMetadatum("dc.type.stock", "article") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.type.document", "32") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.source.journal", "Forum Qualitative Sozialforschung / Forum: Qualitative Social Research") ) );
//assertTrue( metadata.contains( new SimpleMetadatum("dc.source.journal", "Forum Qualitative Sozialforschung / Forum: Qualitative Social Research") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.source.journal", "132") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.description.pubstatus", "1") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.contributor.author", "Wimbauer, Christine") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.contributor.author", "Motakef, Mona") ) );
......@@ -903,23 +908,55 @@ public class XsltTransformerOaiPmhBundlesStreamSourceTest {
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.title.alternative", "en", "Joint Couple Interviews in Sociological Research on Couples: Methodological and Practical Considerations") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.title.alternative") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "http://dx.doi.org/10.18335/region.v3i1.121") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.dda.reference", "http://openjournals.wu.ac.at/ojs/index.php/region/oai/@@oai:ojs.openjournals.wu.ac.at:article/121") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "AUT") ) );
LOG.info("---------------------------------------");
bundle = bss.getBundle("oai:ojs.openjournals.wu.ac.at:article/188");
LOG.info("{}", bundle);
metadata = bundle.getMetadata();
metadata.stream().map(Object::toString).forEach(LOG::info);
assertTrue( metadata.contains( new SimpleMetadatum("dc.title", "en", "Well-being in cities and regions: measurement, analysis and policy practices") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.description.review", "2") ) );
assertEquals(1, metadata.stream().filter(m -> m.getKey().equals("dc.description.review") ).count() );
assertTrue( metadata.contains( new SimpleMetadatum("dc.source.issuetopic", "Special Issue: Well-being in cities and regions: measurement, analysis and policy practices") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.doi", "https://doi.org/10.17169/fqs-18.2.2671") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.identifier.urn", "urn:nbn:de:0114-fqs170243") ) );
assertTrue( metadata.contains( new SimpleMetadatum("internal.dda.reference", "http://www.qualitative-research.net/index.php/fqs/oai/@@oai:www.qualitative-research.net:article/2671") ) );
assertTrue( metadata.contains( new SimpleMetadatum("dc.publisher.country", "DEU") ) );
}
@Test
public void extractUrnFromFqsAbstract() {
String underTest = "Joint couple interviews allow for the collection of data on interactions, negotiations, couple performances, and couple presentations by couples in situ. Joint interviews provide insight into concrete couple practices and representations of those practices as part of the interview as a form of doing couple, but also as doing gender, doing family, doing recognition, or doing inequality. By focusing on individuals-in-couple-relationships, couple interviews can reveal power relations and inequalities within the couple relationship, the processual quality, and the dynamic of the social relation.Joint couple interviews are increasingly employed in interpretive social research, however, less frequently than individual interviews. To date, there has been little systematic work in German-speaking countries on methodological and methodical issues related to joint couple interviews. Proceeding from an interpretative perspective and considering couple relationships as a reality sui generis and as a distinct object of analysis, we outline its interests for sociology. We also briefly review selected empirical studies on couples, and focus especially on methodological questions related to conducting joint couple interviews, as well as limitations and open method(olog)ical questions (not only) for the sociological research on couples.URN: http://nbn-resolving.de/urn:nbn:de:0114-fqs170243";
String expected = "urn:nbn:de:0114-fqs170243";
String actual = extractUrnFromFqsAbstract(underTest);
assertEquals(expected, actual);
underTest = "URN: urn:nbn:de:0114-fqs0701D4Di2";
expected = "urn:nbn:de:0114-fqs0701D4Di2";
actual = extractUrnFromFqsAbstract(underTest);
assertEquals(expected, actual);
}
/*
private String extractUrnFromFqsAbstract(String rawString) {
String result;
int urnMagicValueIndex = rawString.indexOf("urn:nbn:de:");
if (urnMagicValueIndex != -1) {
String underTestFromUrnOnwards = rawString.substring(urnMagicValueIndex);
result = underTestFromUrnOnwards.split("[\n\\.]$")[0];
}
else {
result = null;
}
return result;
}
*/
private String extractUrnFromFqsAbstract(String rawString) {
String result;
Pattern p = Pattern.compile(".*(urn:nbn:de:.*)$");
Matcher m = p.matcher(rawString);
if ( m.find() ) {
result = m.group(1);
}
else {
result = null;
}
return result;
}
@Test
public void getSinglePublicationRelacionesInternacionales() throws IOException {
Map<String, String> map = new HashMap<>();
......
......@@ -125,9 +125,9 @@
</xsl:template>
<xsl:template match="nlm:article-id[@pub-id-type='doi']">
<xsl:variable name="doi" select="concat( 'http://dx.doi.org/', text() )" />
<xsl:variable name="doi" select="concat( 'https://doi.org/', text() )" />
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.identifier.urn'"/>
<xsl:with-param name="key" select="'dc.identifier.doi'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="$doi"/>
</xsl:call-template>
......
......@@ -57,7 +57,14 @@
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.source.journal'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="'Forum Qualitative Sozialforschung / Forum: Qualitative Social Research'"/>
<!-- xsl:with-param name="value" select="'Forum Qualitative Sozialforschung / Forum: Qualitative Social Research'"/ -->
<xsl:with-param name="value" select="'132'"/>
</xsl:call-template>
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'ssoar.contributor.institution'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="'FQS'"/>
</xsl:call-template>
<xsl:call-template name="new-metadatum">
......@@ -132,9 +139,9 @@
</xsl:template>
<xsl:template match="nlm:article-id[@pub-id-type='doi']">
<xsl:variable name="doi" select="concat( 'http://dx.doi.org/', text() )" />
<xsl:variable name="doi" select="concat( 'https://doi.org/', text() )" />
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.identifier.urn'"/>
<xsl:with-param name="key" select="'dc.identifier.doi'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="$doi"/>
</xsl:call-template>
......@@ -159,6 +166,15 @@
<xsl:with-param name="language" select="$sanitizedLanguage"/>
<xsl:with-param name="value" select="nlm:p/text()"/>
</xsl:call-template>
<xsl:variable name="maybeUrn" select="zoai:extractUrnFromFqsAbstract( nlm:p/text() )" />
<xsl:if test="$maybeUrn != ''">
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.identifier.urn'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="$maybeUrn"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template match="nlm:self-uri[ not(@content-type) ]">
......@@ -331,16 +347,29 @@
<xsl:function name="zoai:sanitizeLanguage">
<xsl:param name="inputLanguage" />
<xsl:choose>
<xsl:when test="$inputLanguage = 'ger' or $inputLanguage = 'DE' or $inputLanguage = 'de-DE' or $inputLanguage = 'deu'">
<xsl:value-of select="'de'" />
</xsl:when>
<xsl:when test="$inputLanguage = 'eng' or $inputLanguage = 'EN' or $inputLanguage = 'en-US' or $inputLanguage = 'en-GB'">
<xsl:value-of select="'en'" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$inputLanguage" />
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="$inputLanguage = 'ger' or $inputLanguage = 'DE' or $inputLanguage = 'de-DE' or $inputLanguage = 'deu'">
<xsl:value-of select="'de'" />
</xsl:when>
<xsl:when test="$inputLanguage = 'eng' or $inputLanguage = 'EN' or $inputLanguage = 'en-US' or $inputLanguage = 'en-GB'">
<xsl:value-of select="'en'" />
</xsl:when>
<xsl:when test="$inputLanguage = 'spa' or $inputLanguage = 'ES' or $inputLanguage = 'es-ES' or $inputLanguage = 'esp'">
<xsl:value-of select="'es'" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$inputLanguage" />
</xsl:otherwise>
</xsl:choose>
</xsl:function>
<xsl:function name="zoai:extractUrnFromFqsAbstract">
<xsl:param name="rawString" />
<!-- <xsl:variable name="rawStringAfterUrnMagicMarker" select="substring-after($rawString, 'urn:nbn:de:')" /> -->
<xsl:analyze-string select="$rawString" regex=".*(urn:nbn:de:.*)$">
<xsl:matching-substring>
<xsl:value-of select="regex-group(1)" />
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:function>
</xsl:stylesheet>
\ No newline at end of file
......@@ -105,6 +105,9 @@
<xsl:when test="$inputLanguage = 'eng' or $inputLanguage = 'EN' or $inputLanguage = 'en-US' or $inputLanguage = 'en-GB'">
<xsl:value-of select="'en'" />
</xsl:when>
<xsl:when test="$inputLanguage = 'spa' or $inputLanguage = 'ES' or $inputLanguage = 'es-ES' or $inputLanguage = 'esp'">
<xsl:value-of select="'es'" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$inputLanguage" />
</xsl:otherwise>
......
......@@ -125,9 +125,9 @@
</xsl:template>
<xsl:template match="nlm:article-id[@pub-id-type='doi']">
<xsl:variable name="doi" select="concat( 'http://dx.doi.org/', text() )" />
<xsl:variable name="doi" select="concat( 'https://doi.org/', text() )" />
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.identifier.urn'"/>
<xsl:with-param name="key" select="'dc.identifier.doi'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="$doi"/>
</xsl:call-template>
......
......@@ -125,9 +125,9 @@
</xsl:template>
<xsl:template match="nlm:article-id[@pub-id-type='doi']">
<xsl:variable name="doi" select="concat( 'http://dx.doi.org/', text() )" />
<xsl:variable name="doi" select="concat( 'https://doi.org/', text() )" />
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.identifier.urn'"/>
<xsl:with-param name="key" select="'dc.identifier.doi'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="$doi"/>
</xsl:call-template>
......
......@@ -119,9 +119,9 @@
</xsl:template>
<xsl:template match="nlm:article-id[@pub-id-type='doi']">
<xsl:variable name="doi" select="concat( 'http://dx.doi.org/', text() )" />
<xsl:variable name="doi" select="concat( 'https://doi.org/', text() )" />
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.identifier.urn'"/>
<xsl:with-param name="key" select="'dc.identifier.doi'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="$doi"/>
</xsl:call-template>
......
......@@ -119,9 +119,9 @@
</xsl:template>
<xsl:template match="nlm:article-id[@pub-id-type='doi']">
<xsl:variable name="doi" select="concat( 'http://dx.doi.org/', text() )" />
<xsl:variable name="doi" select="concat( 'https://doi.org/', text() )" />
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.identifier.urn'"/>
<xsl:with-param name="key" select="'dc.identifier.doi'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="$doi"/>
</xsl:call-template>
......
......@@ -119,9 +119,9 @@
</xsl:template>
<xsl:template match="nlm:article-id[@pub-id-type='doi']">
<xsl:variable name="doi" select="concat( 'http://dx.doi.org/', text() )" />
<xsl:variable name="doi" select="concat( 'https://doi.org/', text() )" />
<xsl:call-template name="new-metadatum">
<xsl:with-param name="key" select="'dc.identifier.urn'"/>
<xsl:with-param name="key" select="'dc.identifier.doi'"/>
<xsl:with-param name="language" select="''"/>
<xsl:with-param name="value" select="$doi"/>
</xsl:call-template>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment