Merge branch 'bug_8945' into 3.12-master
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / xslt / MARC21slim2ATOM.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!DOCTYPE stylesheet [<!ENTITY nbsp "&#160;" >]>
4
5 <xsl:stylesheet version="1.0" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="marc">
6         <xsl:import href="MARC21slimUtils.xsl"/>
7     <xsl:output method="xml" indent="yes" encoding="UTF-8"/>
8         
9         <!--Added ISBN and deleted attributes 6/04 jer-->
10         
11         <xsl:template match="/">
12                         <xsl:apply-templates/>
13         </xsl:template>
14
15         <xsl:template match="marc:record">
16                 <xsl:variable name="leader" select="marc:leader"/>
17                 <xsl:variable name="leader6" select="substring($leader,7,1)"/>
18                 <xsl:variable name="leader7" select="substring($leader,8,1)"/>
19                 <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
20
21           <entry xmlns="http://www.w3.org/2005/Atom">
22
23                         <xsl:for-each select="marc:controlfield[@tag=001]">
24                                 <id>
25                                         <xsl:text>urn:tcn:</xsl:text>
26                                         <xsl:value-of select="."/>
27                                 </id>
28                         </xsl:for-each>
29
30                         <xsl:for-each select="marc:controlfield[@tag=005]">
31                                 <updated>
32                                         <xsl:value-of select="."/>
33                                 </updated>
34                         </xsl:for-each>
35
36
37                         <xsl:for-each select="marc:datafield[@tag=245]">
38                                 <title>
39                                         <xsl:call-template name="subfieldSelect">
40                                                 <xsl:with-param name="codes">abfghk</xsl:with-param>
41                                         </xsl:call-template>
42                                 </title>
43                         </xsl:for-each>
44
45         
46                         <xsl:for-each select="marc:datafield[@tag=100]">
47                                 <author>
48                                         <name>
49                                                 <xsl:value-of select="."/>
50                                         </name>
51                                 </author>
52                         </xsl:for-each>
53
54                         <xsl:for-each select="marc:datafield[@tag=110]|marc:datafield[@tag=111]|marc:datafield[@tag=700]|marc:datafield[@tag=710]|marc:datafield[@tag=711]|marc:datafield[@tag=720]">
55                                 <author>
56                                         <name>
57                                                 <xsl:value-of select="."/>
58                                         </name>
59                                 </author>
60                         </xsl:for-each>
61
62                         <xsl:for-each select="marc:datafield[@tag=655]">
63                                 <category>
64                                         <xsl:attribute name="term">
65                                                 <xsl:value-of select="./marc:subfield[@code='a' or @code='v']"/>
66                                         </xsl:attribute>
67                                 </category>
68                         </xsl:for-each>
69
70                         <xsl:for-each select="marc:datafield[@tag=260]">
71                                 <rights type="html">
72                                         <xsl:text>&#169; </xsl:text>
73                                         <xsl:call-template name="subfieldSelect">
74                                                 <xsl:with-param name="codes">c</xsl:with-param>
75                                         </xsl:call-template>
76                                         <xsl:text>, </xsl:text>
77                                         <xsl:call-template name="subfieldSelect">
78                                                 <xsl:with-param name="codes">b</xsl:with-param>
79                                         </xsl:call-template>
80                                 </rights>
81                         </xsl:for-each>
82
83                         <xsl:for-each select="marc:datafield[@tag=260]/marc:subfield[@code='c']">
84                                 <published>
85                                         <xsl:value-of select="."/>
86                                 </published>                            
87                         </xsl:for-each>
88
89                         <xsl:for-each select="marc:datafield[500&lt;@tag][@tag&lt;=599][not(@tag=506 or @tag=530 or @tag=540 or @tag=546)]">
90                                 <summary>
91                                         <xsl:value-of select="marc:subfield[@code='a']"/>
92                                 </summary>
93                         </xsl:for-each>
94
95                         <xsl:for-each select="marc:datafield[@tag=600 or @tag=610 or @tag=611 or @tag=630 or @tag=650 or @tag=653]">
96                                 <category>
97                                         <xsl:attribute name="term">
98                                                 <xsl:call-template name="subfieldSelect">
99                                                         <xsl:with-param name="codes">abcdq</xsl:with-param>
100                                                 </xsl:call-template>
101                                         </xsl:attribute>
102                                 </category>
103                         </xsl:for-each>
104
105                         <xsl:for-each select="marc:datafield[@tag=856]">
106                                 <dc:identifier>
107                                         <xsl:value-of select="marc:subfield[@code='u']"/>
108                                 </dc:identifier>
109                         </xsl:for-each>
110                         
111                         <xsl:for-each select="marc:datafield[@tag=020]">
112                                 <dc:identifier>
113                                         <xsl:text>URN:ISBN:</xsl:text>
114                                         <xsl:value-of select="marc:subfield[@code='a']"/>
115                                 </dc:identifier>
116                         </xsl:for-each>
117
118                         <xsl:for-each select="marc:datafield[@tag=506]">
119                                 <rights>
120                                         <xsl:value-of select="marc:subfield[@code='a']"/>
121                                 </rights>
122                         </xsl:for-each>
123
124                         <xsl:for-each select="marc:datafield[@tag=540]">
125                                 <rights>
126                                         <xsl:value-of select="marc:subfield[@code='a']"/>
127                                 </rights>
128                         </xsl:for-each>
129                 </entry>
130         </xsl:template>
131 </xsl:stylesheet>
132