More field mappings.
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 1 Oct 2009 14:29:16 +0000 (16:29 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 1 Oct 2009 14:29:16 +0000 (16:29 +0200)
Only consider surname authors. Map secondary title, call number, pages,
volume, abstract.

etc/marc21_to_endnote.xsl

index fed5df4..61905f0 100644 (file)
 
     <!-- Author -->
     <xsl:choose>
-      <xsl:when test="marc:datafield[@tag='700']">
+      <xsl:when test="marc:datafield[@tag='100' and @ind1='1']">
+       <xsl:for-each select="marc:datafield[@tag='100']">
+         <xsl:call-template name="printfield">
+           <xsl:with-param name="name">A</xsl:with-param>
+           <xsl:with-param name="value">
+             <xsl:value-of select="marc:subfield[@code='a']"/>
+           </xsl:with-param>
+         </xsl:call-template>
+       </xsl:for-each>
+      </xsl:when>
+      <xsl:when test="marc:datafield[@tag='700' and @ind1='1']">
        <xsl:for-each select="marc:datafield[@tag='700']">
          <xsl:call-template name="printfield">
            <xsl:with-param name="name">A</xsl:with-param>
       </xsl:otherwise>
     </xsl:choose>
       
-    <!-- Title -->
     <xsl:for-each select="marc:datafield[@tag='245']">
+      <!-- Title -->
       <xsl:call-template name="printfield">
        <xsl:with-param name="name">T</xsl:with-param>
        <xsl:with-param name="value">
          <xsl:value-of select="marc:subfield[@code='a']"/>
        </xsl:with-param>
       </xsl:call-template>
+
+      <!-- Secondary title -->
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">B</xsl:with-param>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='b']"/>
+       </xsl:with-param>
+      </xsl:call-template>
     </xsl:for-each>
     
     <xsl:for-each select="marc:datafield[@tag='260']">
       </xsl:call-template>
     </xsl:for-each>
   
+    <!-- Callnumber -->
+    <xsl:for-each select="marc:datafield[@tag='852']">
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">L</xsl:with-param>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='h']"/>
+       </xsl:with-param>
+      </xsl:call-template>
+    </xsl:for-each>
+  
+    <!-- Pages -->
+    <xsl:for-each select="marc:datafield[@tag='300']">
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">P</xsl:with-param>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='a']"/>
+       </xsl:with-param>
+      </xsl:call-template>
+    </xsl:for-each>
+  
     <!-- URL -->
     <xsl:for-each select="marc:datafield[@tag='856']">
       <xsl:call-template name="printfield">
       </xsl:call-template>
     </xsl:for-each>
   
+    <!-- Volume -->
+    <xsl:for-each select="marc:datafield[@tag='245']">
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">V</xsl:with-param>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='n']"/>
+       </xsl:with-param>
+      </xsl:call-template>
+    </xsl:for-each>
+  
+    <!-- Abstract -->
+    <xsl:for-each select="marc:datafield[@tag='520']">
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">X</xsl:with-param>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='a']"/>
+       </xsl:with-param>
+      </xsl:call-template>
+    </xsl:for-each>
+  
     <!-- ISBN -->
     <xsl:for-each select="marc:datafield[@tag='020']">
       <xsl:call-template name="printfield">