source: BOOK/stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/inline.xsl @ d7c9f58

clfs-1.2clfs-2.1clfs-3.0.0-systemdclfs-3.0.0-sysvinitsystemdsysvinit
Last change on this file since d7c9f58 was d7c9f58, checked in by Manuel Canales Esparcia <manuel@…>, 17 years ago

Updated DocBook?-XSL code to version 1.73.2

  • Property mode set to 100644
File size: 45.3 KB
Line 
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:xlink="http://www.w3.org/1999/xlink" xmlns:suwl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.UnwrapLinks" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xlink suwl" version="1.0">
5
6<!-- ********************************************************************
7     $Id$
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<xsl:template name="simple.xlink">
16  <xsl:param name="node" select="."/>
17  <xsl:param name="content">
18    <xsl:apply-templates/>
19  </xsl:param>
20  <xsl:param name="a.target"/>
21  <xsl:param name="linkend" select="$node/@linkend"/>
22  <xsl:param name="xhref" select="$node/@xlink:href"/>
23
24  <xsl:variable name="link">
25    <xsl:choose>
26      <xsl:when test="$xhref and                        (not($node/@xlink:type) or                             $node/@xlink:type='simple')">
27
28        <!-- Is it a local idref or a uri? -->
29        <xsl:variable name="is.idref">
30          <xsl:choose>
31            <!-- if the href starts with # and does not contain an "(" -->
32            <!-- or if the href starts with #xpointer(id(, it's just an ID -->
33            <xsl:when test="starts-with($xhref,'#')                             and (not(contains($xhref,'('))                             or starts-with($xhref,                                        '#xpointer(id('))">1</xsl:when>
34            <xsl:otherwise>0</xsl:otherwise>
35          </xsl:choose>
36        </xsl:variable>
37
38        <!-- Is it an olink ? -->
39        <xsl:variable name="is.olink">
40          <xsl:choose>
41            <!-- If xlink:role="http://docbook.org/xlink/role/olink" -->
42            <!-- and if the href contains # -->
43            <xsl:when test="contains($xhref,'#') and           @xlink:role = $xolink.role">1</xsl:when>
44            <xsl:otherwise>0</xsl:otherwise>
45          </xsl:choose>
46        </xsl:variable>
47
48        <xsl:choose>
49          <xsl:when test="$is.idref = 1">
50
51            <xsl:variable name="idref">
52              <xsl:call-template name="xpointer.idref">
53                <xsl:with-param name="xpointer" select="$xhref"/>
54              </xsl:call-template>
55            </xsl:variable>
56
57            <xsl:variable name="targets" select="key('id',$idref)"/>
58            <xsl:variable name="target" select="$targets[1]"/>
59
60            <xsl:call-template name="check.id.unique">
61              <xsl:with-param name="linkend" select="$idref"/>
62            </xsl:call-template>
63
64            <xsl:choose>
65              <xsl:when test="count($target) = 0">
66                <xsl:message>
67                  <xsl:text>XLink to nonexistent id: </xsl:text>
68                  <xsl:value-of select="$idref"/>
69                </xsl:message>
70                <xsl:copy-of select="$content"/>
71              </xsl:when>
72
73              <xsl:otherwise>
74                <a>
75                  <xsl:apply-templates select="." mode="class.attribute"/>
76
77                  <xsl:attribute name="href">
78                    <xsl:call-template name="href.target">
79                      <xsl:with-param name="object" select="$target"/>
80                    </xsl:call-template>
81                  </xsl:attribute>
82
83                  <xsl:choose>
84                    <xsl:when test="$node/@xlink:title">
85                      <xsl:attribute name="title">
86                        <xsl:value-of select="$node/@xlink:title"/>
87                      </xsl:attribute>
88                    </xsl:when>
89                    <xsl:otherwise>
90                      <xsl:apply-templates select="$target" mode="html.title.attribute"/>
91                    </xsl:otherwise>
92                  </xsl:choose>
93
94                  <xsl:if test="$a.target">
95                    <xsl:attribute name="target">
96                      <xsl:value-of select="$a.target"/>
97                    </xsl:attribute>
98                  </xsl:if>
99
100                  <xsl:copy-of select="$content"/>
101
102                </a>
103              </xsl:otherwise>
104            </xsl:choose>
105          </xsl:when>
106
107          <xsl:when test="$is.olink = 1">
108            <xsl:call-template name="olink">
109              <xsl:with-param name="content" select="$content"/>
110            </xsl:call-template>
111          </xsl:when>
112
113          <!-- otherwise it's a URI -->
114          <xsl:otherwise>
115            <a>
116              <xsl:apply-templates select="." mode="class.attribute"/>
117              <xsl:attribute name="href">
118                <xsl:value-of select="$xhref"/>
119              </xsl:attribute>
120              <xsl:if test="$node/@xlink:title">
121                <xsl:attribute name="title">
122                  <xsl:value-of select="$node/@xlink:title"/>
123                </xsl:attribute>
124              </xsl:if>
125              <xsl:copy-of select="$content"/>
126            </a>
127          </xsl:otherwise>
128        </xsl:choose>
129      </xsl:when>
130
131      <xsl:when test="$linkend">
132        <xsl:variable name="targets" select="key('id',$linkend)"/>
133        <xsl:variable name="target" select="$targets[1]"/>
134
135        <xsl:call-template name="check.id.unique">
136          <xsl:with-param name="linkend" select="$linkend"/>
137        </xsl:call-template>
138
139        <a>
140          <xsl:apply-templates select="." mode="class.attribute"/>
141          <xsl:attribute name="href">
142            <xsl:call-template name="href.target">
143              <xsl:with-param name="object" select="$target"/>
144            </xsl:call-template>
145          </xsl:attribute>
146
147          <xsl:apply-templates select="$target" mode="html.title.attribute"/>
148
149          <xsl:copy-of select="$content"/>
150         
151        </a>
152      </xsl:when>
153      <xsl:otherwise>
154        <xsl:copy-of select="$content"/>
155      </xsl:otherwise>
156    </xsl:choose>
157  </xsl:variable>
158
159  <xsl:choose>
160    <xsl:when test="function-available('suwl:unwrapLinks')">
161      <xsl:copy-of select="suwl:unwrapLinks($link)"/>
162    </xsl:when>
163    <xsl:otherwise>
164      <xsl:copy-of select="$link"/>
165    </xsl:otherwise>
166  </xsl:choose>
167</xsl:template>
168
169<xsl:template name="inline.charseq">
170  <xsl:param name="content">
171    <xsl:call-template name="anchor"/>
172    <xsl:call-template name="simple.xlink">
173      <xsl:with-param name="content">
174        <xsl:apply-templates/>
175      </xsl:with-param>
176    </xsl:call-template>
177  </xsl:param>
178  <!-- * if you want output from the inline.charseq template wrapped in -->
179  <!-- * something other than a Span, call the template with some value -->
180  <!-- * for the 'wrapper-name' param -->
181  <xsl:param name="wrapper-name">span</xsl:param>
182  <xsl:element name="{$wrapper-name}" namespace="http://www.w3.org/1999/xhtml">
183    <xsl:attribute name="class">
184      <xsl:value-of select="local-name(.)"/>
185    </xsl:attribute>
186    <xsl:call-template name="dir"/>
187    <xsl:call-template name="generate.html.title"/>
188    <xsl:copy-of select="$content"/>
189    <xsl:call-template name="apply-annotations"/>
190  </xsl:element>
191</xsl:template>
192
193<xsl:template name="inline.monoseq">
194  <xsl:param name="content">
195    <xsl:call-template name="anchor"/>
196    <xsl:call-template name="simple.xlink">
197      <xsl:with-param name="content">
198        <xsl:apply-templates/>
199      </xsl:with-param>
200    </xsl:call-template>
201  </xsl:param>
202  <code>
203    <xsl:apply-templates select="." mode="class.attribute"/>
204    <xsl:call-template name="dir"/>
205    <xsl:call-template name="generate.html.title"/>
206    <xsl:copy-of select="$content"/>
207    <xsl:call-template name="apply-annotations"/>
208  </code>
209</xsl:template>
210
211<xsl:template name="inline.boldseq">
212  <xsl:param name="content">
213    <xsl:call-template name="anchor"/>
214    <xsl:call-template name="simple.xlink">
215      <xsl:with-param name="content">
216        <xsl:apply-templates/>
217      </xsl:with-param>
218    </xsl:call-template>
219  </xsl:param>
220
221  <span>
222    <xsl:apply-templates select="." mode="class.attribute"/>
223    <xsl:call-template name="generate.html.title"/>
224    <xsl:call-template name="dir"/>
225
226    <!-- don't put <strong> inside figure, example, or table titles -->
227    <xsl:choose>
228      <xsl:when test="local-name(..) = 'title'                       and (local-name(../..) = 'figure'                       or local-name(../..) = 'example'                       or local-name(../..) = 'table')">
229        <xsl:copy-of select="$content"/>
230      </xsl:when>
231      <xsl:otherwise>
232        <strong>
233          <xsl:copy-of select="$content"/>
234        </strong>
235      </xsl:otherwise>
236    </xsl:choose>
237    <xsl:call-template name="apply-annotations"/>
238  </span>
239</xsl:template>
240
241<xsl:template name="inline.italicseq">
242  <xsl:param name="content">
243    <xsl:call-template name="anchor"/>
244    <xsl:call-template name="simple.xlink">
245      <xsl:with-param name="content">
246        <xsl:apply-templates/>
247      </xsl:with-param>
248    </xsl:call-template>
249  </xsl:param>
250  <em>
251    <xsl:apply-templates select="." mode="class.attribute"/>
252    <xsl:call-template name="generate.html.title"/>
253    <xsl:call-template name="dir"/>
254    <xsl:copy-of select="$content"/>
255    <xsl:call-template name="apply-annotations"/>
256  </em>
257</xsl:template>
258
259<xsl:template name="inline.boldmonoseq">
260  <xsl:param name="content">
261    <xsl:call-template name="anchor"/>
262    <xsl:call-template name="simple.xlink">
263      <xsl:with-param name="content">
264        <xsl:apply-templates/>
265      </xsl:with-param>
266    </xsl:call-template>
267  </xsl:param>
268  <!-- don't put <strong> inside figure, example, or table titles -->
269  <!-- or other titles that may already be represented with <strong>'s. -->
270  <xsl:choose>
271    <xsl:when test="local-name(..) = 'title'                     and (local-name(../..) = 'figure'                          or local-name(../..) = 'example'                          or local-name(../..) = 'table'                          or local-name(../..) = 'formalpara')">
272      <code>
273        <xsl:apply-templates select="." mode="class.attribute"/>
274        <xsl:call-template name="generate.html.title"/>
275        <xsl:call-template name="dir"/>
276        <xsl:copy-of select="$content"/>
277        <xsl:call-template name="apply-annotations"/>
278      </code>
279    </xsl:when>
280    <xsl:otherwise>
281      <strong>
282        <xsl:apply-templates select="." mode="class.attribute"/>
283        <code>
284          <xsl:call-template name="generate.html.title"/>
285          <xsl:call-template name="dir"/>
286          <xsl:copy-of select="$content"/>
287        </code>
288        <xsl:call-template name="apply-annotations"/>
289      </strong>
290    </xsl:otherwise>
291  </xsl:choose>
292</xsl:template>
293
294<xsl:template name="inline.italicmonoseq">
295  <xsl:param name="content">
296    <xsl:call-template name="anchor"/>
297    <xsl:call-template name="simple.xlink">
298      <xsl:with-param name="content">
299        <xsl:apply-templates/>
300      </xsl:with-param>
301    </xsl:call-template>
302  </xsl:param>
303  <em>
304    <xsl:apply-templates select="." mode="class.attribute"/>
305    <code>
306      <xsl:call-template name="generate.html.title"/>
307      <xsl:call-template name="dir"/>
308      <xsl:copy-of select="$content"/>
309      <xsl:call-template name="apply-annotations"/>
310    </code>
311  </em>
312</xsl:template>
313
314<xsl:template name="inline.superscriptseq">
315  <xsl:param name="content">
316    <xsl:call-template name="anchor"/>
317    <xsl:call-template name="simple.xlink">
318      <xsl:with-param name="content">
319        <xsl:apply-templates/>
320      </xsl:with-param>
321    </xsl:call-template>
322  </xsl:param>
323  <sup>
324    <xsl:call-template name="generate.html.title"/>
325    <xsl:call-template name="dir"/>
326    <xsl:copy-of select="$content"/>
327    <xsl:call-template name="apply-annotations"/>
328  </sup>
329</xsl:template>
330
331<xsl:template name="inline.subscriptseq">
332  <xsl:param name="content">
333    <xsl:call-template name="anchor"/>
334    <xsl:call-template name="simple.xlink">
335      <xsl:with-param name="content">
336        <xsl:apply-templates/>
337      </xsl:with-param>
338    </xsl:call-template>
339  </xsl:param>
340  <sub>
341    <xsl:call-template name="generate.html.title"/>
342    <xsl:call-template name="dir"/>
343    <xsl:copy-of select="$content"/>
344    <xsl:call-template name="apply-annotations"/>
345  </sub>
346</xsl:template>
347
348<!-- ==================================================================== -->
349<!-- some special cases -->
350
351<xsl:template match="author">
352  <xsl:param name="content">
353    <xsl:call-template name="anchor"/>
354    <xsl:call-template name="simple.xlink">
355      <xsl:with-param name="content">
356        <xsl:call-template name="person.name"/>
357      </xsl:with-param>
358    </xsl:call-template>
359    <xsl:call-template name="apply-annotations"/>
360  </xsl:param>
361
362  <span>
363    <xsl:apply-templates select="." mode="class.attribute"/>
364    <xsl:copy-of select="$content"/>
365  </span>
366</xsl:template>
367
368<xsl:template match="editor">
369  <xsl:param name="content">
370    <xsl:call-template name="anchor"/>
371    <xsl:call-template name="simple.xlink">
372      <xsl:with-param name="content">
373        <xsl:call-template name="person.name"/>
374      </xsl:with-param>
375    </xsl:call-template>
376    <xsl:call-template name="apply-annotations"/>
377  </xsl:param>
378
379  <span>
380    <xsl:apply-templates select="." mode="class.attribute"/>
381    <xsl:copy-of select="$content"/>
382  </span>
383</xsl:template>
384
385<xsl:template match="othercredit">
386  <xsl:param name="content">
387    <xsl:call-template name="anchor"/>
388    <xsl:call-template name="simple.xlink">
389      <xsl:with-param name="content">
390        <xsl:call-template name="person.name"/>
391      </xsl:with-param>
392    </xsl:call-template>
393    <xsl:call-template name="apply-annotations"/>
394  </xsl:param>
395
396  <span>
397    <xsl:apply-templates select="." mode="class.attribute"/>
398    <xsl:copy-of select="$content"/>
399  </span>
400</xsl:template>
401
402<xsl:template match="authorinitials">
403  <xsl:call-template name="inline.charseq"/>
404</xsl:template>
405
406<!-- ==================================================================== -->
407
408<xsl:template match="accel">
409  <xsl:call-template name="inline.charseq"/>
410</xsl:template>
411
412<xsl:template match="action">
413  <xsl:call-template name="inline.charseq"/>
414</xsl:template>
415
416<xsl:template match="application">
417  <xsl:call-template name="inline.charseq"/>
418</xsl:template>
419
420<xsl:template match="classname">
421  <xsl:call-template name="inline.monoseq"/>
422</xsl:template>
423
424<xsl:template match="exceptionname">
425  <xsl:call-template name="inline.monoseq"/>
426</xsl:template>
427
428<xsl:template match="interfacename">
429  <xsl:call-template name="inline.monoseq"/>
430</xsl:template>
431
432<xsl:template match="methodname">
433  <xsl:call-template name="inline.monoseq"/>
434</xsl:template>
435
436<xsl:template match="command">
437  <xsl:call-template name="inline.boldseq"/>
438</xsl:template>
439
440<xsl:template match="computeroutput">
441  <xsl:call-template name="inline.monoseq"/>
442</xsl:template>
443
444<xsl:template match="constant">
445  <xsl:call-template name="inline.monoseq"/>
446</xsl:template>
447
448<xsl:template match="database">
449  <xsl:call-template name="inline.charseq"/>
450</xsl:template>
451
452<xsl:template match="date">
453  <!-- should this support locale-specific formatting? how? -->
454  <xsl:call-template name="inline.charseq"/>
455</xsl:template>
456
457<xsl:template match="errorcode">
458  <xsl:call-template name="inline.charseq"/>
459</xsl:template>
460
461<xsl:template match="errorname">
462  <xsl:call-template name="inline.charseq"/>
463</xsl:template>
464
465<xsl:template match="errortype">
466  <xsl:call-template name="inline.charseq"/>
467</xsl:template>
468
469<xsl:template match="errortext">
470  <xsl:call-template name="inline.charseq"/>
471</xsl:template>
472
473<xsl:template match="envar">
474  <xsl:call-template name="inline.monoseq"/>
475</xsl:template>
476
477<xsl:template match="filename">
478  <xsl:call-template name="inline.monoseq"/>
479</xsl:template>
480
481<xsl:template match="function">
482  <xsl:choose>
483    <xsl:when test="$function.parens != '0'                     and (parameter or function or replaceable)">
484      <xsl:variable name="nodes" select="text()|*"/>
485      <xsl:call-template name="inline.monoseq">
486        <xsl:with-param name="content">
487          <xsl:call-template name="simple.xlink">
488            <xsl:with-param name="content">
489              <xsl:apply-templates select="$nodes[1]"/>
490            </xsl:with-param>
491          </xsl:call-template>
492        </xsl:with-param>
493      </xsl:call-template>
494      <xsl:text>(</xsl:text>
495      <xsl:apply-templates select="$nodes[position()&gt;1]"/>
496      <xsl:text>)</xsl:text>
497    </xsl:when>
498    <xsl:otherwise>
499     <xsl:call-template name="inline.monoseq"/>
500    </xsl:otherwise>
501  </xsl:choose>
502</xsl:template>
503
504<xsl:template match="function/parameter" priority="2">
505  <xsl:call-template name="inline.italicmonoseq"/>
506  <xsl:if test="following-sibling::*">
507    <xsl:text>, </xsl:text>
508  </xsl:if>
509</xsl:template>
510
511<xsl:template match="function/replaceable" priority="2">
512  <xsl:call-template name="inline.italicmonoseq"/>
513  <xsl:if test="following-sibling::*">
514    <xsl:text>, </xsl:text>
515  </xsl:if>
516</xsl:template>
517
518<xsl:template match="guibutton">
519  <xsl:call-template name="inline.charseq"/>
520</xsl:template>
521
522<xsl:template match="guiicon">
523  <xsl:call-template name="inline.charseq"/>
524</xsl:template>
525
526<xsl:template match="guilabel">
527  <xsl:call-template name="inline.charseq"/>
528</xsl:template>
529
530<xsl:template match="guimenu">
531  <xsl:call-template name="inline.charseq"/>
532</xsl:template>
533
534<xsl:template match="guimenuitem">
535  <xsl:call-template name="inline.charseq"/>
536</xsl:template>
537
538<xsl:template match="guisubmenu">
539  <xsl:call-template name="inline.charseq"/>
540</xsl:template>
541
542<xsl:template match="hardware">
543  <xsl:call-template name="inline.charseq"/>
544</xsl:template>
545
546<xsl:template match="interface">
547  <xsl:call-template name="inline.charseq"/>
548</xsl:template>
549
550<xsl:template match="interfacedefinition">
551  <xsl:call-template name="inline.charseq"/>
552</xsl:template>
553
554<xsl:template match="keycap">
555  <xsl:call-template name="inline.boldseq"/>
556</xsl:template>
557
558<xsl:template match="keycode">
559  <xsl:call-template name="inline.charseq"/>
560</xsl:template>
561
562<xsl:template match="keysym">
563  <xsl:call-template name="inline.charseq"/>
564</xsl:template>
565
566<xsl:template match="literal">
567  <xsl:call-template name="inline.monoseq"/>
568</xsl:template>
569
570<xsl:template match="code">
571  <xsl:call-template name="inline.monoseq"/>
572</xsl:template>
573
574<xsl:template match="medialabel">
575  <xsl:call-template name="inline.italicseq"/>
576</xsl:template>
577
578<xsl:template match="shortcut">
579  <xsl:call-template name="inline.boldseq"/>
580</xsl:template>
581
582<xsl:template match="mousebutton">
583  <xsl:call-template name="inline.charseq"/>
584</xsl:template>
585
586<xsl:template match="option">
587  <xsl:call-template name="inline.monoseq"/>
588</xsl:template>
589
590<xsl:template match="package">
591  <xsl:call-template name="inline.charseq"/>
592</xsl:template>
593
594<xsl:template match="parameter">
595  <xsl:call-template name="inline.italicmonoseq"/>
596</xsl:template>
597
598<xsl:template match="property">
599  <xsl:call-template name="inline.charseq"/>
600</xsl:template>
601
602<xsl:template match="prompt">
603  <xsl:call-template name="inline.monoseq"/>
604</xsl:template>
605
606<xsl:template match="replaceable" priority="1">
607  <xsl:call-template name="inline.italicmonoseq"/>
608</xsl:template>
609
610<xsl:template match="returnvalue">
611  <xsl:call-template name="inline.charseq"/>
612</xsl:template>
613
614<xsl:template match="structfield">
615  <xsl:call-template name="inline.italicmonoseq"/>
616</xsl:template>
617
618<xsl:template match="structname">
619  <xsl:call-template name="inline.charseq"/>
620</xsl:template>
621
622<xsl:template match="symbol">
623  <xsl:call-template name="inline.charseq"/>
624</xsl:template>
625
626<xsl:template match="systemitem">
627  <xsl:call-template name="inline.monoseq"/>
628</xsl:template>
629
630<xsl:template match="token">
631  <xsl:call-template name="inline.charseq"/>
632</xsl:template>
633
634<xsl:template match="type">
635  <xsl:call-template name="inline.charseq"/>
636</xsl:template>
637
638<xsl:template match="userinput">
639  <xsl:call-template name="inline.boldmonoseq"/>
640</xsl:template>
641
642<xsl:template match="abbrev">
643  <xsl:call-template name="inline.charseq">
644    <xsl:with-param name="wrapper-name">abbr</xsl:with-param>
645  </xsl:call-template>
646</xsl:template>
647
648<xsl:template match="acronym">
649  <xsl:call-template name="inline.charseq">
650    <xsl:with-param name="wrapper-name">acronym</xsl:with-param>
651  </xsl:call-template>
652</xsl:template>
653
654<xsl:template match="citerefentry">
655  <xsl:choose>
656    <xsl:when test="$citerefentry.link != '0'">
657      <a>
658        <xsl:apply-templates select="." mode="class.attribute"/>
659        <xsl:attribute name="href">
660          <xsl:call-template name="generate.citerefentry.link"/>
661        </xsl:attribute>
662        <xsl:call-template name="inline.charseq"/>
663      </a>
664    </xsl:when>
665    <xsl:otherwise>
666      <xsl:call-template name="inline.charseq"/>
667    </xsl:otherwise>
668  </xsl:choose>
669</xsl:template>
670
671<xsl:template name="generate.citerefentry.link">
672  <!-- nop -->
673</xsl:template>
674
675<xsl:template name="x.generate.citerefentry.link">
676  <xsl:text>http://example.com/cgi-bin/man.cgi?</xsl:text>
677  <xsl:value-of select="refentrytitle"/>
678  <xsl:text>(</xsl:text>
679  <xsl:value-of select="manvolnum"/>
680  <xsl:text>)</xsl:text>
681</xsl:template>
682
683<xsl:template match="citetitle">
684  <xsl:choose>
685    <xsl:when test="@pubwork = 'article'">
686      <xsl:call-template name="gentext.startquote"/>
687      <xsl:call-template name="inline.charseq"/>
688      <xsl:call-template name="gentext.endquote"/>
689    </xsl:when>
690    <xsl:otherwise>
691      <xsl:call-template name="inline.italicseq"/>
692    </xsl:otherwise>
693  </xsl:choose>
694</xsl:template>
695
696<xsl:template match="emphasis">
697  <span>
698    <xsl:choose>
699      <xsl:when test="@role and $emphasis.propagates.style != 0">
700        <xsl:apply-templates select="." mode="class.attribute">
701          <xsl:with-param name="class" select="@role"/>
702        </xsl:apply-templates>
703      </xsl:when>
704      <xsl:otherwise>
705        <xsl:apply-templates select="." mode="class.attribute"/>
706      </xsl:otherwise>
707    </xsl:choose>
708    <xsl:call-template name="anchor"/>
709
710    <xsl:call-template name="simple.xlink">
711      <xsl:with-param name="content">
712        <xsl:choose>
713          <xsl:when test="@role = 'bold' or @role='strong'">
714            <!-- backwards compatibility: make bold into b elements, but -->
715            <!-- don't put bold inside figure, example, or table titles -->
716            <xsl:choose>
717              <xsl:when test="local-name(..) = 'title'                               and (local-name(../..) = 'figure'                               or local-name(../..) = 'example'                               or local-name(../..) = 'table')">
718                <xsl:apply-templates/>
719              </xsl:when>
720              <xsl:otherwise>
721                <strong><xsl:apply-templates/></strong>
722              </xsl:otherwise>
723            </xsl:choose>
724          </xsl:when>
725          <xsl:when test="@role and $emphasis.propagates.style != 0">
726            <xsl:apply-templates/>
727          </xsl:when>
728          <xsl:otherwise>
729            <em><xsl:apply-templates/></em>
730          </xsl:otherwise>
731        </xsl:choose>
732      </xsl:with-param>
733    </xsl:call-template>
734  </span>
735</xsl:template>
736
737<xsl:template match="foreignphrase">
738  <span>
739    <xsl:apply-templates select="." mode="class.attribute"/>
740    <xsl:if test="@lang or @xml:lang">
741      <xsl:call-template name="language.attribute"/>
742    </xsl:if>
743    <xsl:call-template name="inline.italicseq"/>
744  </span>
745</xsl:template>
746
747<xsl:template match="markup">
748  <xsl:call-template name="inline.charseq"/>
749</xsl:template>
750
751<xsl:template match="phrase">
752  <span>
753    <xsl:call-template name="generate.html.title"/>
754    <xsl:if test="@lang or @xml:lang">
755      <xsl:call-template name="language.attribute"/>
756    </xsl:if>
757    <xsl:if test="@role and $phrase.propagates.style != 0">
758      <xsl:apply-templates select="." mode="class.attribute">
759        <xsl:with-param name="class" select="@role"/>
760      </xsl:apply-templates>
761    </xsl:if>
762    <xsl:call-template name="dir"/>
763    <xsl:call-template name="anchor"/>
764    <xsl:call-template name="simple.xlink">
765      <xsl:with-param name="content">
766        <xsl:apply-templates/>
767      </xsl:with-param>
768    </xsl:call-template>
769    <xsl:call-template name="apply-annotations"/>
770  </span>
771</xsl:template>
772
773<xsl:template match="quote">
774  <xsl:variable name="depth">
775    <xsl:call-template name="dot.count">
776      <xsl:with-param name="string">
777        <xsl:number level="multiple"/>
778      </xsl:with-param>
779    </xsl:call-template>
780  </xsl:variable>
781  <xsl:choose>
782    <xsl:when test="$depth mod 2 = 0">
783      <xsl:call-template name="gentext.startquote"/>
784      <xsl:call-template name="inline.charseq"/>
785      <xsl:call-template name="gentext.endquote"/>
786    </xsl:when>
787    <xsl:otherwise>
788      <xsl:call-template name="gentext.nestedstartquote"/>
789      <xsl:call-template name="inline.charseq"/>
790      <xsl:call-template name="gentext.nestedendquote"/>
791    </xsl:otherwise>
792  </xsl:choose>
793</xsl:template>
794
795<xsl:template match="varname">
796  <xsl:call-template name="inline.monoseq"/>
797</xsl:template>
798
799<xsl:template match="wordasword">
800  <xsl:call-template name="inline.italicseq"/>
801</xsl:template>
802
803<xsl:template match="lineannotation">
804  <em>
805    <xsl:apply-templates select="." mode="class.attribute"/>
806    <xsl:call-template name="inline.charseq"/>
807  </em>
808</xsl:template>
809
810<xsl:template match="superscript">
811  <xsl:call-template name="inline.superscriptseq"/>
812</xsl:template>
813
814<xsl:template match="subscript">
815  <xsl:call-template name="inline.subscriptseq"/>
816</xsl:template>
817
818<xsl:template match="trademark">
819  <xsl:call-template name="inline.charseq"/>
820  <xsl:choose>
821    <xsl:when test="@class = 'copyright'                     or @class = 'registered'">
822      <xsl:call-template name="dingbat">
823        <xsl:with-param name="dingbat" select="@class"/>
824      </xsl:call-template>
825    </xsl:when>
826    <xsl:when test="@class = 'service'">
827      <sup>SM</sup>
828    </xsl:when>
829    <xsl:otherwise>
830      <xsl:call-template name="dingbat">
831        <xsl:with-param name="dingbat" select="'trademark'"/>
832      </xsl:call-template>
833    </xsl:otherwise>
834  </xsl:choose>
835</xsl:template>
836
837<xsl:template match="firstterm">
838  <xsl:call-template name="glossterm">
839    <xsl:with-param name="firstterm" select="1"/>
840  </xsl:call-template>
841</xsl:template>
842
843<xsl:template match="glossterm" name="glossterm">
844  <xsl:param name="firstterm" select="0"/>
845
846  <!-- To avoid extra <a name=""> anchor from inline.italicseq -->
847  <xsl:variable name="content">
848    <xsl:apply-templates/>
849  </xsl:variable>
850
851  <xsl:choose>
852    <xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and @linkend">
853      <xsl:variable name="targets" select="key('id',@linkend)"/>
854      <xsl:variable name="target" select="$targets[1]"/>
855
856      <xsl:call-template name="check.id.unique">
857        <xsl:with-param name="linkend" select="@linkend"/>
858      </xsl:call-template>
859
860      <xsl:choose>
861        <xsl:when test="$target">
862          <a>
863            <xsl:apply-templates select="." mode="class.attribute"/>
864            <xsl:if test="@id or @xml:id">
865              <xsl:attribute name="id">
866                <xsl:value-of select="(@id|@xml:id)[1]"/>
867              </xsl:attribute>
868            </xsl:if>
869
870            <xsl:attribute name="href">
871              <xsl:call-template name="href.target">
872                <xsl:with-param name="object" select="$target"/>
873              </xsl:call-template>
874            </xsl:attribute>
875
876            <xsl:call-template name="inline.italicseq">
877              <xsl:with-param name="content" select="$content"/>
878            </xsl:call-template>
879          </a>
880        </xsl:when>
881        <xsl:otherwise>
882          <xsl:call-template name="inline.italicseq">
883            <xsl:with-param name="content" select="$content"/>
884          </xsl:call-template>
885        </xsl:otherwise>
886      </xsl:choose>
887    </xsl:when>
888
889    <xsl:when test="not(@linkend)                     and ($firstterm.only.link = 0 or $firstterm = 1)                     and ($glossterm.auto.link != 0)                     and $glossary.collection != ''">
890      <xsl:variable name="term">
891        <xsl:choose>
892          <xsl:when test="@baseform"><xsl:value-of select="@baseform"/></xsl:when>
893          <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
894        </xsl:choose>
895      </xsl:variable>
896
897      <xsl:variable name="cterm" select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
898
899      <!-- HACK HACK HACK! But it works... -->
900      <!-- You'd need to do more work if you wanted to chunk on glossdiv, though -->
901
902      <xsl:variable name="glossary" select="//glossary[@role='auto']"/>
903
904      <xsl:if test="count($glossary) != 1">
905        <xsl:message>
906          <xsl:text>Warning: glossary.collection specified, but there are </xsl:text>
907          <xsl:value-of select="count($glossary)"/>
908          <xsl:text> automatic glossaries</xsl:text>
909        </xsl:message>
910      </xsl:if>
911
912      <xsl:variable name="glosschunk">
913        <xsl:call-template name="href.target">
914          <xsl:with-param name="object" select="$glossary"/>
915        </xsl:call-template>
916      </xsl:variable>
917
918      <xsl:variable name="chunkbase">
919        <xsl:choose>
920          <xsl:when test="contains($glosschunk, '#')">
921            <xsl:value-of select="substring-before($glosschunk, '#')"/>
922          </xsl:when>
923          <xsl:otherwise>
924            <xsl:value-of select="$glosschunk"/>
925          </xsl:otherwise>
926        </xsl:choose>
927      </xsl:variable>
928
929      <xsl:choose>
930        <xsl:when test="not($cterm)">
931          <xsl:message>
932            <xsl:text>There's no entry for </xsl:text>
933            <xsl:value-of select="$term"/>
934            <xsl:text> in </xsl:text>
935            <xsl:value-of select="$glossary.collection"/>
936          </xsl:message>
937          <xsl:call-template name="inline.italicseq"/>
938        </xsl:when>
939        <xsl:otherwise>
940          <xsl:variable name="id">
941            <xsl:call-template name="object.id">
942              <xsl:with-param name="object" select="$cterm"/>
943            </xsl:call-template>
944          </xsl:variable>
945          <a href="{$chunkbase}#{$id}">
946            <xsl:apply-templates select="." mode="class.attribute"/>
947            <xsl:call-template name="inline.italicseq">
948              <xsl:with-param name="content" select="$content"/>
949            </xsl:call-template>
950          </a>
951        </xsl:otherwise>
952      </xsl:choose>
953    </xsl:when>
954
955    <xsl:when test="not(@linkend)                     and ($firstterm.only.link = 0 or $firstterm = 1)                     and $glossterm.auto.link != 0">
956      <xsl:variable name="term">
957        <xsl:choose>
958          <xsl:when test="@baseform">
959            <xsl:value-of select="normalize-space(@baseform)"/>
960          </xsl:when>
961          <xsl:otherwise>
962            <xsl:value-of select="normalize-space(.)"/>
963          </xsl:otherwise>
964        </xsl:choose>
965      </xsl:variable>
966      <xsl:variable name="targets" select="//glossentry[normalize-space(glossterm)=$term                               or normalize-space(glossterm/@baseform)=$term]"/>
967      <xsl:variable name="target" select="$targets[1]"/>
968
969      <xsl:choose>
970        <xsl:when test="count($targets)=0">
971          <xsl:message>
972            <xsl:text>Error: no glossentry for glossterm: </xsl:text>
973            <xsl:value-of select="."/>
974            <xsl:text>.</xsl:text>
975          </xsl:message>
976          <xsl:call-template name="inline.italicseq"/>
977        </xsl:when>
978        <xsl:otherwise>
979          <a>
980            <xsl:apply-templates select="." mode="class.attribute"/>
981            <xsl:if test="@id or @xml:id">
982              <xsl:attribute name="id">
983                <xsl:value-of select="(@id|@xml:id)[1]"/>
984              </xsl:attribute>
985            </xsl:if>
986
987            <xsl:attribute name="href">
988              <xsl:call-template name="href.target">
989                <xsl:with-param name="object" select="$target"/>
990              </xsl:call-template>
991            </xsl:attribute>
992
993            <xsl:call-template name="inline.italicseq">
994              <xsl:with-param name="content" select="$content"/>
995            </xsl:call-template>
996          </a>
997        </xsl:otherwise>
998      </xsl:choose>
999    </xsl:when>
1000
1001    <xsl:otherwise>
1002      <xsl:call-template name="inline.italicseq"/>
1003    </xsl:otherwise>
1004  </xsl:choose>
1005</xsl:template>
1006
1007<xsl:template match="termdef">
1008  <span>
1009    <xsl:apply-templates select="." mode="class.attribute"/>
1010    <xsl:call-template name="generate.html.title"/>
1011    <xsl:call-template name="gentext.template">
1012      <xsl:with-param name="context" select="'termdef'"/>
1013      <xsl:with-param name="name" select="'prefix'"/>
1014    </xsl:call-template>
1015    <xsl:apply-templates/>
1016    <xsl:call-template name="gentext.template">
1017      <xsl:with-param name="context" select="'termdef'"/>
1018      <xsl:with-param name="name" select="'suffix'"/>
1019    </xsl:call-template>
1020  </span>
1021</xsl:template>
1022
1023<xsl:template match="sgmltag|tag">
1024  <xsl:call-template name="format.sgmltag"/>
1025</xsl:template>
1026
1027<xsl:template name="format.sgmltag">
1028  <xsl:param name="class">
1029    <xsl:choose>
1030      <xsl:when test="@class">
1031        <xsl:value-of select="@class"/>
1032      </xsl:when>
1033      <xsl:otherwise>element</xsl:otherwise>
1034    </xsl:choose>
1035  </xsl:param>
1036
1037  <xsl:variable name="content">
1038    <xsl:choose>
1039      <xsl:when test="$class='attribute'">
1040        <xsl:apply-templates/>
1041      </xsl:when>
1042      <xsl:when test="$class='attvalue'">
1043        <xsl:apply-templates/>
1044      </xsl:when>
1045      <xsl:when test="$class='element'">
1046        <xsl:apply-templates/>
1047      </xsl:when>
1048      <xsl:when test="$class='endtag'">
1049        <xsl:text>&lt;/</xsl:text>
1050        <xsl:apply-templates/>
1051        <xsl:text>&gt;</xsl:text>
1052      </xsl:when>
1053      <xsl:when test="$class='genentity'">
1054        <xsl:text>&amp;</xsl:text>
1055        <xsl:apply-templates/>
1056        <xsl:text>;</xsl:text>
1057      </xsl:when>
1058      <xsl:when test="$class='numcharref'">
1059        <xsl:text>&amp;#</xsl:text>
1060        <xsl:apply-templates/>
1061        <xsl:text>;</xsl:text>
1062      </xsl:when>
1063      <xsl:when test="$class='paramentity'">
1064        <xsl:text>%</xsl:text>
1065        <xsl:apply-templates/>
1066        <xsl:text>;</xsl:text>
1067      </xsl:when>
1068      <xsl:when test="$class='pi'">
1069        <xsl:text>&lt;?</xsl:text>
1070        <xsl:apply-templates/>
1071        <xsl:text>&gt;</xsl:text>
1072      </xsl:when>
1073      <xsl:when test="$class='xmlpi'">
1074        <xsl:text>&lt;?</xsl:text>
1075        <xsl:apply-templates/>
1076        <xsl:text>?&gt;</xsl:text>
1077      </xsl:when>
1078      <xsl:when test="$class='starttag'">
1079        <xsl:text>&lt;</xsl:text>
1080        <xsl:apply-templates/>
1081        <xsl:text>&gt;</xsl:text>
1082      </xsl:when>
1083      <xsl:when test="$class='emptytag'">
1084        <xsl:text>&lt;</xsl:text>
1085        <xsl:apply-templates/>
1086        <xsl:text>/&gt;</xsl:text>
1087      </xsl:when>
1088      <xsl:when test="$class='sgmlcomment' or $class='comment'">
1089        <xsl:text>&lt;!--</xsl:text>
1090        <xsl:apply-templates/>
1091        <xsl:text>--&gt;</xsl:text>
1092      </xsl:when>
1093      <xsl:otherwise>
1094        <xsl:apply-templates/>
1095      </xsl:otherwise>
1096    </xsl:choose>
1097  </xsl:variable>
1098
1099  <code>
1100    <xsl:apply-templates select="." mode="class.attribute">
1101      <xsl:with-param name="class" select="concat('sgmltag-', $class)"/>
1102    </xsl:apply-templates>
1103    <xsl:call-template name="generate.html.title"/>
1104    <xsl:call-template name="simple.xlink">
1105      <xsl:with-param name="content" select="$content"/>
1106    </xsl:call-template>
1107  </code>
1108</xsl:template>
1109
1110<xsl:template match="email">
1111  <xsl:call-template name="inline.monoseq">
1112    <xsl:with-param name="content">
1113      <xsl:if test="not($email.delimiters.enabled = 0)">
1114        <xsl:text>&lt;</xsl:text>
1115      </xsl:if>
1116      <a>
1117        <xsl:apply-templates select="." mode="class.attribute"/>
1118        <xsl:attribute name="href">
1119          <xsl:text>mailto:</xsl:text>
1120          <xsl:value-of select="."/>
1121        </xsl:attribute>
1122        <xsl:apply-templates/>
1123      </a>
1124      <xsl:if test="not($email.delimiters.enabled = 0)">
1125        <xsl:text>&gt;</xsl:text>
1126      </xsl:if>
1127    </xsl:with-param>
1128  </xsl:call-template>
1129</xsl:template>
1130
1131<xsl:template match="keycombo">
1132  <xsl:variable name="action" select="@action"/>
1133  <xsl:variable name="joinchar">
1134    <xsl:choose>
1135      <xsl:when test="$action='seq'"><xsl:text> </xsl:text></xsl:when>
1136      <xsl:when test="$action='simul'">+</xsl:when>
1137      <xsl:when test="$action='press'">-</xsl:when>
1138      <xsl:when test="$action='click'">-</xsl:when>
1139      <xsl:when test="$action='double-click'">-</xsl:when>
1140      <xsl:when test="$action='other'"/>
1141      <xsl:otherwise>+</xsl:otherwise>
1142    </xsl:choose>
1143  </xsl:variable>
1144  <xsl:for-each select="*">
1145    <xsl:if test="position()&gt;1"><xsl:value-of select="$joinchar"/></xsl:if>
1146    <xsl:apply-templates select="."/>
1147  </xsl:for-each>
1148</xsl:template>
1149
1150<xsl:template match="uri">
1151  <xsl:call-template name="inline.monoseq"/>
1152</xsl:template>
1153
1154<!-- ==================================================================== -->
1155
1156<xsl:template match="menuchoice">
1157  <xsl:variable name="shortcut" select="./shortcut"/>
1158  <xsl:call-template name="process.menuchoice"/>
1159  <xsl:if test="$shortcut">
1160    <xsl:text> (</xsl:text>
1161    <xsl:apply-templates select="$shortcut"/>
1162    <xsl:text>)</xsl:text>
1163  </xsl:if>
1164</xsl:template>
1165
1166<xsl:template name="process.menuchoice">
1167  <xsl:param name="nodelist" select="guibutton|guiicon|guilabel|guimenu|guimenuitem|guisubmenu|interface"/><!-- not(shortcut) -->
1168  <xsl:param name="count" select="1"/>
1169
1170  <xsl:choose>
1171    <xsl:when test="$count&gt;count($nodelist)"/>
1172    <xsl:when test="$count=1">
1173      <xsl:apply-templates select="$nodelist[$count=position()]"/>
1174      <xsl:call-template name="process.menuchoice">
1175        <xsl:with-param name="nodelist" select="$nodelist"/>
1176        <xsl:with-param name="count" select="$count+1"/>
1177      </xsl:call-template>
1178    </xsl:when>
1179    <xsl:otherwise>
1180      <xsl:variable name="node" select="$nodelist[$count=position()]"/>
1181      <xsl:choose>
1182        <xsl:when test="local-name($node)='guimenuitem'                         or local-name($node)='guisubmenu'">
1183          <xsl:value-of select="$menuchoice.menu.separator"/>
1184        </xsl:when>
1185        <xsl:otherwise>
1186          <xsl:value-of select="$menuchoice.separator"/>
1187        </xsl:otherwise>
1188      </xsl:choose>
1189      <xsl:apply-templates select="$node"/>
1190      <xsl:call-template name="process.menuchoice">
1191        <xsl:with-param name="nodelist" select="$nodelist"/>
1192        <xsl:with-param name="count" select="$count+1"/>
1193      </xsl:call-template>
1194    </xsl:otherwise>
1195  </xsl:choose>
1196</xsl:template>
1197
1198<!-- ==================================================================== -->
1199
1200<xsl:template match="optional">
1201  <xsl:value-of select="$arg.choice.opt.open.str"/>
1202  <xsl:call-template name="inline.charseq"/>
1203  <xsl:value-of select="$arg.choice.opt.close.str"/>
1204</xsl:template>
1205
1206<xsl:template match="citation">
1207  <!-- todo: integrate with bibliography collection -->
1208  <xsl:variable name="targets" select="(//biblioentry | //bibliomixed)[abbrev = string(current())]"/>
1209  <xsl:variable name="target" select="$targets[1]"/>
1210
1211  <xsl:choose>
1212    <!-- try automatic linking based on match to abbrev -->
1213    <xsl:when test="$target and not(xref) and not(link)">
1214
1215      <xsl:text>[</xsl:text>
1216      <a>
1217        <xsl:apply-templates select="." mode="class.attribute"/>
1218        <xsl:attribute name="href">
1219          <xsl:call-template name="href.target">
1220            <xsl:with-param name="object" select="$target"/>
1221          </xsl:call-template>
1222        </xsl:attribute>
1223
1224        <xsl:choose>
1225          <xsl:when test="$bibliography.numbered != 0">
1226            <xsl:apply-templates select="$target" mode="citation"/>
1227          </xsl:when>
1228          <xsl:otherwise>
1229            <xsl:call-template name="inline.charseq"/>
1230          </xsl:otherwise>
1231        </xsl:choose>
1232
1233      </a>
1234      <xsl:text>]</xsl:text>
1235    </xsl:when>
1236    <xsl:otherwise>
1237      <xsl:text>[</xsl:text>
1238      <xsl:call-template name="inline.charseq"/>
1239      <xsl:text>]</xsl:text>
1240    </xsl:otherwise>
1241  </xsl:choose>
1242</xsl:template>
1243
1244<xsl:template match="biblioentry|bibliomixed" mode="citation">
1245  <xsl:number from="bibliography" count="biblioentry|bibliomixed" level="any" format="1"/>
1246</xsl:template>
1247
1248<!-- ==================================================================== -->
1249
1250<xsl:template match="comment[parent::answer|parent::appendix|parent::article|parent::bibliodiv|parent::bibliography|parent::blockquote|parent::caution|parent::chapter|parent::glossary|parent::glossdiv|parent::important|parent::index|parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|parent::partintro|parent::preface|parent::procedure|parent::qandadiv|parent::qandaset|parent::question|parent::refentry|parent::refnamediv|parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|parent::sect5|parent::section|parent::setindex|parent::sidebar|parent::simplesect|parent::taskprerequisites|parent::taskrelated|parent::tasksummary|parent::warning]|remark[parent::answer|parent::appendix|parent::article|parent::bibliodiv|parent::bibliography|parent::blockquote|parent::caution|parent::chapter|parent::glossary|parent::glossdiv|parent::important|parent::index|parent::indexdiv|parent::listitem|parent::note|parent::orderedlist|parent::partintro|parent::preface|parent::procedure|parent::qandadiv|parent::qandaset|parent::question|parent::refentry|parent::refnamediv|parent::refsect1|parent::refsect2|parent::refsect3|parent::refsection|parent::refsynopsisdiv|parent::sect1|parent::sect2|parent::sect3|parent::sect4|parent::sect5|parent::section|parent::setindex|parent::sidebar|parent::simplesect|parent::taskprerequisites|parent::taskrelated|parent::tasksummary|parent::warning]">
1251  <xsl:if test="$show.comments != 0">
1252    <p class="remark"><i><xsl:call-template name="inline.charseq"/></i></p>
1253  </xsl:if>
1254</xsl:template>
1255
1256<xsl:template match="comment|remark">
1257  <xsl:if test="$show.comments != 0">
1258    <em><xsl:call-template name="inline.charseq"/></em>
1259  </xsl:if>
1260</xsl:template>
1261
1262<!-- ==================================================================== -->
1263
1264<xsl:template match="productname">
1265  <xsl:call-template name="inline.charseq"/>
1266  <xsl:if test="@class">
1267    <xsl:call-template name="dingbat">
1268      <xsl:with-param name="dingbat" select="@class"/>
1269    </xsl:call-template>
1270  </xsl:if>
1271</xsl:template>
1272
1273<xsl:template match="productnumber">
1274  <xsl:call-template name="inline.charseq"/>
1275</xsl:template>
1276
1277<!-- ==================================================================== -->
1278
1279<xsl:template match="pob|street|city|state|postcode|country|otheraddr">
1280  <xsl:call-template name="inline.charseq"/>
1281</xsl:template>
1282
1283<xsl:template match="phone|fax">
1284  <xsl:call-template name="inline.charseq"/>
1285</xsl:template>
1286
1287<!-- in Addresses, for example -->
1288<xsl:template match="honorific|firstname|surname|lineage|othername">
1289  <xsl:call-template name="inline.charseq"/>
1290</xsl:template>
1291
1292<!-- ==================================================================== -->
1293
1294<xsl:template match="person">
1295  <xsl:param name="content">
1296    <xsl:call-template name="anchor"/>
1297    <xsl:call-template name="simple.xlink">
1298      <xsl:with-param name="content">
1299        <xsl:apply-templates select="personname"/>
1300      </xsl:with-param>
1301    </xsl:call-template>
1302    <xsl:call-template name="apply-annotations"/>
1303  </xsl:param>
1304
1305  <span>
1306    <xsl:apply-templates select="." mode="class.attribute"/>
1307    <xsl:copy-of select="$content"/>
1308  </span>
1309</xsl:template>
1310
1311<xsl:template match="personname">
1312  <xsl:param name="content">
1313    <xsl:call-template name="anchor"/>
1314    <xsl:call-template name="simple.xlink">
1315      <xsl:with-param name="content">
1316        <xsl:call-template name="person.name"/>
1317      </xsl:with-param>
1318    </xsl:call-template>
1319    <xsl:call-template name="apply-annotations"/>
1320  </xsl:param>
1321
1322  <span>
1323    <xsl:apply-templates select="." mode="class.attribute"/>
1324    <xsl:copy-of select="$content"/>
1325  </span>
1326</xsl:template>
1327
1328<!-- ==================================================================== -->
1329
1330<xsl:template match="org">
1331  <xsl:param name="content">
1332    <xsl:call-template name="anchor"/>
1333    <xsl:call-template name="simple.xlink">
1334      <xsl:with-param name="content">
1335        <xsl:apply-templates/>
1336      </xsl:with-param>
1337    </xsl:call-template>
1338    <xsl:call-template name="apply-annotations"/>
1339  </xsl:param>
1340
1341  <span>
1342    <xsl:apply-templates select="." mode="class.attribute"/>
1343    <xsl:copy-of select="$content"/>
1344  </span>
1345</xsl:template>
1346
1347<xsl:template match="orgname">
1348  <xsl:param name="content">
1349    <xsl:call-template name="anchor"/>
1350    <xsl:call-template name="simple.xlink">
1351      <xsl:with-param name="content">
1352        <xsl:apply-templates/>
1353      </xsl:with-param>
1354    </xsl:call-template>
1355    <xsl:call-template name="apply-annotations"/>
1356  </xsl:param>
1357
1358  <span>
1359    <xsl:apply-templates select="." mode="class.attribute"/>
1360    <xsl:copy-of select="$content"/>
1361  </span>
1362</xsl:template>
1363
1364<xsl:template match="orgdiv">
1365  <xsl:param name="content">
1366    <xsl:call-template name="anchor"/>
1367    <xsl:call-template name="simple.xlink">
1368      <xsl:with-param name="content">
1369        <xsl:apply-templates/>
1370      </xsl:with-param>
1371    </xsl:call-template>
1372    <xsl:call-template name="apply-annotations"/>
1373  </xsl:param>
1374
1375  <span>
1376    <xsl:apply-templates select="." mode="class.attribute"/>
1377    <xsl:copy-of select="$content"/>
1378  </span>
1379</xsl:template>
1380
1381<xsl:template match="affiliation">
1382  <xsl:param name="content">
1383    <xsl:call-template name="anchor"/>
1384    <xsl:call-template name="simple.xlink">
1385      <xsl:with-param name="content">
1386        <xsl:call-template name="person.name"/>
1387      </xsl:with-param>
1388    </xsl:call-template>
1389    <xsl:call-template name="apply-annotations"/>
1390  </xsl:param>
1391
1392  <span>
1393    <xsl:apply-templates select="." mode="class.attribute"/>
1394    <xsl:copy-of select="$content"/>
1395  </span>
1396</xsl:template>
1397
1398<!-- ==================================================================== -->
1399
1400<xsl:template match="beginpage">
1401  <!-- does nothing; this *is not* markup to force a page break. -->
1402</xsl:template>
1403
1404</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.