]> gitweb.fperrin.net Git - gen-quickdic.git/blob - XMLittre-entree.xslt
snapshot of current effort
[gen-quickdic.git] / XMLittre-entree.xslt
1 <?xml version="1.0" encoding="utf-8"?>
2 <xsl:stylesheet version="1.0"
3                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4   <xsl:output method="xml" version="1.0" encoding="UTF-8"
5               indent="yes" standalone="no" omit-xml-declaration="yes"/>
6
7   <xsl:template match="@*|node()">
8     <xsl:copy>
9       <xsl:apply-templates select="@*|node()" />
10     </xsl:copy>
11   </xsl:template>
12
13   <xsl:template match="entree">
14     <xsl:for-each select="entete/nature | entete/indent | entete/cit | entete/a | entete/semantique">
15       <xsl:apply-templates select="."/>
16     </xsl:for-each>
17
18     <xsl:if test="résumé">
19       <p><b>RÉSUMÉ</b></p>
20     </xsl:if>
21     <xsl:if test="résumé/indent">
22       <xsl:apply-templates select="résumé/indent"/>
23     </xsl:if>
24     <xsl:choose>
25       <xsl:when test="count(résumé/variante) &gt; 1">
26         <xsl:apply-templates select="résumé" mode="plusieurs_variantes"/>
27       </xsl:when>
28       <xsl:when test="count(résumé/variante) = 1">
29         <xsl:apply-templates select="résumé" mode="unique_variante"/>
30       </xsl:when>
31     </xsl:choose>
32     <xsl:if test="résumé">
33       <p><b>ENTRÉE PRINCIPALE</b></p>
34     </xsl:if>
35     
36     <xsl:choose>
37       <xsl:when test="count(corps/variante) &gt; 1">
38         <xsl:apply-templates select="corps" mode="plusieurs_variantes"/>
39       </xsl:when>
40       <xsl:otherwise>
41         <xsl:apply-templates select="corps" mode="unique_variante"/>
42       </xsl:otherwise>
43     </xsl:choose>
44
45     <xsl:for-each select="rubrique">
46       <p><b><xsl:value-of select="@nom"/></b></p>
47       <xsl:apply-templates select="node()"/>
48     </xsl:for-each>
49
50     <xsl:if test="entete/prononciation">
51       <p><b>PRONONCIATION</b></p>
52       <div>
53         <xsl:apply-templates select="entete/prononciation/node()" />
54       </div>
55     </xsl:if>
56   </xsl:template>
57
58   <xsl:template match="nature">
59     <i><xsl:value-of select="text()"/></i>
60   </xsl:template>
61   <xsl:template match="indent">
62     <div style="padding-left: 1em"><xsl:apply-templates select="node()"/></div>
63   </xsl:template>
64
65   <xsl:template match="corps|résumé" mode="plusieurs_variantes">
66     <ol>
67       <xsl:for-each select="variante">
68         <li><xsl:apply-templates select="node()"/></li>
69       </xsl:for-each>
70     </ol>
71   </xsl:template>
72
73   <xsl:template match="corps|résumé" mode="unique_variante">
74     <div><xsl:apply-templates select="node()"/></div>
75   </xsl:template>
76
77   <xsl:template match="cit">
78     <p><q><xsl:apply-templates select="node()" /></q>
79       <xsl:if test="string-length(@ref)>0">, <i><xsl:value-of select="@ref"/></i></xsl:if>
80       <xsl:if test="string-length(@aut)>0">, <xsl:value-of select="@aut"/></xsl:if>
81     </p>
82   </xsl:template>
83
84   <xsl:template match="rubrique">
85     <p><b><xsl:value-of select="@nom"/></b></p>
86     <xsl:apply-templates select="node()"/>
87   </xsl:template>
88
89   <xsl:template match="exemple">
90     <q><xsl:apply-templates select="node()"/></q>
91   </xsl:template>
92   <xsl:template match="semantique">
93     <xsl:apply-templates select="node()"/>
94   </xsl:template>
95   <xsl:template match="span">
96     <xsl:apply-templates select="node()"/>
97   </xsl:template>
98
99 </xsl:stylesheet>