Pazpar2 1.4.4-2 for squeeze
[pazpar2-moved-to-github.git] / etc / cf.xsl
index 9c0fb74..4b8aebe 100644 (file)
 
   <xsl:template match="/record">
     <pz:record>
-      <xsl:attribute name="mergekey">
-             <xsl:text>title </xsl:text>
-        <xsl:value-of select="title" />
-             <xsl:text> author </xsl:text>
-        <xsl:value-of select="author"/>
-      </xsl:attribute>
       <xsl:apply-templates/>
     </pz:record>
   </xsl:template>
 
-  <xsl:template match="url">
-    <pz:metadata type="electronic-url">
+  <!--
+      The elements mapped in the following clauses should be kept more
+      or less in sync with those named in builder/templates/search.cft
+      in the "cf" git module.
+  -->
+
+  <xsl:template match="date">
+    <pz:metadata type="publication-date">
+      <xsl:value-of select="."/>
+    </pz:metadata>
+    <pz:metadata type="date">
       <xsl:value-of select="."/>
     </pz:metadata>
   </xsl:template>
 
-  <xsl:template match="author">
-    <pz:metadata type="author">
+  <xsl:template match="url">
+    <pz:metadata type="electronic-url">
       <xsl:value-of select="."/>
     </pz:metadata>
   </xsl:template>
     <pz:metadata type="title">
       <xsl:value-of select="."/>
     </pz:metadata>
+    <pz:metadata type="title-complete">
+      <xsl:value-of select="." />
+    </pz:metadata>
   </xsl:template>
 
-  <xsl:template match="date">
-    <pz:metadata type="publication-date">
+  <xsl:template match="author">
+    <pz:metadata type="author">
       <xsl:value-of select="."/>
     </pz:metadata>
   </xsl:template>
     </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="item">
+    <pz:metadata type="locallocation">
+      <xsl:choose>
+       <xsl:when test="string-length(location)">
+         <xsl:value-of select="location"/>
+       </xsl:when>
+       <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
+      </xsl:choose>
+    </pz:metadata>
+    <pz:metadata type="callnumber">
+      <xsl:choose>
+       <xsl:when test="string-length(callno)">
+         <xsl:value-of select="callno"/>
+       </xsl:when>
+       <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
+      </xsl:choose>
+    </pz:metadata>
+    <pz:metadata type="available">
+      <xsl:choose>
+       <xsl:when test="string-length(available)">
+         <xsl:value-of select="available"/>
+       </xsl:when>
+       <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
+      </xsl:choose>
+    </pz:metadata>
+    <pz:metadata type="publicnote">
+      <xsl:choose>
+       <xsl:when test="string-length(publicnote)">
+         <xsl:value-of select="publicnote"/>
+       </xsl:when>
+       <xsl:otherwise>PAZPAR2_NULL_VALUE</xsl:otherwise>
+      </xsl:choose>
+    </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="callno">
+    <pz:metadata type="callnumber">
+      <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="text()"/>
 
 </xsl:stylesheet>