Edit C:\dspace\config\crosswalks\oai\metadataFormats\mets.xsl
<?xml version="1.0" encoding="UTF-8" ?> <!-- The contents of this file are subject to the license and copyright detailed in the LICENSE and NOTICE files at the root of the source tree and available online at http://www.dspace.org/license/ Developed by DSpace @ Lyncode <dspace@lyncode.com> > http://www.loc.gov/standards/mets/mets.xsd --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://www.lyncode.com/xoai" xmlns:date="http://exslt.org/dates-and-times" extension-element-prefixes="date" version="1.0"> <xsl:output omit-xml-declaration="yes" method="xml" indent="yes" /> <xsl:template match="/"> <mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="DSpace_ITEM_10400.7-31" TYPE="DSpace ITEM" PROFILE="DSpace METS SIP Profile 1.0" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/mets.xsd"> <xsl:attribute name="OBJID"> hdl:<xsl:value-of select="doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text()"></xsl:value-of> </xsl:attribute> <xsl:attribute name="ID"> DSpace_ITEM_<xsl:value-of select="translate(doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(),'/','-')"></xsl:value-of> </xsl:attribute> <metsHdr> <xsl:attribute name="CREATEDATE"> <xsl:value-of select="concat(date:format-date(date:date(), 'yyyy-MM-dd'), 'T' , date:format-date(date:time(), 'HH:mm:ss'), 'Z')"/> </xsl:attribute> <agent ROLE="CUSTODIAN" TYPE="ORGANIZATION"> <name><xsl:value-of select="doc:metadata/doc:element[@name='repository']/doc:field[@name='name']/text()" /></name> </agent> </metsHdr> <dmdSec> <xsl:attribute name="ID"> <xsl:value-of select="concat('DMD_', translate(doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'))" /> </xsl:attribute> <mdWrap MDTYPE="MODS"> <xmlData xmlns:mods="http://www.loc.gov/mods/v3" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-1.xsd"> <mods:mods xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-1.xsd"> <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='contributor']/doc:element"> <xsl:for-each select="doc:element/doc:field[@name='value']"> <mods:name> <mods:role> <mods:roleTerm type="text"><xsl:value-of select="../../@name" /></mods:roleTerm> </mods:role> <mods:namePart><xsl:value-of select="text()" /></mods:namePart> </mods:name> </xsl:for-each> </xsl:for-each> <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='date']/doc:element[@name='accessioned']"> <mods:extension> <mods:dateAccessioned encoding="iso8601"> <xsl:value-of select="doc:element/doc:field[@name='value']/text()" /> </mods:dateAccessioned> </mods:extension> </xsl:for-each> <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='date']/doc:element[@name='available']"> <mods:extension> <mods:dateAvailable encoding="iso8601"> <xsl:value-of select="doc:element/doc:field[@name='value']/text()" /> </mods:dateAvailable> </mods:extension> </xsl:for-each> <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='date']/doc:element[@name='issued']"> <mods:originInfo> <mods:dateIssued encoding="iso8601"> <xsl:value-of select="doc:element/doc:field[@name='value']/text()" /> </mods:dateIssued> </mods:originInfo> </xsl:for-each> <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='identifier']/doc:element"> <mods:identifier> <xsl:attribute name="type"> <xsl:value-of select="@name"></xsl:value-of> </xsl:attribute> <xsl:value-of select="doc:element/doc:field[@name='value']/text()" /> </mods:identifier> </xsl:for-each> <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='description']/doc:element[@name='abstract']/doc:element"> <mods:abstract> <xsl:value-of select="doc:field[@name='value']/text()" /> </mods:abstract> </xsl:for-each> <mods:language> <mods:languageTerm authority="rfc3066"><xsl:value-of select="doc:metadata/doc:element[@name='dc']/doc:element[@name='language']/doc:element/doc:element/doc:field[@name='value']"></xsl:value-of></mods:languageTerm> </mods:language> <mods:accessCondition type="useAndReproduction"><xsl:value-of select="doc:metadata/doc:element[@name='dc']/doc:element[@name='rights']/doc:element/doc:field[@name='value']"></xsl:value-of></mods:accessCondition> <xsl:for-each select="doc:metadata/doc:element[@name='dc']/doc:element[@name='subject']/doc:element/doc:field[@name='value']"> <mods:subject> <mods:topic><xsl:value-of select="text()" /></mods:topic> </mods:subject> </xsl:for-each> <mods:titleInfo> <mods:title><xsl:value-of select="doc:metadata/doc:element[@name='dc']/doc:element[@name='title']/doc:element/doc:field[@name='value']"></xsl:value-of></mods:title> </mods:titleInfo> <mods:genre><xsl:value-of select="doc:metadata/doc:element[@name='dc']/doc:element[@name='type']/doc:element/doc:field[@name='value']"></xsl:value-of></mods:genre> </mods:mods> </xmlData> </mdWrap> </dmdSec> <xsl:if test="doc:metadata/doc:element[@name='license']/doc:field[@name='bin']"> <amdSec> <xsl:attribute name="ID"> <xsl:value-of select="concat('TMD_', translate(doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'))" /> </xsl:attribute> <rightsMD> <xsl:attribute name="ID"> <xsl:value-of select="concat('RIG_', translate(doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'))" /> </xsl:attribute> <mdWrap MIMETYPE="text/plain" MDTYPE="OTHER" OTHERMDTYPE="DSpaceDepositLicense"> <binData><xsl:value-of select="doc:metadata/doc:element[@name='license']/doc:field[@name='bin']/text()" /></binData> </mdWrap> </rightsMD> </amdSec> </xsl:if> <xsl:for-each select="doc:metadata/doc:element[@name='bundles']/doc:element/doc:field[text()='ORIGINAL']"> <xsl:for-each select="../doc:element[@name='bitstreams']/doc:element"> <amdSec> <xsl:attribute name="ID"> <xsl:value-of select="concat('FO_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <techMD> <xsl:attribute name="ID"> <xsl:value-of select="concat('TECH_O_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <mdWrap MDTYPE="PREMIS"> <xmlData xmlns:premis="http://www.loc.gov/standards/premis" xsi:schemaLocation="http://www.loc.gov/standards/premis http://www.loc.gov/standards/premis/PREMIS-v1-0.xsd"> <premis:premis> <premis:object> <premis:objectIdentifier> <premis:objectIdentifierType>URL</premis:objectIdentifierType> <premis:objectIdentifierValue><xsl:value-of select="doc:field[@name='url']/text()" /></premis:objectIdentifierValue> </premis:objectIdentifier> <premis:objectCategory>File</premis:objectCategory> <premis:objectCharacteristics> <premis:fixity> <premis:messageDigestAlgorithm><xsl:value-of select="doc:field[@name='checksumAlgorithm']/text()" /></premis:messageDigestAlgorithm> <premis:messageDigest><xsl:value-of select="doc:field[@name='checksum']/text()" /></premis:messageDigest> </premis:fixity> <premis:size><xsl:value-of select="doc:field[@name='size']/text()" /></premis:size> <premis:format> <premis:formatDesignation> <premis:formatName><xsl:value-of select="doc:field[@name='format']/text()" /></premis:formatName> </premis:formatDesignation> </premis:format> </premis:objectCharacteristics> <premis:originalName><xsl:value-of select="doc:field[@name='name']/text()" /></premis:originalName> </premis:object> </premis:premis> </xmlData> </mdWrap> </techMD> </amdSec> </xsl:for-each> </xsl:for-each> <xsl:for-each select="doc:metadata/doc:element[@name='bundles']/doc:element/doc:field[text()='TEXT']"> <xsl:for-each select="../doc:element[@name='bitstreams']/doc:element"> <amdSec> <xsl:attribute name="ID"> <xsl:value-of select="concat('FT_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <techMD> <xsl:attribute name="ID"> <xsl:value-of select="concat('TECH_T_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <mdWrap MDTYPE="PREMIS"> <xmlData xmlns:premis="http://www.loc.gov/standards/premis" xsi:schemaLocation="http://www.loc.gov/standards/premis http://www.loc.gov/standards/premis/PREMIS-v1-0.xsd"> <premis:premis> <premis:object> <premis:objectIdentifier> <premis:objectIdentifierType>URL</premis:objectIdentifierType> <premis:objectIdentifierValue><xsl:value-of select="doc:field[@name='url']/text()" /></premis:objectIdentifierValue> </premis:objectIdentifier> <premis:objectCategory>File</premis:objectCategory> <premis:objectCharacteristics> <premis:fixity> <premis:messageDigestAlgorithm><xsl:value-of select="doc:field[@name='checksumAlgorithm']/text()" /></premis:messageDigestAlgorithm> <premis:messageDigest><xsl:value-of select="doc:field[@name='checksum']/text()" /></premis:messageDigest> </premis:fixity> <premis:size><xsl:value-of select="doc:field[@name='size']/text()" /></premis:size> <premis:format> <premis:formatDesignation> <premis:formatName><xsl:value-of select="doc:field[@name='format']/text()" /></premis:formatName> </premis:formatDesignation> </premis:format> </premis:objectCharacteristics> <premis:originalName><xsl:value-of select="doc:field[@name='name']/text()" /></premis:originalName> </premis:object> </premis:premis> </xmlData> </mdWrap> </techMD> </amdSec> </xsl:for-each> </xsl:for-each> <xsl:if test="count(doc:metadata/doc:element[@name='bundles']/doc:element/doc:field[text()='ORIGINAL']) > 0"> <fileSec> <xsl:for-each select="doc:metadata/doc:element[@name='bundles']/doc:element/doc:field[text()='ORIGINAL']"> <fileGrp USE="ORIGINAL"> <xsl:for-each select="../doc:element[@name='bitstreams']/doc:element"> <file> <xsl:attribute name="ID"> <xsl:value-of select="concat('BITSTREAM_ORIGINAL_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <xsl:attribute name="MIMETYPE"> <xsl:value-of select="doc:field[@name='format']/text()" /> </xsl:attribute> <xsl:attribute name="SEQ"> <xsl:value-of select="doc:field[@name='sid']/text()" /> </xsl:attribute> <xsl:attribute name="SIZE"> <xsl:value-of select="doc:field[@name='size']/text()" /> </xsl:attribute> <xsl:attribute name="CHECKSUM"> <xsl:value-of select="doc:field[@name='checksum']/text()" /> </xsl:attribute> <xsl:attribute name="CHECKSUMTYPE"> <xsl:value-of select="doc:field[@name='checksumAlgorithm']/text()" /> </xsl:attribute> <xsl:attribute name="ADMID"> <xsl:value-of select="concat('FO_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <xsl:attribute name="GROUPID"> <xsl:value-of select="concat('GROUP_BITSTREAM_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <FLocat LOCTYPE="URL" xlink:type="simple"> <xsl:attribute name="xlink:href"> <xsl:value-of select="doc:field[@name='url']/text()" /> </xsl:attribute> </FLocat> </file> </xsl:for-each> </fileGrp> </xsl:for-each> <xsl:for-each select="doc:metadata/doc:element[@name='bundles']/doc:element/doc:field[text()='TEXT']"> <fileGrp USE="TEXT"> <xsl:for-each select="../doc:element[@name='bitstreams']/doc:element"> <file> <xsl:attribute name="ID"> <xsl:value-of select="concat('BITSTREAM_TEXT_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <xsl:attribute name="MIMETYPE"> <xsl:value-of select="doc:field[@name='format']/text()" /> </xsl:attribute> <xsl:attribute name="SEQ"> <xsl:value-of select="doc:field[@name='sid']/text()" /> </xsl:attribute> <xsl:attribute name="SIZE"> <xsl:value-of select="doc:field[@name='size']/text()" /> </xsl:attribute> <xsl:attribute name="CHECKSUM"> <xsl:value-of select="doc:field[@name='checksum']/text()" /> </xsl:attribute> <xsl:attribute name="CHECKSUMTYPE"> <xsl:value-of select="doc:field[@name='checksumAlgorithm']/text()" /> </xsl:attribute> <xsl:attribute name="ADMID"> <xsl:value-of select="concat('FT_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <xsl:attribute name="GROUPID"> <xsl:value-of select="concat('GROUP_BITSTREAM_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> <FLocat LOCTYPE="URL" xlink:type="simple"> <xsl:attribute name="xlink:href"> <xsl:value-of select="doc:field[@name='url']/text()" /> </xsl:attribute> </FLocat> </file> </xsl:for-each> </fileGrp> </xsl:for-each> </fileSec> </xsl:if> <structMap LABEL="DSpace Object" TYPE="LOGICAL"> <div TYPE="DSpace Object Contents"> <xsl:attribute name="ADMID"> <xsl:value-of select="concat('DMD_', translate(doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'))" /> </xsl:attribute> <xsl:for-each select="doc:metadata/doc:element[@name='bundles']/doc:element/doc:field[text()='ORIGINAL']"> <xsl:for-each select="../doc:element[@name='bitstreams']/doc:element"> <div TYPE="DSpace BITSTREAM"> <fptr> <xsl:attribute name="FILEID"> <xsl:value-of select="concat('BITSTREAM_ORIGINAL_', translate(/doc:metadata/doc:element[@name='others']/doc:field[@name='handle']/text(), '/', '_'), '_', doc:field[@name='sid']/text())" /> </xsl:attribute> </fptr> </div> </xsl:for-each> </xsl:for-each> </div> </structMap> </mets> </xsl:template> </xsl:stylesheet>
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de