Bonjour,

je suis en train de modifier un code xsl qui n'est pas le mien, pour les besoin d'une lib, et je desirerai avoir le moins de changement pour le probleme qui suit (en particulier, pas de changement de design).

Le programme cree a partir d'un fichier de description en xml des fichies en C. Il stocke dans le fichier xsl les types utilises dans le programme, de cette maniere :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
  <xsl:variable name="core-types-rtf">
    <type name="BOOL" />
    <type name="BYTE" />
    <type name="CARD8" />
    <type name="CARD16" />
    <type name="CARD32" />
    <type name="INT8" />
    <type name="INT16" />
    <type name="INT32" />
  </xsl:variable>
  <xsl:variable name="core-types" select="e:node-set($core-types-rtf)" />
Ensuite, les types sont utilises ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
  <xsl:template name="canonical-type-name">
    <xsl:param name="type" select="string(@type)" />
 
    <xsl:variable name="is-unqualified" select="not(contains($type, ':'))"/>
    <xsl:variable name="namespace" select="substring-before($type, ':')" />
    <xsl:variable name="unqualified-type">
      <xsl:choose>
        <xsl:when test="$is-unqualified">
          <xsl:value-of select="$type" />
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="substring-after($type, ':')" />
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
 
    <xsl:choose>
      <xsl:when test="$is-unqualified and $core-types/type[@name=$type]">
        <xsl:value-of select="$type" />
      </xsl:when>
etc...
le type est donc stocke a l'avant-derniere ligne
Ce que j'aimerais faire est non pas utiliser $type, mais d'autres noms (qui sont en fait les types definies par la norme C99). J'ai essaye de mettre un champ newname ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
    <type name="BOOL" newname="bool8_t" />
etc...
mais je n'ai pas reussi a l'utiliser correctement.

Quelqu'un aurait-il une idee, soit comment utiliser ce champ newname, soit une autre methode pour echanger les types ci-dessus par les autres types ?

merci

Vincent Torri