Loose the query parsing so that Pazpar2 only returns error if _all_
[pazpar2-moved-to-github.git] / etc / marc21.xsl
index 6ab86d8..a6b6445 100644 (file)
        <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
       </xsl:attribute>
 
-      <pz:metadata type="id">
-        <xsl:value-of select="marc:controlfield[@tag='001']"/>
-      </pz:metadata>
+      <xsl:for-each select="marc:controlfield[@tag='001']">
+        <pz:metadata type="id">
+          <xsl:value-of select="."/>
+        </pz:metadata>
+      </xsl:for-each>
 
       <xsl:for-each select="marc:datafield[@tag='010']">
         <pz:metadata type="lccn">
        </pz:metadata>
       </xsl:for-each>
 
-      <pz:metadata type="title">
-       <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
-       <xsl:text> </xsl:text>
-       <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='b']"/>
-      </pz:metadata>
+      <xsl:for-each select="marc:datafield[@tag='245']">
+        <pz:metadata type="title">
+          <xsl:value-of select="marc:subfield[@code='a']"/>
+          <xsl:text> </xsl:text>
+          <xsl:value-of select="marc:subfield[@code='b']"/>
+        </pz:metadata>
+      </xsl:for-each>
 
       <xsl:for-each select="marc:datafield[@tag='020']">
         <pz:metadata type="isbn">
@@ -43,7 +47,7 @@
        </pz:metadata>
       </xsl:for-each>
 
-      <xsl:for-each select="marc:datafield[@tag='650']">
+      <xsl:for-each select="marc:datafield[@tag='650' or @tag='653']">
        <pz:metadata type="subject">
          <xsl:value-of select="marc:subfield[@code='a']"/>
        </pz:metadata>
        </pz:metadata>
       </xsl:for-each>
 
+      <xsl:for-each select="marc:datafield[@tag='520']">
+        <pz:metadata type="description">
+         <xsl:value-of select="marc:subfield[@code='a']"/>
+       </pz:metadata>
+      </xsl:for-each>
+
+      <xsl:for-each select="marc:datafield[@tag='700']">
+       <pz:metadata type="author">
+         <xsl:value-of select="marc:subfield[@code='a']"/>
+       </pz:metadata>
+      </xsl:for-each>
+
+      <xsl:for-each select="marc:datafield[@tag='720']">
+       <pz:metadata type="author">
+         <xsl:value-of select="marc:subfield[@code='a']"/>
+       </pz:metadata>
+      </xsl:for-each>
+
       <xsl:for-each select="marc:datafield[@tag='856']">
        <pz:metadata type="url">
          <xsl:value-of select="marc:subfield[@code='u']"/>
        </pz:metadata>
       </xsl:for-each>
 
+      <xsl:for-each select="marc:datafield[@tag='773']">
+       <pz:metadata type="citation">
+         <xsl:for-each select="*">
+           <xsl:value-of select="normalize-space(.)"/>
+           <xsl:text> </xsl:text>
+         </xsl:for-each>
+       </pz:metadata>
+      </xsl:for-each>
+
     </pz:record>
   </xsl:template>