IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XALAN] Plantage aléatoire à la compilation du XSL [XSLT 2.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Par défaut [XALAN] Plantage aléatoire à la compilation du XSL
    Bonjour,

    Je suis confronté à un plantage aléatoire sur une application qui fait de la transfo XSL. J'arrive à faire une vingtaine de transfo et après Xalan plante systématiquement à la compilation de ma feuille de style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ERROR:  ': Error parsing XPath expression '$isep'.'
    FATAL ERROR:  'Could not compile stylesheet'
    javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
    	at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:740)
    	at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:518)
    	at diamis.adapt.transform.Tranzformer.<init>(Tranzformer.java:137)
    Ci dessous un bout de mon XSL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	<xsl:variable name="isep">_</xsl:variable>
    	<!-- Separateur de la zone pivot (pivot separator) -->
    	<xsl:variable name="psep">@</xsl:variable>
     
    	<!-- Elements de la zone pivot du contexte 1 -->
    	<xsl:variable name="C1_EXT_REF"><xsl:value-of select="$isep" />C1000<xsl:value-of select="$isep" /></xsl:variable>
    Mon application fait simplement ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer(new DOMSource(stylesheet));
    Je ne comprends pas ce qui fait planter le parser mais aussi pourquoi le problème se produit aléatoirement...
    Quelqu'un aurait-il une idée?

    PS: Mon application tourne sur IBM AIX sur une JVM IBM J9 2.4 (JRE1.6) avec Xalan 2.5.1.

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Je dirais plutôt mettre à jour d'abord à la version xalan-j 2.7.1 ou après? et de re-tester avec.

    Xalan s'evolue assez matériellement et on dit à voix toute base qu'il est plein de bugs incompréhensibles tout en ne pas aucunement essayer d'insinuer en diminuant les travaux durs son equipe de développeurs et les ambitions étendues de fonctionalité du libraire!

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Par défaut
    J'ai essayé avec la version 2.7.1 mais aucun changement...
    Je voudrais ajouter que je n'ai pas ce plantage avec une JVM Oracle 1.6 sous Linux et Windows

  4. #4
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    [1]
    J'ai essayé avec la version 2.7.1 mais aucun changement...
    D'accord, et j'espère c'est fait correctement aussi.

    [2]
    J'arrive à faire une vingtaine de transfo et après Xalan plante systématiquement à la compilation de ma feuille de style:
    Peut-on savoir plus précisément que faissant une vingtaine de transfo dans quel sens? Chaque fois une nouvelle transformerFactory et une nouvelle transformer? ou, une seule transformer et faisant une vingtaine de transformation sur différent document xml? ou faissant transformer chacune dans un thread différent d'un environnement multi-thread? ou chaque fois vous le donnez une ou plusieurs valeurs aux paramètres du même stylesheet? ou etc etc...

    Je vois mal comment/pourquoi faire compiler le même stylesheet une vingtaine de fois est nécessaire sinon dans un environnement multi-thread. Le même transformer peut s'en servir autant de fois qu'on veut, non? Voulez-vous faire part le code pour cette partie?

    [3] Avant qu'on puisse délibérer cet aspect de chose, peut-être tester une version tout à fait equivalente de voir comment le jeu va finir, le même ou non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:variable name="isep" select="'_'" />
    <xsl:variable name="psep" select="'@'" />
    <xsl:variable name="C1_EXT_REF" select="concat($isep, 'C1000', $isep)" />
    C'est bête; mais, faites un petit test pour s'assurer aucune absurdité ne viens de là?

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Par défaut
    En installant la dernière version de la JVM IBM, le problème ne se présente plus.
    Merci pour les idées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Access 2003] Plantage aléatoire
    Par Strontium dans le forum Access
    Réponses: 1
    Dernier message: 04/06/2007, 15h07
  2. Plantage aléatoire à l'ouv. de fichiers ext.
    Par Stutak dans le forum Access
    Réponses: 3
    Dernier message: 09/08/2006, 19h36
  3. compiler XML - XSL
    Par madvic dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 15/09/2005, 09h11
  4. Réponses: 15
    Dernier message: 07/07/2005, 11h05
  5. Réponses: 8
    Dernier message: 12/01/2005, 07h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo