Metadata elements dynamically created from XSLT normalization output.
[pazpar2-moved-to-github.git] / etc / marc21.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet
3     version="1.0"
4     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5     xmlns:pz="http://www.indexdata.com/pazpar2/1.0"
6     xmlns:marc="http://www.loc.gov/MARC21/slim">
7
8   <xsl:template match="/marc:record">
9     <pz:record>
10
11       <xsl:attribute name="mergekey">
12         <xsl:text>title </xsl:text>
13         <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
14         <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='b']"/>
15         <xsl:text> author </xsl:text>
16         <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
17       </xsl:attribute>
18
19       <pz:metadata type="title">
20         <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
21         <xsl:text> </xsl:text>
22         <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='b']"/>
23       </pz:metadata>
24
25       <!--
26       <xsl:for-each select="marc:datafield[@tag='260']">
27         <pz:metadata type="date">
28           <xsl:value-of select="marc:subfield[@code='c']"/>
29         </pz:metadata>
30       </xsl:for-each>
31       -->
32
33       <xsl:for-each select="marc:datafield[@tag='650']">
34         <pz:metadata type="subject">
35           <xsl:value-of select="marc:subfield[@code='a']"/>
36         </pz:metadata>
37       </xsl:for-each>
38
39       <xsl:for-each select="marc:datafield[@tag='100']">
40         <pz:metadata type="author">
41           <xsl:value-of select="marc:subfield[@code='a']"/>
42         </pz:metadata>
43       </xsl:for-each>
44
45     </pz:record>
46   </xsl:template>
47
48 </xsl:stylesheet>