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