- use iso639-2 for language tag for dc:language

- list mn. 100 record for ListRecords request
- add header("Content-Type", "application/xml; charset=utf-8") inside oai.controller.ts
This commit is contained in:
Arno Kaimbacher 2022-11-29 11:37:20 +01:00
parent 6944deac83
commit 3e24bdd92f
7 changed files with 57 additions and 43 deletions

View file

@ -697,24 +697,23 @@
<!-- <gmd:onLine> -->
<xsl:template name="datacite_identifier">
<xsl:if test="
starts-with(Identifier/@Value, 'doi:') or
Identifier/@Type = 'Doi' or
starts-with(Identifier/@Value, 'http://')">
<xsl:for-each select="*[name() = 'Identifier']">
<xsl:variable name="identifier" select="."/>
<xsl:if test="starts-with($identifier/@Value, 'doi:') or $identifier/@Type = 'Doi' or starts-with($identifier/@Value, 'http://')">
<gmd:onLine>
<gmd:CI_OnlineResource>
<gmd:linkage>
<gmd:URL>
<xsl:choose>
<xsl:when test="starts-with(Identifier/@Value, 'doi:')">
<xsl:when test="starts-with($identifier/@Value, 'doi:')">
<!-- stower http auf https gesetzt -->
<xsl:value-of select="concat('http://dx.doi.org/', substring-after(Identifier/@Value, 'doi:'))"/>
<xsl:value-of select="concat('http://dx.doi.org/', substring-after($identifier/@Value, 'doi:'))"/>
</xsl:when>
<xsl:when test="Identifier/@Type = 'Doi'">
<xsl:value-of select="concat('http://dx.doi.org/', normalize-space(Identifier/@Value))"/>
<xsl:when test="$identifier/@Type = 'Doi'">
<xsl:value-of select="concat('http://dx.doi.org/', normalize-space($identifier/@Value))"/>
</xsl:when>
<xsl:when test="starts-with(Identifier/@Value, 'http://')">
<xsl:value-of select="normalize-space(Identifier/@Value)"/>
<xsl:when test="starts-with($identifier/@Value, 'http://')">
<xsl:value-of select="normalize-space($identifier/@Value)"/>
</xsl:when>
</xsl:choose>
</gmd:URL>
@ -736,7 +735,8 @@
</gmd:function>
</gmd:CI_OnlineResource>
</gmd:onLine>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:template>
<!-- <gmd:onLine> -->

8
assets/langCodeMap.xml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- langCodeMap.xml -->
<langCodeMap>
<langCode iso639-1="de" iso639-2="ger"/>
<langCode iso639-1="en" iso639-2="eng"/>
<langCode iso639-1="es" iso639-2="spa"/>
<langCode iso639-1="it" iso639-2="ita"/>
</langCodeMap>

View file

@ -124,29 +124,32 @@
<!-- gmd:identifier -->
<!-- stower 2022, identifer gba https://doi.org/10.24341/tethys.53 -->
<gmd:identifier>
<gmd:MD_Identifier>
<gmd:code>
<gco:CharacterString>
<xsl:variable name="datacite-identifier" select="Identifier[@Type = 'Doi']"/>
<xsl:if test="string-length($datacite-identifier/@Value) &gt; 0 and count([$datacite-identifier/@Type = 'Doi']) &gt; 0">
<xsl:choose>
<xsl:when test="starts-with($datacite-identifier/@Value, 'doi:') or contains($datacite-identifier/@Value, 'doi.org')">
<xsl:value-of select="$datacite-identifier/@Value"/>
</xsl:when>
<xsl:when test="count($datacite-identifier[@Type = 'Doi']) &gt; 0 and $datacentre='Tethys RDR'">
<xsl:value-of select="concat(
'https://doi.org/',
string($datacite-identifier/@Value)
)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$datacite-identifier/@Value"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</gco:CharacterString>
</gmd:code>
</gmd:MD_Identifier>
<xsl:for-each select="*[name() = 'Identifier']">
<!-- <xsl:variable name="datacite-identifier" select="Identifier[@Type = 'Doi']"/> -->
<xsl:variable name="datacite-identifier" select=".[@Type = 'Doi']"/>
<xsl:if test="string-length(.[@Type = 'Doi']/@Value) &gt; 0 and count([.[@Type = 'Doi']/@Type = 'Doi']) &gt; 0">
<gmd:MD_Identifier>
<gmd:code>
<gco:CharacterString>
<xsl:choose>
<xsl:when test="starts-with(.[@Type = 'Doi']/@Value, 'doi:') or contains(.[@Type = 'Doi']/@Value, 'doi.org')">
<xsl:value-of select=".[@Type = 'Doi']/@Value"/>
</xsl:when>
<xsl:when test="count(.[@Type = 'Doi']) &gt; 0 and $datacentre='Tethys RDR'">
<xsl:value-of select="concat(
'https://doi.org/',
string(.[@Type = 'Doi']/@Value)
)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select=".[@Type = 'Doi']/@Value"/>
</xsl:otherwise>
</xsl:choose>
</gco:CharacterString>
</gmd:code>
</gmd:MD_Identifier>
</xsl:if>
</xsl:for-each>
</gmd:identifier>
<!-- gmd:citedResponsibleParty - creator -->