Der nach dem MODS-Schema exportierte XML-Strom kann durch folgende XSL-Datei in einen ZMS-kompatiblen XML-Strom transformiert werden:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> <!ENTITY nl " "> <!ENTITY copy "©"> <!ENTITY mdash "—"> <!ENTITY middot "·"> ]> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.loc.gov/mods/v3"> <xsl:output method="xml" version="1.0" encoding="utf-8" omit-xml-declaration="no" standalone="yes" cdata-section-elements="" indent="yes" doctype-system="" media-type="string"/> <xsl:strip-space elements="*"/> <!-- ###################################################################### --> <!-- ### Root Node --> <!-- ###################################################################### --> <xsl:template match="/"> <ZMSCustom meta_id="refLiterature"> <xsl:apply-templates /> </ZMSCustom> </xsl:template> <xsl:template match="modsCollection"> <ZMSCustom id_fix="items" id_prefix="items" meta_id="refLiteratureItems"> <records><list> <xsl:apply-templates /> </list></records> </ZMSCustom> </xsl:template> <xsl:template match="mods"> <item type="dictionary"> <dictionary> <item key="attr_dc_description"> <!-- <xsl:for-each select="subject/topic"> <xsl:value-of select ="." disable-output-escaping="no"/><xsl:text> | </xsl:text> </xsl:for-each> --> <xsl:text> </xsl:text> </item> <item key="author"> <xsl:for-each select="name[@type='personal']"> <xsl:value-of select ="namePart[@type='family']" disable-output-escaping="no"/><xsl:text> </xsl:text> <xsl:value-of select ="namePart[@type='given']" disable-output-escaping="no"/><xsl:if test="position() != last()"><xsl:text>, </xsl:text></xsl:if> </xsl:for-each> </item> <item key="id"><![CDATA[]]></item> <item key="issue"> <xsl:value-of select ="substring(relatedItem/part/date, 1, 4)" disable-output-escaping="no"/> <xsl:if test="relatedItem/part/detail[@type='volume']/number"> <xsl:text>;</xsl:text><xsl:value-of select ="relatedItem/part/detail[@type='volume']/number" disable-output-escaping="no"/> </xsl:if> <xsl:if test="relatedItem/part/extent[@unit='page']/start"> <xsl:text>:</xsl:text><xsl:value-of select ="relatedItem/part/extent/start" disable-output-escaping="no"/> </xsl:if> <xsl:if test="relatedItem/part/extent[@unit='page']/end"> <xsl:text>-</xsl:text><xsl:value-of select ="relatedItem/part/extent/end" disable-output-escaping="no"/> </xsl:if> </item> <item key="journal"> <xsl:value-of select ="translate(relatedItem/titleInfo/title,'.',' ')" disable-output-escaping="no"/> </item> <item key="refid"> <xsl:choose> <xsl:when test="contains(location/url, 'PM:')"> <xsl:value-of select ="substring-after(location/url,'PM:')" disable-output-escaping="no"/> </xsl:when> <xsl:otherwise> <xsl:value-of select ="location/url" disable-output-escaping="no"/> </xsl:otherwise> </xsl:choose> </item> <item key="refscheme"> <xsl:choose> <xsl:when test="contains(location/url, 'PM:')"> <xsl:text>pubmed</xsl:text> </xsl:when> <xsl:otherwise> </xsl:otherwise> </xsl:choose> </item> <item key="title"><xsl:value-of select="titleInfo/title" disable-output-escaping="no"/></item> <item key="titlealt"><xsl:value-of select ="translate(substring(name/namePart[@type='family'], 1, 3), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/><xsl:value-of select ="substring(originInfo/dateIssued, 1, 4)"/></item> </dictionary> </item> </xsl:template> <!-- ###################################################################### --> <!-- ### Text nodes --> <!-- ###################################################################### --> <xsl:template match="text()"> <xsl:value-of select ="." disable-output-escaping="no"/> </xsl:template> <!-- ###################################################################### --> <!-- ### Residual +++ garbage +++ --> <!-- ###################################################################### --> <xsl:template match="*"> <!-- *** Do nothing *** --> </xsl:template> </xsl:stylesheet>