diff --git a/src/main/resources/xsl/biocol2oai_dc.xsl b/src/main/resources/xsl/biocol2oai_dc.xsl index f4183bf1c0aea050cc65ec8778ef6016f8d7f590..fd6aeb4c20db7e087090ce8ed0d45637817e584b 100644 --- a/src/main/resources/xsl/biocol2oai_dc.xsl +++ b/src/main/resources/xsl/biocol2oai_dc.xsl @@ -26,7 +26,7 @@ <oai_dc:dc> <!-- dc:title - title --> - <xsl:element name="dc:title"> + <dc:title> <xsl:choose> <xsl:when test="./metadata/def.biocol09/biocol09"> <xsl:value-of select="./metadata/def.biocol09/biocol09/text()" /> @@ -35,87 +35,108 @@ <xsl:value-of select="concat(./metadata/def.biocol30/biocol30/text(), ' | ', ./metadata/def.biocol31/biocol31/text())" /> </xsl:otherwise> </xsl:choose> - </xsl:element> + </dc:title> - <!-- dc:creator - author of record --> - <xsl:element name="dc:creator"> - <xsl:for-each select="./metadata/def.biocol06/biocol06"> - <xsl:if test="position() != 1"> - <xsl:value-of select="' ; '"/> - </xsl:if> - <xsl:value-of select="."/> - </xsl:for-each> - </xsl:element> - - <!-- dc:publisher - collection --> - <xsl:element name="dc:publisher"> - <xsl:value-of select="concat(./metadata/def.biocol02/biocol02/text(), ' ; ', 'Universität Leipzig')"/> - </xsl:element> - + <!-- dc:type - objectType --> + <xsl:for-each select="./metadata/def.biocol07/biocol07"> + <dc:type> + <xsl:variable name="subjectlinkURL"> + <xsl:call-template name="linkClassQueryURL"> + <xsl:with-param name="classid" select="@classid"/> + <xsl:with-param name="categid" select="@categid"/> + </xsl:call-template> + </xsl:variable> + <xsl:for-each select="document($subjectlinkURL)/mycoreclass/categories/category/label[lang($DefaultLang)]"> + <xsl:value-of select="@text"/> + </xsl:for-each> + </dc:type> + </xsl:for-each> + <!-- dc:format - format --> <xsl:choose> <xsl:when test="./metadata/def.biocol07/biocol07[@categid='objecttype_otolith']"> - <xsl:element name="dc:format">biogenes Kalkkonkrement</xsl:element> + <dc:format>biogenes Kalkkonkrement</dc:format> </xsl:when> <xsl:when test="./metadata/def.biocol07/biocol07[@categid='objecttype_herbar']"> - <xsl:element name="dc:format">Plantea</xsl:element> + <dc:format>Plantea</dc:format> </xsl:when> <xsl:otherwise> - <xsl:element name="dc:format">unknown</xsl:element> + <dc:format>unknown</dc:format> </xsl:otherwise> - </xsl:choose> - - <!-- dc:type - objectType --> - <xsl:element name="dc:type"> - <xsl:value-of select="./metadata/def.biocol07/biocol07"/> - </xsl:element> + </xsl:choose> - + <!-- dc:coverage - places --> + <xsl:if test="./metadata/def.biocol61/biocol61 or ./metadata/def.biocol62/biocol62 or ./metadata/def.biocol63/biocol63"> + <dc:coverage> + <xsl:value-of select="concat(./metadata/def.biocol61/biocol61, ' | ', ./metadata/def.biocol62/biocol62, ' | ', + ./metadata/def.biocol63/biocol63)" /> + </dc:coverage> + </xsl:if> + <!-- dc:subject - genre and type --> <xsl:if test="./metadata/def.biocol20/biocol20 or ./metadata/def.biocol21/biocol21 or ./metadata/def.biocol22/biocol22 or ./metadata/def.biocol23/biocol23 or ./metadata/def.biocol24/biocol24 or ./metadata/def.biocol25/biocol25 or ./metadata/def.biocol26/biocol26 or ./metadata/def.biocol27/biocol27 or ./metadata/def.biocol28/biocol28 or ./metadata/def.biocol29/biocol29"> - <xsl:element name="dc:subject"> + <dc:subject> <xsl:value-of select="concat(./metadata/def.biocol20/biocol20, ' | ', ./metadata/def.biocol21/biocol21, ' | ', ./metadata/def.biocol22/biocol22, ' | ', ./metadata/def.biocol23/biocol23, ' | ', ./metadata/def.biocol24/biocol24, ' | ', ./metadata/def.biocol25/biocol25, ' | ', ./metadata/def.biocol26/biocol26, ' | ', ./metadata/def.biocol27/biocol27, ' | ', ./metadata/def.biocol28/biocol28, ' | ', ./metadata/def.biocol29/biocol29)" /> - </xsl:element> - </xsl:if> - + </dc:subject> + </xsl:if> + <!-- dc:language - language --> - <xsl:element name="dc:language">Deutsch</xsl:element> + <dc:language>ger</dc:language> + + <!-- dc:creator - author of record --> + <dc:creator> + <xsl:for-each select="./metadata/def.biocol06/biocol06"> + <xsl:if test="position() != 1"> + <xsl:value-of select="' ; '"/> + </xsl:if> + <xsl:value-of select="."/> + </xsl:for-each> + </dc:creator> - <!-- dc:coverage - places --> - <xsl:if test="./metadata/def.biocol61/biocol61 or ./metadata/def.biocol62/biocol62 or ./metadata/def.biocol63/biocol63"> - <xsl:element name="dc:coverage"> - <xsl:value-of select="concat(./metadata/def.biocol61/biocol61, ' | ', ./metadata/def.biocol62/biocol62, ' | ', - ./metadata/def.biocol63/biocol63)" /> - </xsl:element> - </xsl:if> + <!-- dc:publisher - collection --> + <xsl:for-each select="./metadata/def.biocol02/biocol02"> + <xsl:variable name="subjectlinkURL"> + <xsl:call-template name="linkClassQueryURL"> + <xsl:with-param name="classid" select="@classid"/> + <xsl:with-param name="categid" select="@categid"/> + </xsl:call-template> + </xsl:variable> + <xsl:for-each select="document($subjectlinkURL)/mycoreclass/categories/category/label[lang($DefaultLang)]"> + <dc:publisher> + <xsl:value-of select="concat(@text, ' ; ', 'Universität Leipzig')"/> + </dc:publisher> + </xsl:for-each> + </xsl:for-each> + + <!-- dc:identifier - inventory number, alternate ID and @ID --> - <xsl:element name="dc:identifier"> + <dc:identifier> <xsl:value-of select="./metadata/def.biocol01/biocol01"/> <xsl:value-of select="' ; '"/> <xsl:value-of select="concat($WebApplicationBaseURL,'receive/',@ID)"/> - </xsl:element> + </dc:identifier> <!-- dc:date - createdate --> - <xsl:element name="dc:date"> + <dc:date> <xsl:value-of select="substring-before(./service/servdates/servdate[@type='createdate'], 'T')"/> - </xsl:element> + </dc:date> <!-- dc:contributor --> - <xsl:element name="dc:contributor"> + <dc:contributor> <xsl:text>Jens Kupferschmidt; Universitätsrechenzentrum Leipzig; Deutschland</xsl:text> - </xsl:element> + </dc:contributor> <!-- dc:rights - license --> - <xsl:element name="dc:rights"> + <dc:rights> <xsl:value-of select="i18n:translate('module.dptbase.license.shorttext')"/> - </xsl:element> + </dc:rights> </oai_dc:dc> </xsl:template>