summaryrefslogtreecommitdiffstats
path: root/xslt/crossref2tellico.xsl
diff options
context:
space:
mode:
Diffstat (limited to 'xslt/crossref2tellico.xsl')
-rw-r--r--xslt/crossref2tellico.xsl121
1 files changed, 121 insertions, 0 deletions
diff --git a/xslt/crossref2tellico.xsl b/xslt/crossref2tellico.xsl
new file mode 100644
index 0000000..17cddd3
--- /dev/null
+++ b/xslt/crossref2tellico.xsl
@@ -0,0 +1,121 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://periapsis.org/tellico/"
+ xmlns:cr="http://www.crossref.org/qrschema/2.0"
+ xmlns:str="http://exslt.org/strings"
+ xmlns:exsl="http://exslt.org/common"
+ exclude-result-prefixes="cr"
+ extension-element-prefixes="str exsl"
+ version="1.0">
+
+<!--
+ ===================================================================
+ Tellico XSLT file - used for importing data from crossref.org
+
+ See http://www.crossref.org/schema/queryResultSchema/crossref_query_output2.0.7.xsd
+
+ Copyright (C) 2007 Robby Stephenson - [email protected]
+
+ This XSLT stylesheet is designed to be used with the 'Tellico'
+ application, which can be found at http://www.periapsis.org/tellico/
+
+ ===================================================================
+-->
+
+<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"
+ doctype-public="-//Robby Stephenson/DTD Tellico V10.0//EN"
+ doctype-system="http://periapsis.org/tellico/dtd/v10/tellico.dtd"/>
+
+<xsl:template match="/">
+ <tellico syntaxVersion="10">
+ <collection title="CrossRef Import" type="5">
+ <fields>
+ <field name="_default"/>
+
+ <xsl:if test=".//cr:issn">
+ <field flags="0" title="ISSN" category="Publishing" format="4" type="1" name="issn" i18n="true"/>
+ </xsl:if>
+
+ </fields>
+ <xsl:apply-templates select="cr:crossref_result/cr:query_result/cr:body/cr:query"/>
+ </collection>
+ </tellico>
+</xsl:template>
+
+<xsl:template match="cr:query">
+ <entry>
+
+ <title>
+ <xsl:value-of select="cr:article_title"/>
+ </title>
+
+ <booktitle>
+ <xsl:value-of select="cr:volume_title"/>
+ </booktitle>
+
+ <entry-type>
+ <xsl:choose>
+ <xsl:when test="cr:doi/@type = 'conference_paper'">
+ <xsl:text>inproceedings</xsl:text>
+ </xsl:when>
+ <xsl:when test="cr:doi/@type = 'book_title'">
+ <xsl:text>book</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>article</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </entry-type>
+
+ <year>
+ <xsl:value-of select="cr:year"/>
+ </year>
+
+ <doi>
+ <xsl:value-of select="cr:doi"/>
+ </doi>
+
+ <pages>
+ <xsl:value-of select="cr:first_page"/>
+ </pages>
+
+ <journal>
+ <xsl:value-of select="cr:journal_title"/>
+ </journal>
+
+ <volume>
+ <xsl:value-of select="cr:volume"/>
+ </volume>
+
+ <isbn>
+ <xsl:value-of select="cr:isbn"/>
+ </isbn>
+
+ <issn>
+ <xsl:choose>
+ <xsl:when test="cr:issn[@type='print']">
+ <xsl:value-of select="cr:issn[@type='print']"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="cr:issn[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </issn>
+
+ <authors>
+ <xsl:for-each select="cr:author">
+ <author>
+ <xsl:value-of select="."/>
+ </author>
+ </xsl:for-each>
+ </authors>
+
+ <series>
+ <xsl:value-of select="cr:series_title"/>
+ </series>
+
+ </entry>
+
+</xsl:template>
+
+</xsl:stylesheet>