]> gitweb.fperrin.net Git - gen-quickdic.git/blobdiff - XMLittre-entree.xslt
snapshot of current effort
[gen-quickdic.git] / XMLittre-entree.xslt
diff --git a/XMLittre-entree.xslt b/XMLittre-entree.xslt
new file mode 100644 (file)
index 0000000..97c1b1e
--- /dev/null
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0"
+               xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output method="xml" version="1.0" encoding="UTF-8"
+             indent="yes" standalone="no" omit-xml-declaration="yes"/>
+
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()" />
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="entree">
+    <xsl:for-each select="entete/nature | entete/indent | entete/cit | entete/a | entete/semantique">
+      <xsl:apply-templates select="."/>
+    </xsl:for-each>
+
+    <xsl:if test="résumé">
+      <p><b>RÉSUMÉ</b></p>
+    </xsl:if>
+    <xsl:if test="résumé/indent">
+      <xsl:apply-templates select="résumé/indent"/>
+    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="count(résumé/variante) &gt; 1">
+       <xsl:apply-templates select="résumé" mode="plusieurs_variantes"/>
+      </xsl:when>
+      <xsl:when test="count(résumé/variante) = 1">
+       <xsl:apply-templates select="résumé" mode="unique_variante"/>
+      </xsl:when>
+    </xsl:choose>
+    <xsl:if test="résumé">
+      <p><b>ENTRÉE PRINCIPALE</b></p>
+    </xsl:if>
+    
+    <xsl:choose>
+      <xsl:when test="count(corps/variante) &gt; 1">
+       <xsl:apply-templates select="corps" mode="plusieurs_variantes"/>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:apply-templates select="corps" mode="unique_variante"/>
+      </xsl:otherwise>
+    </xsl:choose>
+
+    <xsl:for-each select="rubrique">
+      <p><b><xsl:value-of select="@nom"/></b></p>
+      <xsl:apply-templates select="node()"/>
+    </xsl:for-each>
+
+    <xsl:if test="entete/prononciation">
+      <p><b>PRONONCIATION</b></p>
+      <div>
+       <xsl:apply-templates select="entete/prononciation/node()" />
+      </div>
+    </xsl:if>
+  </xsl:template>
+
+  <xsl:template match="nature">
+    <i><xsl:value-of select="text()"/></i>
+  </xsl:template>
+  <xsl:template match="indent">
+    <div style="padding-left: 1em"><xsl:apply-templates select="node()"/></div>
+  </xsl:template>
+
+  <xsl:template match="corps|résumé" mode="plusieurs_variantes">
+    <ol>
+      <xsl:for-each select="variante">
+       <li><xsl:apply-templates select="node()"/></li>
+      </xsl:for-each>
+    </ol>
+  </xsl:template>
+
+  <xsl:template match="corps|résumé" mode="unique_variante">
+    <div><xsl:apply-templates select="node()"/></div>
+  </xsl:template>
+
+  <xsl:template match="cit">
+    <p><q><xsl:apply-templates select="node()" /></q>
+      <xsl:if test="string-length(@ref)>0">, <i><xsl:value-of select="@ref"/></i></xsl:if>
+      <xsl:if test="string-length(@aut)>0">, <xsl:value-of select="@aut"/></xsl:if>
+    </p>
+  </xsl:template>
+
+  <xsl:template match="rubrique">
+    <p><b><xsl:value-of select="@nom"/></b></p>
+    <xsl:apply-templates select="node()"/>
+  </xsl:template>
+
+  <xsl:template match="exemple">
+    <q><xsl:apply-templates select="node()"/></q>
+  </xsl:template>
+  <xsl:template match="semantique">
+    <xsl:apply-templates select="node()"/>
+  </xsl:template>
+  <xsl:template match="span">
+    <xsl:apply-templates select="node()"/>
+  </xsl:template>
+
+</xsl:stylesheet>