Messing with open content stuff
[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:text> author </xsl:text>
15         <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
16       </xsl:attribute>
17
18       <pz:metadata type="id">
19         <xsl:value-of select="marc:controlfield[@tag='001']"/>
20       </pz:metadata>
21
22       <xsl:for-each select="marc:datafield[@tag='010']">
23         <pz:metadata type="lccn">
24           <xsl:value-of select="marc:subfield[@code='a']"/>
25         </pz:metadata>
26       </xsl:for-each>
27
28       <pz:metadata type="title">
29         <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='a']"/>
30         <xsl:text> </xsl:text>
31         <xsl:value-of select="marc:datafield[@tag='245']/marc:subfield[@code='b']"/>
32       </pz:metadata>
33
34       <xsl:for-each select="marc:datafield[@tag='020']">
35         <pz:metadata type="isbn">
36           <xsl:value-of select="marc:subfield[@code='a']"/>
37         </pz:metadata>
38       </xsl:for-each>
39
40       <xsl:for-each select="marc:datafield[@tag='260']">
41         <pz:metadata type="date">
42           <xsl:value-of select="marc:subfield[@code='c']"/>
43         </pz:metadata>
44       </xsl:for-each>
45
46       <xsl:for-each select="marc:datafield[@tag='650' or @tag='653']">
47         <pz:metadata type="subject">
48           <xsl:value-of select="marc:subfield[@code='a']"/>
49         </pz:metadata>
50       </xsl:for-each>
51
52       <xsl:for-each select="marc:datafield[@tag='100']">
53         <pz:metadata type="author">
54           <xsl:value-of select="marc:subfield[@code='a']"/>
55         </pz:metadata>
56       </xsl:for-each>
57
58       <xsl:for-each select="marc:datafield[@tag='700']">
59         <pz:metadata type="author">
60           <xsl:value-of select="marc:subfield[@code='a']"/>
61         </pz:metadata>
62       </xsl:for-each>
63
64       <xsl:for-each select="marc:datafield[@tag='720']">
65         <pz:metadata type="author">
66           <xsl:value-of select="marc:subfield[@code='a']"/>
67         </pz:metadata>
68       </xsl:for-each>
69
70       <xsl:for-each select="marc:datafield[@tag='856']">
71         <pz:metadata type="url">
72           <xsl:value-of select="marc:subfield[@code='u']"/>
73         </pz:metadata>
74       </xsl:for-each>
75
76     </pz:record>
77   </xsl:template>
78
79 </xsl:stylesheet>