Bug 30554: Embelished MARC21 XSLT example
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / xslt / MARC21authResults.xsl
1 <?xml version='1.0' encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3     <xsl:output omit-xml-declaration="yes"/>
4     <!-- ************* Templates ****************-->
5
6
7     <!-- ****************************************-->
8
9     <xsl:template match="marc:record">
10         <xsl:variable name="authid" select="marc:controlfield[@tag='001']" />
11         <xsl:variable name="controlField008" select="marc:controlfield[@tag=008]"/>
12
13         <xsl:element name="div">
14             <xsl:attribute name="class">
15                 <xsl:text>authority-summary</xsl:text>
16             </xsl:attribute>
17
18             <!-- *********** Personal Name 100 ********* -->
19             <xsl:if test="marc:datafield[@tag='100']">
20               <xsl:element name="span">
21                 <xsl:attribute name="class">
22                   <xsl:text>authorizedheading</xsl:text>
23                 </xsl:attribute>
24                 <a>
25                   <xsl:attribute name="data-authid"><xsl:value-of select="$authid"/></xsl:attribute>
26                   <xsl:attribute name="href">/cgi-bin/koha/authorities/detail.pl?authid=<xsl:value-of select="$authid"/></xsl:attribute>
27                   <xsl:value-of select="marc:datafield[@tag='100']/marc:subfield[@code='a']"/>
28                 </a>
29               </xsl:element>
30
31               <xsl:if test="marc:datafield[@tag='400']">
32                 <xsl:element name="div">
33                   <xsl:attribute name="class">
34                     <xsl:text>seefrom</xsl:text>
35                   </xsl:attribute>
36                   <xsl:element name="span">
37                       used for/see from:
38                   </xsl:element>
39
40                   <xsl:for-each select="marc:datafield[@tag=400]">
41                     <xsl:element name="div">
42                       <xsl:attribute name="class">
43                         <xsl:text>authref</xsl:text>
44                       </xsl:attribute>
45                       <xsl:element name="span">
46                         <xsl:attribute name="class">
47                           <xsl:text>heading</xsl:text>
48                         </xsl:attribute>
49                         <xsl:if test="marc:subfield[@code='a']"><xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
50                         <xsl:if test="marc:subfield[@code='b']"><xsl:value-of select="marc:subfield[@code='b']"/></xsl:if>
51                       </xsl:element>
52                     </xsl:element>
53                   </xsl:for-each>
54                 </xsl:element>
55               </xsl:if>
56
57               <xsl:if test="marc:datafield[@tag='500'] or marc:datafield[@tag='550']">
58                 <xsl:element name="div">
59                   <xsl:attribute name="class">
60                     <xsl:text>seealso</xsl:text>
61                   </xsl:attribute>
62                   <xsl:element name="span">
63                       see also:
64                   </xsl:element>
65
66                   <xsl:for-each select="marc:datafield[@tag=400]">
67                     <xsl:element name="div">
68                       <xsl:attribute name="class">
69                         <xsl:text>authref</xsl:text>
70                       </xsl:attribute>
71                       <xsl:element name="span">
72                         <xsl:attribute name="class">
73                           <xsl:text>heading</xsl:text>
74                         </xsl:attribute>
75                         <xsl:if test="marc:subfield[@code='a']"><xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
76                         <xsl:if test="marc:subfield[@code='b']"><xsl:value-of select="marc:subfield[@code='b']"/></xsl:if>
77                       </xsl:element>
78                     </xsl:element>
79                   </xsl:for-each>
80
81                   <xsl:for-each select="marc:datafield[@tag=550]">
82                     <xsl:element name="div">
83                       <xsl:attribute name="class">
84                         <xsl:text>authref</xsl:text>
85                       </xsl:attribute>
86                       <xsl:element name="span">
87                         <xsl:attribute name="class">
88                           <xsl:text>heading</xsl:text>
89                         </xsl:attribute>
90                         <xsl:if test="marc:subfield[@code='a']"><xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
91                         <xsl:if test="marc:subfield[@code='b']"><xsl:value-of select="marc:subfield[@code='b']"/></xsl:if>
92                       </xsl:element>
93                     </xsl:element>
94                   </xsl:for-each>
95                 </xsl:element>
96               </xsl:if>
97             </xsl:if>
98             <!-- *** End Personal Name **-->
99
100             <!-- *********** Corporate Name 110 ********* -->
101             <xsl:if test="marc:datafield[@tag='110']">
102               <xsl:element name="span">
103                 <xsl:attribute name="class">
104                   <xsl:text>authorizedheading</xsl:text>
105                 </xsl:attribute>
106                 <a>
107                   <xsl:attribute name="href">/cgi-bin/koha/authorities/detail.pl?authid=<xsl:value-of select="$authid"/></xsl:attribute>
108                   <xsl:value-of select="marc:datafield[@tag='110']/marc:subfield[@code='a']"/>
109                 </a>
110               </xsl:element>
111
112
113               <xsl:if test="marc:datafield[@tag='410']">
114                 <xsl:element name="div">
115                   <xsl:attribute name="class">
116                     <xsl:text>seefrom</xsl:text>
117                   </xsl:attribute>
118                   <xsl:element name="span">
119                       used for/see from:
120                   </xsl:element>
121
122                   <xsl:for-each select="marc:datafield[@tag=410]">
123                     <xsl:element name="div">
124                       <xsl:attribute name="class">
125                         <xsl:text>authref</xsl:text>
126                       </xsl:attribute>
127                       <xsl:element name="span">
128                         <xsl:attribute name="class">
129                           <xsl:text>heading</xsl:text>
130                         </xsl:attribute>
131                         <xsl:if test="marc:subfield[@code='a']"><xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
132                         <xsl:if test="marc:subfield[@code='b']"><xsl:value-of select="marc:subfield[@code='b']"/></xsl:if>
133                       </xsl:element>
134                     </xsl:element>
135                   </xsl:for-each>
136                 </xsl:element>
137               </xsl:if>
138
139               <xsl:if test="marc:datafield[@tag='500'] or marc:datafield[@tag='550']">
140                 <xsl:element name="div">
141                   <xsl:attribute name="class">
142                     <xsl:text>seealso</xsl:text>
143                   </xsl:attribute>
144                   <xsl:element name="span">
145                       see also:
146                   </xsl:element>
147
148                   <xsl:for-each select="marc:datafield[@tag=500]">
149                     <xsl:element name="div">
150                       <xsl:attribute name="class">
151                         <xsl:text>authref</xsl:text>
152                       </xsl:attribute>
153                       <xsl:element name="span">
154                         <xsl:attribute name="class">
155                           <xsl:text>heading</xsl:text>
156                         </xsl:attribute>
157                         <xsl:if test="marc:subfield[@code='a']"><xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
158                         <xsl:if test="marc:subfield[@code='b']"><xsl:value-of select="marc:subfield[@code='b']"/></xsl:if>
159                       </xsl:element>
160                     </xsl:element>
161                   </xsl:for-each>
162
163                   <xsl:for-each select="marc:datafield[@tag=550]">
164                     <xsl:element name="div">
165                       <xsl:attribute name="class">
166                         <xsl:text>authref</xsl:text>
167                       </xsl:attribute>
168                       <xsl:element name="span">
169                         <xsl:attribute name="class">
170                           <xsl:text>heading</xsl:text>
171                         </xsl:attribute>
172                         <xsl:if test="marc:subfield[@code='a']"><xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
173                         <xsl:if test="marc:subfield[@code='b']"><xsl:value-of select="marc:subfield[@code='b']"/></xsl:if>
174                       </xsl:element>
175                     </xsl:element>
176                   </xsl:for-each>
177
178                 </xsl:element>
179               </xsl:if>
180
181             </xsl:if>
182             <!-- *** End Corporate Name **-->
183
184             <!-- *********** Meeting Name 111 ********* -->
185             <xsl:if test="marc:datafield[@tag='111']">
186               <xsl:element name="span">
187                 <xsl:attribute name="class">
188                   <xsl:text>authorizedheading</xsl:text>
189                 </xsl:attribute>
190                 <a>
191                   <xsl:attribute name="href">/cgi-bin/koha/authorities/detail.pl?authid=<xsl:value-of select="$authid"/></xsl:attribute>
192                   <xsl:value-of select="marc:datafield[@tag='111']/marc:subfield[@code='a']"/>
193                 </a>
194               </xsl:element>
195
196               <ul>
197               <xsl:for-each select="marc:datafield[@tag=400]">
198                   <li class="heading">
199                     <xsl:if test="marc:subfield[@code='a']"> <xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
200                   </li>
201                 </xsl:for-each>
202               </ul>
203             </xsl:if>
204             <!-- *** End Meeting Name **-->
205
206             <!-- *********** Uniform Title 130 ********* -->
207             <xsl:if test="marc:datafield[@tag='130']">
208               <xsl:element name="span">
209                 <xsl:attribute name="class">
210                   <xsl:text>authorizedheading</xsl:text>
211                 </xsl:attribute>
212                 <a>
213                   <xsl:attribute name="href">/cgi-bin/koha/authorities/detail.pl?authid=<xsl:value-of select="$authid"/></xsl:attribute>
214                   <xsl:value-of select="marc:datafield[@tag='130']/marc:subfield[@code='a']"/>
215                 </a>
216               </xsl:element>
217               <ul>
218               <xsl:for-each select="marc:datafield[@tag=400]">
219                   <li class="heading">
220                     <xsl:if test="marc:subfield[@code='a']"> <xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
221                   </li>
222                 </xsl:for-each>
223               </ul>
224             </xsl:if>
225             <!-- *** End Uniform Title **-->
226
227             <!-- *********** Topical Term 150 ********* -->
228             <xsl:if test="marc:datafield[@tag='150']">
229               <xsl:element name="span">
230                 <xsl:attribute name="class">
231                   <xsl:text>authorizedheading</xsl:text>
232                 </xsl:attribute>
233                 <a>
234                   <xsl:attribute name="href">/cgi-bin/koha/authorities/detail.pl?authid=<xsl:value-of select="$authid"/></xsl:attribute>
235                   <xsl:value-of select="marc:datafield[@tag='150']/marc:subfield[@code='a']"/>
236                 </a>
237               </xsl:element>
238               <ul>
239               <xsl:for-each select="marc:datafield[@tag=400]">
240                   <li class="heading">
241                     <xsl:if test="marc:subfield[@code='a']"> <xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
242                   </li>
243                 </xsl:for-each>
244               </ul>
245             </xsl:if>
246             <!-- *** End Topic Term **-->
247
248             <!-- *********** Geographic Name 151 ********* -->
249             <xsl:if test="marc:datafield[@tag='151']">
250               <xsl:element name="span">
251                 <xsl:attribute name="class">
252                   <xsl:text>authorizedheading</xsl:text>
253                 </xsl:attribute>
254                 <a>
255                   <xsl:attribute name="href">/cgi-bin/koha/authorities/detail.pl?authid=<xsl:value-of select="$authid"/></xsl:attribute>
256                   <xsl:value-of select="marc:datafield[@tag='151']/marc:subfield[@code='a']"/>
257                 </a>
258               </xsl:element>
259               <ul>
260               <xsl:for-each select="marc:datafield[@tag=400]">
261                   <li class="heading">
262                     <xsl:if test="marc:subfield[@code='a']"> <xsl:value-of select="marc:subfield[@code='a']"/> </xsl:if>
263                   </li>
264                 </xsl:for-each>
265               </ul>
266             </xsl:if>
267             <!-- *** End Geographic Name **-->
268
269         </xsl:element>
270     </xsl:template>
271 </xsl:stylesheet>