Bonjour tout le monde.

Actuellement je reprends un travail qui utilise des feuilles Xsl pour modifier la structure de certain fichier xml.
je passe par un code Java, avec des transformeurs qui appellent ces feuilles Xsl .
Mon but est de rajouter certains paramètres, initialisé via le java, pour faire des traitements xsl différent suivant le cas.

J'ai donc rajouté des params dans mes feuilles XSL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
<xsl:param name="MemeZone256A"/>
<xsl:param name="MemeZone256B"/>
J'ai modifié le code suivant
Code initial
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<xsl:call-template name="zoneSpecifique">
   <xsl:with-param name="zone">256</xsl:with-param>
   <xsl:with-param name="sz">abc</xsl:with-param>
</xsl:call-template>
Nouveau code
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
<xsl:call-template name="zoneSpecifique">
  <xsl:with-param name="zone">256</xsl:with-param>
  <xsl:choose>
    <xsl:when test="$MemeZone256A='true'">
       <xsl:when test="$MemeZone256B='true'" >
            <xsl:with-param name="sz">c</xsl:with-param>
       </xsl:when>
       <xsl:otherwise>
           <xsl:with-param name="sz">bc</xsl:with-param>
       </xsl:otherwise>
   </xsl:when>
   <xsl:when test="$MemeZone256A='false'">
       <xsl:when test="$MemeZone256B='false'" >
           <xsl:with-param name="sz">abc</xsl:with-param>
       </xsl:when>
       <xsl:otherwise>
            <xsl:with-param name="sz">ac</xsl:with-param>
       </xsl:otherwise>
     </xsl:when>
  </xsl:choose>		
</xsl:call-template>
Et du côté Java
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
InputStream fXSLFile_o=getClass().getResourceAsStream("/xsl/IXM_isbd_o.xsl");
StreamSource stylesheet_o = new StreamSource(fXSLFile_o);
TransformerFactory tFactorOutil = TransformerFactory.newInstance();
tFactory.setURIResolver(this);
Transformer transformer_o = tFactorOutil.newTransformer(stylesheet_o);
IxmIsbd.info("[tratiementpcl.java] : tfactory ixm_isbd_o.xsl OK");
 
// Intialisation à false
IxmIsbd.info("Début initia new var");
try {
    transformer1.setParameter("MemeZone256A","false");
}
catch(Exception e)
{
IxmIsbd.error("transformer1.setParameter("+telTypeNotices);
IxmIsbd.error("transformer1.setParameter("+e.getCause());
IxmIsbd.error("transformer1.setParameter("+e.getMessage());
IxmIsbd.error("transformer1.setParameter("+e.getLocalizedMessage());
IxmIsbd.error("transformer1.setParameter("+e.getStackTrace());
}
avec le log associé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Début initia new var
2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter(cpl
2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter(null
2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter(null
2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter(null
2010-10-26 17:22:35,922 [main] ERROR Transformation - transformer1.setParameter([Ljava.lang.StackTraceElement;@72167216
Ce qui m'embête c'est que du côté java je n'ai pas d'erreurs avant de faire un setParameter()
Cela veut dire que ma feuille Xsl est bien chargée.... ?

Du coup est-ce mon nouveau code Xsl qui ne va pas ? Je ne suis pas habitué à débuggeur ce langages, je suis preneur de toute astuce

merci de votre lecture.

Pegaz