Halve the length of cf.xsl by removing 27(!) redundant special-case
authorMike Taylor <mike@indexdata.com>
Tue, 7 Feb 2012 10:58:07 +0000 (10:58 +0000)
committerMike Taylor <mike@indexdata.com>
Tue, 7 Feb 2012 10:58:07 +0000 (10:58 +0000)
templates, all of which are covered by the fallback template that
Jakub added in the commit f9db8c65f2912035dee49a7d20abb82a0cf48bd3
back in November.  I have verified by regression-testing on a
dummied-up full CF record that this stylesheet has exactly the same
effect.  Should be negligibly faster, but more importantly easier to
maintain.

etc/cf.xsl

index 4742628..324cdda 100644 (file)
     </pz:metadata>
   </xsl:template>
 
-  <xsl:template match="author">
-    <pz:metadata type="author">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="description">
-    <pz:metadata type="description">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-  
-  <xsl:template match="publisher">
-    <pz:metadata type="publisher">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="subject">
-    <pz:metadata type="subject">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="isbn">
-    <pz:metadata type="isbn">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="issn">
-    <pz:metadata type="issn">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
   <xsl:template match="journaltitle">
     <pz:metadata type="journal-title">
       <xsl:value-of select="."/>
     </pz:metadata>
   </xsl:template>
 
-  <xsl:template match="volume">
-    <pz:metadata type="volume">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="issue">
-    <pz:metadata type="issue">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="page">
-    <pz:metadata type="page">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="endpage">
-    <pz:metadata type="endpage">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
   <!--
     According to cf/builder/templates/parseTask.cff, connectors can
     also generate a "holding" field, but it's not clear how that is
     </pz:metadata>
   </xsl:template>
 
-  <xsl:template match="due">
-    <pz:metadata type="due">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
   <xsl:template match="location">
     <pz:metadata type="locallocation">
       <xsl:value-of select="."/>
     </pz:metadata>
   </xsl:template>
 
-  <xsl:template match="thumburl">
-    <pz:metadata type="thumburl">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="score">
-    <pz:metadata type="score">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="id">
-    <pz:metadata type="id">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="available">
-    <pz:metadata type="available">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="citation">
-    <pz:metadata type="citation">
-      <xsl:value-of select="."/>
-      </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="relevance">
-    <pz:metadata type="relevance">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="booktitle">
-    <pz:metadata type="booktitle">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="copyright">
-    <pz:metadata type="copyright">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="copyrightabstract">
-    <pz:metadata type="copyrightabstract">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="pubtype">
-    <pz:metadata type="pubtype">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="doctype">
-    <pz:metadata type="doctype">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="extent">
-    <pz:metadata type="extent">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="format">
-    <pz:metadata type="format">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="languageitem">
-    <pz:metadata type="languageitem">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="languageabstract">
-    <pz:metadata type="languageabstract">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
-  <xsl:template match="permalink">
-    <pz:metadata type="permalink">
-      <xsl:value-of select="."/>
-    </pz:metadata>
-  </xsl:template>
-
   <xsl:template match="*" >
     <pz:metadata type="{local-name()}">
       <xsl:value-of select="."/>