- Be a bit more verbose.
[import/samba-docs-svnimport.git] / xslt / generate-attributions.xsl
1 <?xml version='1.0'?>
2 <!--
3         Generate Docbook/XML file with attributions based on chapter/author tags
4         (C) Jelmer Vernooij 2003
5 -->
6 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
7         xmlns:samba="http://www.samba.org/samba/DTD/samba-doc"
8                                 version="1.1">
9
10 <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
11
12 <!-- Remove all character data -->
13 <xsl:template match="@*|node()">
14    <xsl:apply-templates select="@*|node()"/>
15 </xsl:template>
16
17 <xsl:template match="/">
18         <xsl:element name="preface">
19                 <xsl:element name="title"><xsl:text>Attribution</xsl:text></xsl:element>
20                 <xsl:apply-templates/>
21         </xsl:element>
22 </xsl:template>
23
24 <xsl:template match="chapter|preface">
25         <xsl:choose>
26                 <xsl:when test="chapterinfo/author != ''">
27                         <xsl:element name="para">
28                                 <xsl:element name="link">
29                                         <xsl:attribute name="linkend"><xsl:value-of select="@id"/></xsl:attribute>
30                                         <xsl:value-of select="title"/>
31                                 </xsl:element>
32                                 <xsl:text>&#10;&#9;</xsl:text>
33                                 <xsl:element name="itemizedlist">
34                                         <xsl:apply-templates/>
35                                 <xsl:text>&#9;</xsl:text>
36                                 </xsl:element>
37                                 <xsl:text>&#10;</xsl:text>
38                         </xsl:element>
39                 </xsl:when>
40         </xsl:choose>
41 </xsl:template>
42
43 <xsl:template match="chapterinfo/author">
44         <xsl:choose>
45         <xsl:when test="firstname != ''">
46         <xsl:text>&#9;</xsl:text>
47         <xsl:element name="listitem">
48                 <xsl:element name="para">
49                         <xsl:value-of select="firstname"/>
50                         <xsl:if test="othername != ''">
51                                 <xsl:text> </xsl:text>
52                                 <xsl:value-of select="othername"/>
53                                 <xsl:text> </xsl:text>
54                         </xsl:if>
55                         <xsl:text> </xsl:text><xsl:value-of select="surname"/>
56                         <xsl:choose>
57                                 <xsl:when test="affiliation/address/email != ''">
58                                         <xsl:text> &lt;</xsl:text>
59                                         <xsl:element name="ulink">
60                                                 <xsl:attribute name="samba:noescape">
61                                                 <xsl:text>1</xsl:text>
62                                                 </xsl:attribute>
63                                                 <xsl:attribute name="url">
64                                                         <xsl:text>mailto:</xsl:text>
65                                                         <xsl:value-of select="affiliation/address/email"/>
66                                                 </xsl:attribute>
67                                                 <xsl:value-of select="affiliation/address/email"/>
68                                         </xsl:element>
69                                         <xsl:text>&gt;</xsl:text>
70                                 </xsl:when>
71                         </xsl:choose>
72                         <xsl:choose>
73                                 <xsl:when test="contrib != ''">
74                                         <xsl:text> (</xsl:text>
75                                                 <xsl:value-of select="contrib"/>
76                                         <xsl:text>) </xsl:text>
77                                         </xsl:when>
78                         </xsl:choose>
79                 </xsl:element>
80         </xsl:element>
81         <xsl:text>&#10;</xsl:text>
82         </xsl:when>
83         </xsl:choose>
84 </xsl:template>
85
86 </xsl:stylesheet>