Merge branch 'master' into yaz-744
[yaz-moved-to-github.git] / etc / marc21_to_endnote.xsl
index 686fddc..7f13408 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:with-param name="value"><xsl:value-of select="marc:subfield[@code='a']"/>
+           <xsl:with-param name="value">
+             <xsl:value-of select="marc:subfield[@code='a']"/>
            </xsl:with-param>
          </xsl:call-template>
        </xsl:for-each>
       </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 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>
       <!-- Place Published -->
       <xsl:call-template name="printfield">
        <xsl:with-param name="name">C</xsl:with-param>
-       <xsl:with-param name="value"><xsl:value-of select="marc:subfield[@code='a']"/>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='a']"/>
        </xsl:with-param>
       </xsl:call-template>
       <!-- Publisher -->
       <xsl:call-template name="printfield">
        <xsl:with-param name="name">I</xsl:with-param>
-       <xsl:with-param name="value"><xsl:value-of select="marc:subfield[@code='b']"/>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='b']"/>
        </xsl:with-param>
       </xsl:call-template>
       <!-- Year -->
       <xsl:call-template name="printfield">
        <xsl:with-param name="name">D</xsl:with-param>
-       <xsl:with-param name="value"><xsl:value-of select="marc:subfield[@code='c']"/>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='c']"/>
        </xsl:with-param>
       </xsl:call-template>
     </xsl:for-each>
   
     <!-- Keywords -->
     <xsl:for-each select="marc:datafield[@tag='650']">
-      <xsl:if test="marc:subfield[@code='a']">
-      <xsl:text>%K </xsl:text>
-      <xsl:value-of select="marc:subfield[@code='a']"/>
-      <xsl:text>
-</xsl:text>
-      </xsl:if>
-  </xsl:for-each>
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">K</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>
+  
+    <!-- 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:if test="marc:subfield[@code='u']">
-       <xsl:text>%U </xsl:text>
-       <xsl:value-of select="marc:subfield[@code='u']"/>
-       <xsl:text>
-</xsl:text>
-      </xsl:if>
-  </xsl:for-each>
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">U</xsl:with-param>
+       <xsl:with-param name="value">
+         <xsl:value-of select="marc:subfield[@code='u']"/>
+       </xsl:with-param>
+      </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:if test="marc:subfield[@code='a']">
-       <xsl:text>%@ </xsl:text>
-       <xsl:value-of select="marc:subfield[@code='a']"/>
-      <xsl:text>
-</xsl:text>
-    </xsl:if>
-  </xsl:for-each>
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">@</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>
   
     <!-- ISSN -->
     <xsl:for-each select="marc:datafield[@tag='022']">
-      <xsl:if test="marc:subfield[@code='a']">
-       <xsl:text>%@ </xsl:text>
-       <xsl:value-of select="marc:subfield[@code='a']"/>
-       <xsl:text>
-</xsl:text>
-     </xsl:if>
-  </xsl:for-each>
-
-
-  
-  
-  
+      <xsl:call-template name="printfield">
+       <xsl:with-param name="name">@</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:template>
+  <xsl:template match="text()"/>
 </xsl:stylesheet>