]> git.stg.codes - stg.git/blob - doc/xslt/xhtml/biblio.xsl
Fixed parsing parameters with empty values.
[stg.git] / doc / xslt / xhtml / biblio.xsl
1 <?xml version="1.0" encoding="ASCII"?>
2 <!--This file was created automatically by html2xhtml-->
3 <!--from the HTML stylesheets.-->
4 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
5
6 <!-- ********************************************************************
7      $Id: biblio.xsl 8421 2009-05-04 07:49:49Z bobstayton $
8      ********************************************************************
9
10      This file is part of the XSL DocBook Stylesheet distribution.
11      See ../README or http://docbook.sf.net/release/xsl/current/ for
12      copyright and other information.
13
14      ******************************************************************** -->
15
16 <!-- ==================================================================== -->
17
18 <xsl:template match="bibliography">
19   <xsl:call-template name="id.warning"/>
20
21   <div>
22     <xsl:call-template name="common.html.attributes">
23       <xsl:with-param name="inherit" select="1"/>
24     </xsl:call-template>
25     <xsl:if test="$generate.id.attributes != 0">
26       <xsl:attribute name="id">
27         <xsl:call-template name="object.id"/>
28       </xsl:attribute>
29     </xsl:if>
30
31     <xsl:call-template name="bibliography.titlepage"/>
32
33     <xsl:apply-templates/>
34
35     <xsl:if test="not(parent::article)">
36       <xsl:call-template name="process.footnotes"/>
37     </xsl:if>
38   </div>
39 </xsl:template>
40
41 <xsl:template match="bibliography/bibliographyinfo"/>
42 <xsl:template match="bibliography/info"/>
43 <xsl:template match="bibliography/title"/>
44 <xsl:template match="bibliography/subtitle"/>
45 <xsl:template match="bibliography/titleabbrev"/>
46
47 <!-- ==================================================================== -->
48
49 <xsl:template match="bibliodiv">
50   <xsl:call-template name="id.warning"/>
51
52   <div>
53     <xsl:call-template name="common.html.attributes">
54       <xsl:with-param name="inherit" select="0"/>
55     </xsl:call-template>
56     <xsl:apply-templates/>
57   </div>
58 </xsl:template>
59
60 <xsl:template match="bibliodiv/title">
61   <h3>
62     <xsl:call-template name="common.html.attributes"/>
63     <xsl:call-template name="anchor">
64       <xsl:with-param name="node" select=".."/>
65       <xsl:with-param name="conditional" select="0"/>
66     </xsl:call-template>
67     <xsl:apply-templates/>
68   </h3>
69 </xsl:template>
70
71 <!-- ==================================================================== -->
72
73 <xsl:template match="bibliolist">
74   <div>
75     <xsl:call-template name="common.html.attributes">
76       <xsl:with-param name="inherit" select="0"/>
77     </xsl:call-template>
78     <xsl:call-template name="anchor"/>
79     <xsl:if test="blockinfo/title|info/title|title">
80       <xsl:call-template name="formal.object.heading"/>
81     </xsl:if>
82     <xsl:apply-templates select="*[not(self::blockinfo)                                    and not(self::info)                                    and not(self::title)                                    and not(self::titleabbrev)                                    and not(self::biblioentry)                                    and not(self::bibliomixed)]"/>
83     <xsl:apply-templates select="biblioentry|bibliomixed"/>
84   </div>
85 </xsl:template>
86
87 <!-- ==================================================================== -->
88
89 <xsl:template match="biblioentry">
90   <xsl:param name="label">
91     <xsl:call-template name="biblioentry.label"/>
92   </xsl:param>
93
94   <xsl:variable name="id">
95     <xsl:call-template name="object.id"/>
96   </xsl:variable>
97
98   <xsl:choose>
99     <xsl:when test="string(.) = ''">
100       <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
101       <xsl:variable name="entry" select="$bib/bibliography//                                          *[@id=$id or @xml:id=$id][1]"/>
102       <xsl:choose>
103         <xsl:when test="$entry">
104           <xsl:choose>
105             <xsl:when test="$bibliography.numbered != 0">
106               <xsl:apply-templates select="$entry">
107                 <xsl:with-param name="label" select="$label"/>
108               </xsl:apply-templates>
109             </xsl:when>
110             <xsl:otherwise>
111               <xsl:apply-templates select="$entry"/>
112             </xsl:otherwise>
113           </xsl:choose>
114         </xsl:when>
115         <xsl:otherwise>
116           <xsl:message>
117             <xsl:text>No bibliography entry: </xsl:text>
118             <xsl:value-of select="$id"/>
119             <xsl:text> found in </xsl:text>
120             <xsl:value-of select="$bibliography.collection"/>
121           </xsl:message>
122           <div>
123             <xsl:call-template name="common.html.attributes"/>
124             <xsl:call-template name="anchor"/>
125             <p>
126               <xsl:copy-of select="$label"/>
127               <xsl:text>Error: no bibliography entry: </xsl:text>
128               <xsl:value-of select="$id"/>
129               <xsl:text> found in </xsl:text>
130               <xsl:value-of select="$bibliography.collection"/>
131             </p>
132           </div>
133         </xsl:otherwise>
134       </xsl:choose>
135     </xsl:when>
136     <xsl:otherwise>
137       <div>
138         <xsl:call-template name="common.html.attributes"/>
139         <xsl:call-template name="anchor">
140           <xsl:with-param name="conditional" select="0"/>
141         </xsl:call-template>
142         <p>
143           <xsl:copy-of select="$label"/>
144           <xsl:choose>
145             <xsl:when test="$bibliography.style = 'iso690'">
146               <xsl:call-template name="iso690.makecitation"/>
147             </xsl:when>
148             <xsl:otherwise>
149               <xsl:apply-templates mode="bibliography.mode"/>
150             </xsl:otherwise>
151           </xsl:choose>
152         </p>
153       </div>
154     </xsl:otherwise>
155   </xsl:choose>
156 </xsl:template>
157
158 <xsl:template match="bibliomixed">
159   <xsl:param name="label">
160     <xsl:call-template name="biblioentry.label"/>
161   </xsl:param>
162
163   <xsl:variable name="id">
164     <xsl:call-template name="object.id"/>
165   </xsl:variable>
166
167   <xsl:choose>
168     <xsl:when test="string(.) = ''">
169       <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
170       <xsl:variable name="entry" select="$bib/bibliography//                                          *[@id=$id or @xml:id=$id][1]"/>
171       <xsl:choose>
172         <xsl:when test="$entry">
173           <xsl:choose>
174             <xsl:when test="$bibliography.numbered != 0">
175               <xsl:apply-templates select="$entry">
176                 <xsl:with-param name="label" select="$label"/>
177               </xsl:apply-templates>
178             </xsl:when>
179             <xsl:otherwise>
180               <xsl:apply-templates select="$entry"/>
181             </xsl:otherwise>
182           </xsl:choose>
183         </xsl:when>
184         <xsl:otherwise>
185           <xsl:message>
186             <xsl:text>No bibliography entry: </xsl:text>
187             <xsl:value-of select="$id"/>
188             <xsl:text> found in </xsl:text>
189             <xsl:value-of select="$bibliography.collection"/>
190           </xsl:message>
191           <div>
192             <xsl:call-template name="common.html.attributes"/>
193             <xsl:call-template name="anchor"/>
194             <p>
195               <xsl:copy-of select="$label"/>
196               <xsl:text>Error: no bibliography entry: </xsl:text>
197               <xsl:value-of select="$id"/>
198               <xsl:text> found in </xsl:text>
199               <xsl:value-of select="$bibliography.collection"/>
200             </p>
201           </div>
202         </xsl:otherwise>
203       </xsl:choose>
204     </xsl:when>
205     <xsl:otherwise>
206       <div>
207         <xsl:call-template name="common.html.attributes"/>
208         <xsl:call-template name="anchor">
209           <xsl:with-param name="conditional" select="0"/>
210         </xsl:call-template>
211         <p>
212           <xsl:call-template name="common.html.attributes"/>
213           <xsl:copy-of select="$label"/>
214           <xsl:apply-templates mode="bibliomixed.mode"/>
215         </p>
216       </div>
217     </xsl:otherwise>
218   </xsl:choose>
219 </xsl:template>
220
221 <xsl:template name="biblioentry.label">
222   <xsl:param name="node" select="."/>
223
224   <xsl:choose>
225     <xsl:when test="$bibliography.numbered != 0">
226       <xsl:text>[</xsl:text>
227       <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
228       <xsl:text>] </xsl:text>
229     </xsl:when>
230     <xsl:when test="local-name($node/child::*[1]) = 'abbrev'">
231       <xsl:text>[</xsl:text>
232       <xsl:apply-templates select="$node/abbrev[1]"/>
233       <xsl:text>] </xsl:text>
234     </xsl:when>
235     <xsl:when test="$node/@xreflabel">
236       <xsl:text>[</xsl:text>
237       <xsl:value-of select="$node/@xreflabel"/>
238       <xsl:text>] </xsl:text>
239     </xsl:when>
240     <xsl:when test="$node/@id">
241       <xsl:text>[</xsl:text>
242       <xsl:value-of select="$node/@id"/>
243       <xsl:text>] </xsl:text>
244     </xsl:when>
245     <xsl:when test="$node/@xml:id">
246       <xsl:text>[</xsl:text>
247       <xsl:value-of select="$node/@xml:id"/>
248       <xsl:text>] </xsl:text>
249     </xsl:when>
250     <xsl:otherwise><!-- nop --></xsl:otherwise>
251   </xsl:choose>
252 </xsl:template>
253
254 <!-- ==================================================================== -->
255
256 <xsl:template match="*" mode="bibliography.mode">
257   <xsl:apply-templates select="."/><!-- try the default mode -->
258 </xsl:template>
259
260 <xsl:template match="abbrev" mode="bibliography.mode">
261   <xsl:if test="preceding-sibling::*">
262     <xsl:apply-templates mode="bibliography.mode"/>
263   </xsl:if>
264 </xsl:template>
265
266 <xsl:template match="abstract" mode="bibliography.mode">
267   <!-- suppressed -->
268 </xsl:template>
269
270 <xsl:template match="address" mode="bibliography.mode">
271   <span>
272     <xsl:call-template name="common.html.attributes"/>
273     <xsl:apply-templates mode="bibliography.mode"/>
274     <xsl:copy-of select="$biblioentry.item.separator"/>
275   </span>
276 </xsl:template>
277
278 <xsl:template match="affiliation" mode="bibliography.mode">
279   <span>
280     <xsl:call-template name="common.html.attributes"/>
281     <xsl:apply-templates mode="bibliography.mode"/>
282     <xsl:copy-of select="$biblioentry.item.separator"/>
283   </span>
284 </xsl:template>
285
286 <xsl:template match="shortaffil" mode="bibliography.mode">
287   <span>
288     <xsl:call-template name="common.html.attributes"/>
289     <xsl:apply-templates mode="bibliography.mode"/>
290     <xsl:copy-of select="$biblioentry.item.separator"/>
291   </span>
292 </xsl:template>
293
294 <xsl:template match="jobtitle" mode="bibliography.mode">
295   <span>
296     <xsl:call-template name="common.html.attributes"/>
297     <xsl:apply-templates mode="bibliography.mode"/>
298     <xsl:copy-of select="$biblioentry.item.separator"/>
299   </span>
300 </xsl:template>
301
302 <xsl:template match="artheader|articleinfo|info" mode="bibliography.mode">
303   <span>
304     <xsl:call-template name="common.html.attributes"/>
305     <xsl:apply-templates mode="bibliography.mode"/>
306     <xsl:copy-of select="$biblioentry.item.separator"/>
307   </span>
308 </xsl:template>
309
310 <xsl:template match="artpagenums" mode="bibliography.mode">
311   <span>
312     <xsl:call-template name="common.html.attributes"/>
313     <xsl:apply-templates mode="bibliography.mode"/>
314     <xsl:copy-of select="$biblioentry.item.separator"/>
315   </span>
316 </xsl:template>
317
318 <xsl:template match="author" mode="bibliography.mode">
319   <span>
320     <xsl:call-template name="common.html.attributes"/>
321     <xsl:call-template name="person.name"/>
322     <xsl:copy-of select="$biblioentry.item.separator"/>
323   </span>
324 </xsl:template>
325
326 <xsl:template match="authorblurb|personblurb" mode="bibliography.mode">
327   <!-- suppressed -->
328 </xsl:template>
329
330 <xsl:template match="authorgroup" mode="bibliography.mode">
331   <span>
332     <xsl:call-template name="common.html.attributes"/>
333     <xsl:call-template name="person.name.list"/>
334     <xsl:copy-of select="$biblioentry.item.separator"/>
335   </span>
336 </xsl:template>
337
338 <xsl:template match="authorinitials" mode="bibliography.mode">
339   <span>
340     <xsl:call-template name="common.html.attributes"/>
341     <xsl:apply-templates mode="bibliography.mode"/>
342     <xsl:copy-of select="$biblioentry.item.separator"/>
343   </span>
344 </xsl:template>
345
346 <xsl:template match="bibliomisc" mode="bibliography.mode">
347   <span>
348     <xsl:call-template name="common.html.attributes"/>
349     <xsl:apply-templates mode="bibliography.mode"/>
350     <xsl:copy-of select="$biblioentry.item.separator"/>
351   </span>
352 </xsl:template>
353
354 <xsl:template match="bibliomset" mode="bibliography.mode">
355   <span>
356     <xsl:call-template name="common.html.attributes"/>
357     <xsl:apply-templates mode="bibliography.mode"/>
358     <xsl:copy-of select="$biblioentry.item.separator"/>
359   </span>
360 </xsl:template>
361
362 <!-- ================================================== -->
363
364 <xsl:template match="biblioset" mode="bibliography.mode">
365   <span>
366     <xsl:call-template name="common.html.attributes"/>
367     <xsl:apply-templates mode="bibliography.mode"/>
368   </span>
369 </xsl:template>
370
371 <xsl:template match="biblioset/title|biblioset/citetitle" mode="bibliography.mode">
372   <xsl:variable name="relation" select="../@relation"/>
373   <xsl:choose>
374     <xsl:when test="$relation='article' or @pubwork='article'">
375       <xsl:call-template name="gentext.startquote"/>
376       <xsl:apply-templates/>
377       <xsl:call-template name="gentext.endquote"/>
378     </xsl:when>
379     <xsl:otherwise>
380       <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></em>
381     </xsl:otherwise>
382   </xsl:choose>
383   <xsl:copy-of select="$biblioentry.item.separator"/>
384 </xsl:template>
385
386 <!-- ================================================== -->
387
388 <xsl:template match="bookbiblio" mode="bibliography.mode">
389   <span>
390     <xsl:call-template name="common.html.attributes"/>
391     <xsl:apply-templates mode="bibliography.mode"/>
392     <xsl:copy-of select="$biblioentry.item.separator"/>
393   </span>
394 </xsl:template>
395
396 <xsl:template match="citetitle" mode="bibliography.mode">
397   <span>
398     <xsl:call-template name="common.html.attributes"/>
399     <xsl:choose>
400       <xsl:when test="@pubwork = 'article'">
401         <xsl:call-template name="gentext.startquote"/>
402         <xsl:call-template name="inline.charseq"/>
403         <xsl:call-template name="gentext.endquote"/>
404       </xsl:when>
405       <xsl:otherwise>
406         <xsl:call-template name="inline.italicseq"/>
407       </xsl:otherwise>
408     </xsl:choose>
409     <xsl:copy-of select="$biblioentry.item.separator"/>
410   </span>
411 </xsl:template>
412
413 <xsl:template match="collab" mode="bibliography.mode">
414   <span>
415     <xsl:call-template name="common.html.attributes"/>
416     <xsl:apply-templates mode="bibliography.mode"/>
417     <xsl:copy-of select="$biblioentry.item.separator"/>
418   </span>
419 </xsl:template>
420
421 <xsl:template match="collabname" mode="bibliography.mode">
422   <span>
423     <xsl:call-template name="common.html.attributes"/>
424     <xsl:apply-templates mode="bibliography.mode"/>
425     <xsl:copy-of select="$biblioentry.item.separator"/>
426   </span>
427 </xsl:template>
428
429 <xsl:template match="confgroup" mode="bibliography.mode">
430   <span>
431     <xsl:call-template name="common.html.attributes"/>
432     <xsl:apply-templates mode="bibliography.mode"/>
433     <xsl:copy-of select="$biblioentry.item.separator"/>
434   </span>
435 </xsl:template>
436
437 <xsl:template match="confdates" mode="bibliography.mode">
438   <span>
439     <xsl:call-template name="common.html.attributes"/>
440     <xsl:apply-templates mode="bibliography.mode"/>
441     <xsl:copy-of select="$biblioentry.item.separator"/>
442   </span>
443 </xsl:template>
444
445 <xsl:template match="conftitle" mode="bibliography.mode">
446   <span>
447     <xsl:call-template name="common.html.attributes"/>
448     <xsl:apply-templates mode="bibliography.mode"/>
449     <xsl:copy-of select="$biblioentry.item.separator"/>
450   </span>
451 </xsl:template>
452
453 <xsl:template match="confnum" mode="bibliography.mode">
454   <span>
455     <xsl:call-template name="common.html.attributes"/>
456     <xsl:apply-templates mode="bibliography.mode"/>
457     <xsl:copy-of select="$biblioentry.item.separator"/>
458   </span>
459 </xsl:template>
460
461 <xsl:template match="confsponsor" mode="bibliography.mode">
462   <span>
463     <xsl:call-template name="common.html.attributes"/>
464     <xsl:apply-templates mode="bibliography.mode"/>
465     <xsl:copy-of select="$biblioentry.item.separator"/>
466   </span>
467 </xsl:template>
468
469 <xsl:template match="contractnum" mode="bibliography.mode">
470   <span>
471     <xsl:call-template name="common.html.attributes"/>
472     <xsl:apply-templates mode="bibliography.mode"/>
473     <xsl:copy-of select="$biblioentry.item.separator"/>
474   </span>
475 </xsl:template>
476
477 <xsl:template match="contractsponsor" mode="bibliography.mode">
478   <span>
479     <xsl:call-template name="common.html.attributes"/>
480     <xsl:apply-templates mode="bibliography.mode"/>
481     <xsl:copy-of select="$biblioentry.item.separator"/>
482   </span>
483 </xsl:template>
484
485 <xsl:template match="contrib" mode="bibliography.mode">
486   <span>
487     <xsl:call-template name="common.html.attributes"/>
488     <xsl:apply-templates mode="bibliography.mode"/>
489     <xsl:copy-of select="$biblioentry.item.separator"/>
490   </span>
491 </xsl:template>
492
493 <!-- ================================================== -->
494
495 <xsl:template match="copyright" mode="bibliography.mode">
496   <span>
497     <xsl:call-template name="common.html.attributes"/>
498     <xsl:call-template name="gentext">
499       <xsl:with-param name="key" select="'Copyright'"/>
500     </xsl:call-template>
501     <xsl:call-template name="gentext.space"/>
502     <xsl:call-template name="dingbat">
503       <xsl:with-param name="dingbat">copyright</xsl:with-param>
504     </xsl:call-template>
505     <xsl:call-template name="gentext.space"/>
506     <xsl:apply-templates select="year" mode="bibliography.mode"/>
507     <xsl:if test="holder">
508       <xsl:call-template name="gentext.space"/>
509       <xsl:apply-templates select="holder" mode="bibliography.mode"/>
510     </xsl:if>
511     <xsl:copy-of select="$biblioentry.item.separator"/>
512   </span>
513 </xsl:template>
514
515 <xsl:template match="year" mode="bibliography.mode">
516   <xsl:apply-templates/><xsl:text>, </xsl:text>
517 </xsl:template>
518
519 <xsl:template match="year[position()=last()]" mode="bibliography.mode">
520   <xsl:apply-templates/>
521 </xsl:template>
522
523 <xsl:template match="holder" mode="bibliography.mode">
524   <xsl:apply-templates/>
525 </xsl:template>
526
527 <!-- ================================================== -->
528
529 <xsl:template match="corpauthor" mode="bibliography.mode">
530   <span>
531     <xsl:call-template name="common.html.attributes"/>
532     <xsl:apply-templates mode="bibliography.mode"/>
533     <xsl:copy-of select="$biblioentry.item.separator"/>
534   </span>
535 </xsl:template>
536
537 <xsl:template match="corpcredit" mode="bibliography.mode">
538   <span>
539     <xsl:call-template name="common.html.attributes"/>
540     <xsl:apply-templates mode="bibliography.mode"/>
541     <xsl:copy-of select="$biblioentry.item.separator"/>
542   </span>
543 </xsl:template>
544
545 <xsl:template match="corpname" mode="bibliography.mode">
546   <span>
547     <xsl:call-template name="common.html.attributes"/>
548     <xsl:apply-templates mode="bibliography.mode"/>
549     <xsl:copy-of select="$biblioentry.item.separator"/>
550   </span>
551 </xsl:template>
552
553 <xsl:template match="date" mode="bibliography.mode">
554   <span>
555     <xsl:call-template name="common.html.attributes"/>
556     <xsl:apply-templates mode="bibliography.mode"/>
557     <xsl:copy-of select="$biblioentry.item.separator"/>
558   </span>
559 </xsl:template>
560
561 <xsl:template match="edition" mode="bibliography.mode">
562   <span>
563     <xsl:call-template name="common.html.attributes"/>
564     <xsl:apply-templates mode="bibliography.mode"/>
565     <xsl:copy-of select="$biblioentry.item.separator"/>
566   </span>
567 </xsl:template>
568
569 <xsl:template match="editor" mode="bibliography.mode">
570   <span>
571     <xsl:call-template name="common.html.attributes"/>
572     <xsl:call-template name="person.name"/>
573     <xsl:copy-of select="$biblioentry.item.separator"/>
574   </span>
575 </xsl:template>
576
577 <xsl:template match="firstname" mode="bibliography.mode">
578   <span>
579     <xsl:call-template name="common.html.attributes"/>
580     <xsl:apply-templates mode="bibliography.mode"/>
581     <xsl:copy-of select="$biblioentry.item.separator"/>
582   </span>
583 </xsl:template>
584
585 <xsl:template match="honorific" mode="bibliography.mode">
586   <span>
587     <xsl:call-template name="common.html.attributes"/>
588     <xsl:apply-templates mode="bibliography.mode"/>
589     <xsl:copy-of select="$biblioentry.item.separator"/>
590   </span>
591 </xsl:template>
592
593 <xsl:template match="indexterm" mode="bibliography.mode">
594   <span>
595     <xsl:call-template name="common.html.attributes"/>
596     <xsl:apply-templates mode="bibliography.mode"/>
597     <xsl:copy-of select="$biblioentry.item.separator"/>
598   </span>
599 </xsl:template>
600
601 <xsl:template match="invpartnumber" mode="bibliography.mode">
602   <span>
603     <xsl:call-template name="common.html.attributes"/>
604     <xsl:apply-templates mode="bibliography.mode"/>
605     <xsl:copy-of select="$biblioentry.item.separator"/>
606   </span>
607 </xsl:template>
608
609 <xsl:template match="isbn" mode="bibliography.mode">
610   <span>
611     <xsl:call-template name="common.html.attributes"/>
612     <xsl:apply-templates mode="bibliography.mode"/>
613     <xsl:copy-of select="$biblioentry.item.separator"/>
614   </span>
615 </xsl:template>
616
617 <xsl:template match="issn" mode="bibliography.mode">
618   <span>
619     <xsl:call-template name="common.html.attributes"/>
620     <xsl:apply-templates mode="bibliography.mode"/>
621     <xsl:copy-of select="$biblioentry.item.separator"/>
622   </span>
623 </xsl:template>
624
625 <xsl:template match="issuenum" mode="bibliography.mode">
626   <span>
627     <xsl:call-template name="common.html.attributes"/>
628     <xsl:apply-templates mode="bibliography.mode"/>
629     <xsl:copy-of select="$biblioentry.item.separator"/>
630   </span>
631 </xsl:template>
632
633 <xsl:template match="lineage" mode="bibliography.mode">
634   <span>
635     <xsl:call-template name="common.html.attributes"/>
636     <xsl:apply-templates mode="bibliography.mode"/>
637     <xsl:copy-of select="$biblioentry.item.separator"/>
638   </span>
639 </xsl:template>
640
641 <xsl:template match="orgname" mode="bibliography.mode">
642   <span>
643     <xsl:call-template name="common.html.attributes"/>
644     <xsl:apply-templates mode="bibliography.mode"/>
645     <xsl:copy-of select="$biblioentry.item.separator"/>
646   </span>
647 </xsl:template>
648
649 <xsl:template match="orgdiv" mode="bibliography.mode">
650   <span>
651     <xsl:call-template name="common.html.attributes"/>
652     <xsl:apply-templates mode="bibliography.mode"/>
653     <xsl:copy-of select="$biblioentry.item.separator"/>
654   </span>
655 </xsl:template>
656
657 <xsl:template match="othercredit" mode="bibliography.mode">
658   <span>
659     <xsl:call-template name="common.html.attributes"/>
660     <xsl:apply-templates mode="bibliography.mode"/>
661     <xsl:copy-of select="$biblioentry.item.separator"/>
662   </span>
663 </xsl:template>
664
665 <xsl:template match="othername" mode="bibliography.mode">
666   <span>
667     <xsl:call-template name="common.html.attributes"/>
668     <xsl:apply-templates mode="bibliography.mode"/>
669     <xsl:copy-of select="$biblioentry.item.separator"/>
670   </span>
671 </xsl:template>
672
673 <xsl:template match="pagenums" mode="bibliography.mode">
674   <span>
675     <xsl:call-template name="common.html.attributes"/>
676     <xsl:apply-templates mode="bibliography.mode"/>
677     <xsl:copy-of select="$biblioentry.item.separator"/>
678   </span>
679 </xsl:template>
680
681 <xsl:template match="printhistory" mode="bibliography.mode">
682   <!-- suppressed -->
683 </xsl:template>
684
685 <xsl:template match="productname" mode="bibliography.mode">
686   <span>
687     <xsl:call-template name="common.html.attributes"/>
688     <xsl:apply-templates mode="bibliography.mode"/>
689     <xsl:copy-of select="$biblioentry.item.separator"/>
690   </span>
691 </xsl:template>
692
693 <xsl:template match="productnumber" mode="bibliography.mode">
694   <span>
695     <xsl:call-template name="common.html.attributes"/>
696     <xsl:apply-templates mode="bibliography.mode"/>
697     <xsl:copy-of select="$biblioentry.item.separator"/>
698   </span>
699 </xsl:template>
700
701 <xsl:template match="pubdate" mode="bibliography.mode">
702   <span>
703     <xsl:call-template name="common.html.attributes"/>
704     <xsl:apply-templates mode="bibliography.mode"/>
705     <xsl:copy-of select="$biblioentry.item.separator"/>
706   </span>
707 </xsl:template>
708
709 <xsl:template match="publisher" mode="bibliography.mode">
710   <span>
711     <xsl:call-template name="common.html.attributes"/>
712     <xsl:apply-templates mode="bibliography.mode"/>
713   </span>
714 </xsl:template>
715
716 <xsl:template match="publishername" mode="bibliography.mode">
717   <span>
718     <xsl:call-template name="common.html.attributes"/>
719     <xsl:apply-templates mode="bibliography.mode"/>
720     <xsl:copy-of select="$biblioentry.item.separator"/>
721   </span>
722 </xsl:template>
723
724 <xsl:template match="pubsnumber" mode="bibliography.mode">
725   <span>
726     <xsl:call-template name="common.html.attributes"/>
727     <xsl:apply-templates mode="bibliography.mode"/>
728     <xsl:copy-of select="$biblioentry.item.separator"/>
729   </span>
730 </xsl:template>
731
732 <xsl:template match="releaseinfo" mode="bibliography.mode">
733   <span>
734     <xsl:call-template name="common.html.attributes"/>
735     <xsl:apply-templates mode="bibliography.mode"/>
736     <xsl:copy-of select="$biblioentry.item.separator"/>
737   </span>
738 </xsl:template>
739
740 <xsl:template match="revhistory" mode="bibliography.mode">
741   <!-- suppressed; how could this be represented? -->
742 </xsl:template>
743
744 <xsl:template match="seriesinfo" mode="bibliography.mode">
745   <span>
746     <xsl:call-template name="common.html.attributes"/>
747     <xsl:apply-templates mode="bibliography.mode"/>
748   </span>
749 </xsl:template>
750
751 <xsl:template match="seriesvolnums" mode="bibliography.mode">
752   <span>
753     <xsl:call-template name="common.html.attributes"/>
754     <xsl:apply-templates mode="bibliography.mode"/>
755     <xsl:copy-of select="$biblioentry.item.separator"/>
756   </span>
757 </xsl:template>
758
759 <xsl:template match="subtitle" mode="bibliography.mode">
760   <span>
761     <xsl:call-template name="common.html.attributes"/>
762     <xsl:apply-templates mode="bibliography.mode"/>
763     <xsl:copy-of select="$biblioentry.item.separator"/>
764   </span>
765 </xsl:template>
766
767 <xsl:template match="surname" mode="bibliography.mode">
768   <span>
769     <xsl:call-template name="common.html.attributes"/>
770     <xsl:apply-templates mode="bibliography.mode"/>
771     <xsl:copy-of select="$biblioentry.item.separator"/>
772   </span>
773 </xsl:template>
774
775 <xsl:template match="title" mode="bibliography.mode">
776   <span>
777     <xsl:call-template name="common.html.attributes"/>
778     <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates mode="bibliography.mode"/></em>
779     <xsl:copy-of select="$biblioentry.item.separator"/>
780   </span>
781 </xsl:template>
782
783 <xsl:template match="titleabbrev" mode="bibliography.mode">
784   <span>
785     <xsl:call-template name="common.html.attributes"/>
786     <xsl:apply-templates mode="bibliography.mode"/>
787     <xsl:copy-of select="$biblioentry.item.separator"/>
788   </span>
789 </xsl:template>
790
791 <xsl:template match="volumenum" mode="bibliography.mode">
792   <span>
793     <xsl:call-template name="common.html.attributes"/>
794     <xsl:apply-templates mode="bibliography.mode"/>
795     <xsl:copy-of select="$biblioentry.item.separator"/>
796   </span>
797 </xsl:template>
798
799 <xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource" mode="bibliography.mode">
800   <span>
801     <xsl:call-template name="common.html.attributes"/>
802     <xsl:apply-templates mode="bibliography.mode"/>
803     <xsl:copy-of select="$biblioentry.item.separator"/>
804   </span>
805 </xsl:template>
806
807 <!-- See FR #1934434 and http://doi.org -->
808 <xsl:template match="biblioid[@class='doi']" mode="bibliography.mode">
809   <span>
810     <xsl:call-template name="common.html.attributes"/>
811     <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
812   </span>
813 </xsl:template>
814
815 <!-- ==================================================================== -->
816
817 <xsl:template match="*" mode="bibliomixed.mode">
818   <xsl:apply-templates select="."/><!-- try the default mode -->
819 </xsl:template>
820
821 <xsl:template match="abbrev" mode="bibliomixed.mode">
822   <xsl:if test="preceding-sibling::*">
823     <xsl:apply-templates mode="bibliomixed.mode"/>
824   </xsl:if>
825 </xsl:template>
826
827 <xsl:template match="abstract" mode="bibliomixed.mode">
828   <span>
829     <xsl:call-template name="common.html.attributes"/>
830     <xsl:apply-templates mode="bibliomixed.mode"/>
831   </span>
832 </xsl:template>
833
834 <xsl:template match="address" mode="bibliomixed.mode">
835   <span>
836     <xsl:call-template name="common.html.attributes"/>
837     <xsl:apply-templates mode="bibliomixed.mode"/>
838   </span>
839 </xsl:template>
840
841 <xsl:template match="affiliation" mode="bibliomixed.mode">
842   <span>
843     <xsl:call-template name="common.html.attributes"/>
844     <xsl:apply-templates mode="bibliomixed.mode"/>
845   </span>
846 </xsl:template>
847
848 <xsl:template match="shortaffil" mode="bibliomixed.mode">
849   <span>
850     <xsl:call-template name="common.html.attributes"/>
851     <xsl:apply-templates mode="bibliomixed.mode"/>
852   </span>
853 </xsl:template>
854
855 <xsl:template match="jobtitle" mode="bibliomixed.mode">
856   <span>
857     <xsl:call-template name="common.html.attributes"/>
858     <xsl:apply-templates mode="bibliomixed.mode"/>
859   </span>
860 </xsl:template>
861
862 <xsl:template match="artpagenums" mode="bibliomixed.mode">
863   <span>
864     <xsl:call-template name="common.html.attributes"/>
865     <xsl:apply-templates mode="bibliomixed.mode"/>
866   </span>
867 </xsl:template>
868
869 <xsl:template match="author" mode="bibliomixed.mode">
870   <span>
871     <xsl:call-template name="common.html.attributes"/>
872     <xsl:apply-templates mode="bibliomixed.mode"/>
873   </span>
874 </xsl:template>
875
876 <xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode">
877   <span>
878     <xsl:call-template name="common.html.attributes"/>
879     <xsl:apply-templates mode="bibliomixed.mode"/>
880   </span>
881 </xsl:template>
882
883 <xsl:template match="authorgroup" mode="bibliomixed.mode">
884   <span>
885     <xsl:call-template name="common.html.attributes"/>
886     <xsl:apply-templates mode="bibliomixed.mode"/>
887   </span>
888 </xsl:template>
889
890 <xsl:template match="authorinitials" mode="bibliomixed.mode">
891   <span>
892     <xsl:call-template name="common.html.attributes"/>
893     <xsl:apply-templates mode="bibliomixed.mode"/>
894   </span>
895 </xsl:template>
896
897 <xsl:template match="bibliomisc" mode="bibliomixed.mode">
898   <span>
899     <xsl:call-template name="common.html.attributes"/>
900     <xsl:apply-templates mode="bibliomixed.mode"/>
901   </span>
902 </xsl:template>
903
904 <!-- ================================================== -->
905
906 <xsl:template match="bibliomset" mode="bibliomixed.mode">
907   <span>
908     <xsl:call-template name="common.html.attributes"/>
909     <xsl:apply-templates mode="bibliomixed.mode"/>
910   </span>
911 </xsl:template>
912
913 <xsl:template match="bibliomset/title|bibliomset/citetitle" mode="bibliomixed.mode">
914   <xsl:variable name="relation" select="../@relation"/>
915   <xsl:choose>
916     <xsl:when test="$relation='article' or @pubwork='article'">
917       <xsl:call-template name="gentext.startquote"/>
918       <xsl:apply-templates/>
919       <xsl:call-template name="gentext.endquote"/>
920     </xsl:when>
921     <xsl:otherwise>
922       <em xmlns:xslo="http://www.w3.org/1999/XSL/Transform"><xsl:apply-templates/></em>
923     </xsl:otherwise>
924   </xsl:choose>
925 </xsl:template>
926
927 <!-- ================================================== -->
928
929 <xsl:template match="biblioset" mode="bibliomixed.mode">
930   <span>
931     <xsl:call-template name="common.html.attributes"/>
932     <xsl:apply-templates mode="bibliomixed.mode"/>
933   </span>
934 </xsl:template>
935
936 <xsl:template match="citetitle" mode="bibliomixed.mode">
937   <span>
938     <xsl:call-template name="common.html.attributes"/>
939     <xsl:choose>
940       <xsl:when test="@pubwork = 'article'">
941         <xsl:call-template name="gentext.startquote"/>
942         <xsl:call-template name="inline.charseq"/>
943         <xsl:call-template name="gentext.endquote"/>
944       </xsl:when>
945       <xsl:otherwise>
946         <xsl:call-template name="inline.italicseq"/>
947       </xsl:otherwise>
948     </xsl:choose>
949   </span>
950 </xsl:template>
951
952
953 <xsl:template match="collab" mode="bibliomixed.mode">
954   <span>
955     <xsl:call-template name="common.html.attributes"/>
956     <xsl:apply-templates mode="bibliomixed.mode"/>
957   </span>
958 </xsl:template>
959
960 <xsl:template match="confgroup" mode="bibliomixed.mode">
961   <span>
962     <xsl:call-template name="common.html.attributes"/>
963     <xsl:apply-templates mode="bibliomixed.mode"/>
964   </span>
965 </xsl:template>
966
967 <xsl:template match="contractnum" mode="bibliomixed.mode">
968   <span>
969     <xsl:call-template name="common.html.attributes"/>
970     <xsl:apply-templates mode="bibliomixed.mode"/>
971   </span>
972 </xsl:template>
973
974 <xsl:template match="contractsponsor" mode="bibliomixed.mode">
975   <span>
976     <xsl:call-template name="common.html.attributes"/>
977     <xsl:apply-templates mode="bibliomixed.mode"/>
978   </span>
979 </xsl:template>
980
981 <xsl:template match="contrib" mode="bibliomixed.mode">
982   <span>
983     <xsl:call-template name="common.html.attributes"/>
984     <xsl:apply-templates mode="bibliomixed.mode"/>
985   </span>
986 </xsl:template>
987
988 <xsl:template match="copyright" mode="bibliomixed.mode">
989   <span>
990     <xsl:call-template name="common.html.attributes"/>
991     <xsl:apply-templates mode="bibliomixed.mode"/>
992   </span>
993 </xsl:template>
994
995 <xsl:template match="corpauthor" mode="bibliomixed.mode">
996   <span>
997     <xsl:call-template name="common.html.attributes"/>
998     <xsl:apply-templates mode="bibliomixed.mode"/>
999   </span>
1000 </xsl:template>
1001
1002 <xsl:template match="corpcredit" mode="bibliomixed.mode">
1003   <span>
1004     <xsl:call-template name="common.html.attributes"/>
1005     <xsl:apply-templates mode="bibliomixed.mode"/>
1006   </span>
1007 </xsl:template>
1008
1009 <xsl:template match="corpname" mode="bibliomixed.mode">
1010   <span>
1011     <xsl:call-template name="common.html.attributes"/>
1012     <xsl:apply-templates mode="bibliomixed.mode"/>
1013   </span>
1014 </xsl:template>
1015
1016 <xsl:template match="date" mode="bibliomixed.mode">
1017   <span>
1018     <xsl:call-template name="common.html.attributes"/>
1019     <xsl:apply-templates mode="bibliomixed.mode"/>
1020   </span>
1021 </xsl:template>
1022
1023 <xsl:template match="edition" mode="bibliomixed.mode">
1024   <span>
1025     <xsl:call-template name="common.html.attributes"/>
1026     <xsl:apply-templates mode="bibliomixed.mode"/>
1027   </span>
1028 </xsl:template>
1029
1030 <xsl:template match="editor" mode="bibliomixed.mode">
1031   <span>
1032     <xsl:call-template name="common.html.attributes"/>
1033     <xsl:apply-templates mode="bibliomixed.mode"/>
1034   </span>
1035 </xsl:template>
1036
1037 <xsl:template match="firstname" mode="bibliomixed.mode">
1038   <span>
1039     <xsl:call-template name="common.html.attributes"/>
1040     <xsl:apply-templates mode="bibliomixed.mode"/>
1041   </span>
1042 </xsl:template>
1043
1044 <xsl:template match="honorific" mode="bibliomixed.mode">
1045   <span>
1046     <xsl:call-template name="common.html.attributes"/>
1047     <xsl:apply-templates mode="bibliomixed.mode"/>
1048   </span>
1049 </xsl:template>
1050
1051 <xsl:template match="indexterm" mode="bibliomixed.mode">
1052   <span>
1053     <xsl:call-template name="common.html.attributes"/>
1054     <xsl:apply-templates mode="bibliomixed.mode"/>
1055   </span>
1056 </xsl:template>
1057
1058 <xsl:template match="invpartnumber" mode="bibliomixed.mode">
1059   <span>
1060     <xsl:call-template name="common.html.attributes"/>
1061     <xsl:apply-templates mode="bibliomixed.mode"/>
1062   </span>
1063 </xsl:template>
1064
1065 <xsl:template match="isbn" mode="bibliomixed.mode">
1066   <span>
1067     <xsl:call-template name="common.html.attributes"/>
1068     <xsl:apply-templates mode="bibliomixed.mode"/>
1069   </span>
1070 </xsl:template>
1071
1072 <xsl:template match="issn" mode="bibliomixed.mode">
1073   <span>
1074     <xsl:call-template name="common.html.attributes"/>
1075     <xsl:apply-templates mode="bibliomixed.mode"/>
1076   </span>
1077 </xsl:template>
1078
1079 <xsl:template match="issuenum" mode="bibliomixed.mode">
1080   <span>
1081     <xsl:call-template name="common.html.attributes"/>
1082     <xsl:apply-templates mode="bibliomixed.mode"/>
1083   </span>
1084 </xsl:template>
1085
1086 <xsl:template match="lineage" mode="bibliomixed.mode">
1087   <span>
1088     <xsl:call-template name="common.html.attributes"/>
1089     <xsl:apply-templates mode="bibliomixed.mode"/>
1090   </span>
1091 </xsl:template>
1092
1093 <xsl:template match="orgname" mode="bibliomixed.mode">
1094   <span>
1095     <xsl:call-template name="common.html.attributes"/>
1096     <xsl:apply-templates mode="bibliomixed.mode"/>
1097   </span>
1098 </xsl:template>
1099
1100 <xsl:template match="othercredit" mode="bibliomixed.mode">
1101   <span>
1102     <xsl:call-template name="common.html.attributes"/>
1103     <xsl:apply-templates mode="bibliomixed.mode"/>
1104   </span>
1105 </xsl:template>
1106
1107 <xsl:template match="othername" mode="bibliomixed.mode">
1108   <span>
1109     <xsl:call-template name="common.html.attributes"/>
1110     <xsl:apply-templates mode="bibliomixed.mode"/>
1111   </span>
1112 </xsl:template>
1113
1114 <xsl:template match="pagenums" mode="bibliomixed.mode">
1115   <span>
1116     <xsl:call-template name="common.html.attributes"/>
1117     <xsl:apply-templates mode="bibliomixed.mode"/>
1118   </span>
1119 </xsl:template>
1120
1121 <xsl:template match="printhistory" mode="bibliomixed.mode">
1122   <span>
1123     <xsl:call-template name="common.html.attributes"/>
1124     <xsl:apply-templates mode="bibliomixed.mode"/>
1125   </span>
1126 </xsl:template>
1127
1128 <xsl:template match="productname" mode="bibliomixed.mode">
1129   <span>
1130     <xsl:call-template name="common.html.attributes"/>
1131     <xsl:apply-templates mode="bibliomixed.mode"/>
1132   </span>
1133 </xsl:template>
1134
1135 <xsl:template match="productnumber" mode="bibliomixed.mode">
1136   <span>
1137     <xsl:call-template name="common.html.attributes"/>
1138     <xsl:apply-templates mode="bibliomixed.mode"/>
1139   </span>
1140 </xsl:template>
1141
1142 <xsl:template match="pubdate" mode="bibliomixed.mode">
1143   <span>
1144     <xsl:call-template name="common.html.attributes"/>
1145     <xsl:apply-templates mode="bibliomixed.mode"/>
1146   </span>
1147 </xsl:template>
1148
1149 <xsl:template match="publisher" mode="bibliomixed.mode">
1150   <span>
1151     <xsl:call-template name="common.html.attributes"/>
1152     <xsl:apply-templates mode="bibliomixed.mode"/>
1153   </span>
1154 </xsl:template>
1155
1156 <xsl:template match="publishername" mode="bibliomixed.mode">
1157   <span>
1158     <xsl:call-template name="common.html.attributes"/>
1159     <xsl:apply-templates mode="bibliomixed.mode"/>
1160   </span>
1161 </xsl:template>
1162
1163 <xsl:template match="pubsnumber" mode="bibliomixed.mode">
1164   <span>
1165     <xsl:call-template name="common.html.attributes"/>
1166     <xsl:apply-templates mode="bibliomixed.mode"/>
1167   </span>
1168 </xsl:template>
1169
1170 <xsl:template match="releaseinfo" mode="bibliomixed.mode">
1171   <span>
1172     <xsl:call-template name="common.html.attributes"/>
1173     <xsl:apply-templates mode="bibliomixed.mode"/>
1174   </span>
1175 </xsl:template>
1176
1177 <xsl:template match="revhistory" mode="bibliomixed.mode">
1178   <!-- suppressed; how could this be represented? -->
1179 </xsl:template>
1180
1181 <xsl:template match="seriesvolnums" mode="bibliomixed.mode">
1182   <span>
1183     <xsl:call-template name="common.html.attributes"/>
1184     <xsl:apply-templates mode="bibliomixed.mode"/>
1185   </span>
1186 </xsl:template>
1187
1188 <xsl:template match="subtitle" mode="bibliomixed.mode">
1189   <span>
1190     <xsl:call-template name="common.html.attributes"/>
1191     <xsl:apply-templates mode="bibliomixed.mode"/>
1192   </span>
1193 </xsl:template>
1194
1195 <xsl:template match="surname" mode="bibliomixed.mode">
1196   <span>
1197     <xsl:call-template name="common.html.attributes"/>
1198     <xsl:apply-templates mode="bibliomixed.mode"/>
1199   </span>
1200 </xsl:template>
1201
1202 <xsl:template match="title" mode="bibliomixed.mode">
1203   <span>
1204     <xsl:call-template name="common.html.attributes"/>
1205     <xsl:apply-templates mode="bibliomixed.mode"/>
1206   </span>
1207 </xsl:template>
1208
1209 <xsl:template match="titleabbrev" mode="bibliomixed.mode">
1210   <span>
1211     <xsl:call-template name="common.html.attributes"/>
1212     <xsl:apply-templates mode="bibliomixed.mode"/>
1213   </span>
1214 </xsl:template>
1215
1216 <xsl:template match="volumenum" mode="bibliomixed.mode">
1217   <span>
1218     <xsl:call-template name="common.html.attributes"/>
1219     <xsl:apply-templates mode="bibliomixed.mode"/>
1220   </span>
1221 </xsl:template>
1222
1223 <xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource" mode="bibliomixed.mode">
1224   <span>
1225     <xsl:call-template name="common.html.attributes"/>
1226     <xsl:apply-templates mode="bibliomixed.mode"/>
1227   </span>
1228 </xsl:template>
1229
1230 <!-- See FR #1934434 and http://doi.org -->
1231 <xsl:template match="biblioid[@class='doi']" mode="bibliomixed.mode">
1232   <span>
1233     <xsl:call-template name="common.html.attributes"/>
1234     <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
1235   </span>
1236 </xsl:template>
1237
1238 <!-- ==================================================================== -->
1239
1240 </xsl:stylesheet>