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

Format d'échange (XML, JSON...) Java Discussion :

Problème Oracle XML Java Parser [XSLT]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut Problème Oracle XML Java Parser
    Bonjour

    J'ai deux versions d'un petit programme Java qui effectue une transformation XSL.
    La première utilise la classe java.xml.Transformer et tout se passe bien.

    La deuxième utilise le Parser Oracle XML Java (fichier xmlparserv2.jar).
    Voici le 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
    22
     
       ...
     
                    String sInputXSL = "d:/xsl.xsl";
    		String sInputXML = "d:/xml.xml";
     
    		XMLDocument xslDoc = getDocumentFromFile(sInputXSL);
     
    		XSLProcessor xslProcessor = new XSLProcessor();
     
    		File fXsl = new File(sInputXSL);
    		URL urlXsl = fXsl.toURI().toURL();
     
    		xslProcessor.setBaseURL(urlXsl);
    		xslProcessor.showWarnings(true);
    		xslProcessor.setErrorStream(System.err);
     
    		XSLStylesheet xslt = xslProcessor.newXSLStylesheet(xslDoc); (*)
     
    		System.out.println("ok");
     
       ...
    Lorsque la ligne (*) est exécutée, l'erreur suivante se produit:

    XML-22050: (Error) Duplicate variable 'altova:table' definition.
    XML-22050: (Error) Duplicate variable 'altova:table' definition.
    XML-22050: (Error) Duplicate variable 'altova:table' definition.
    XML-22050: (Error) Duplicate variable 'altova:table' definition.
    oracle.xml.xslt.XSLException: XML-22050: (Error) Duplicate variable 'altova:table' definition.
    at oracle.xml.xslt.XSLStylesheet.flushErrors(XSLStylesheet.java:1848)
    at oracle.xml.xslt.XSLStylesheet.endContent(XSLStylesheet.java:397)
    ...

    À quoi cela se doit-il?

    Comment résoudre ce problème?

    merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Hello,
    Le parseur d'Oracle est peut être plus pointilleux et n'accepte pas de définir 2 variables avec le même nom (altova:table) consécutivement.
    Du moins, c'est ce que dit le message d'erreur.

    Tu pourrais donc renommer tes variable.

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut
    Oui, en effet, j'ai fais un test en changeant le nom des variables et c'est passé.

    Comment vérifier quel version d'XSLT le parser XML d'Oracle supporte?

    Et comment puis-je savoir si XSLT1.0/XSLT2.0 supporte des variables de même nom? (j'ai été voir sur leurs sites et j'ai pas trouvé d'infos à ce niveau (http://www.w3.org/TR/xslt et http://www.w3.org/TR/xslt20/)

    merci

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Citation Envoyé par pjmorce Voir le message
    Et comment puis-je savoir si XSLT1.0/XSLT2.0 supporte des variables de même nom? (j'ai été voir sur leurs sites et j'ai pas trouvé d'infos à ce niveau (http://www.w3.org/TR/xslt et http://www.w3.org/TR/xslt20/)
    En XSLT 1.0, des variables de même nom sont une erreur. Exception : une variable locale a le droit d'avoir le même nom qu'une variable globale. La variable locale cache alors l'existence de la globale.
    => Voir "11.4 Top-level Variables and Parameters" et "11.5 Variables and Parameters within Templates"


    En XSLT 2.0, des variables globales de même nom sont une erreur. => Voir "9.5 Global Variables and Parameters"
    Mais les variables locales peuvent porter le même nom qu'une autre variable, auquel cas la variable B qui porte le même nom qu'une variable antérieure A, va cacher l'existance de A, et ce sur toute la portée de B. => Voir "9.7 Scope of Variables"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2007
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 401
    Points : 153
    Points
    153
    Par défaut
    merci beaucoup pour ton aide.

    ça a répondu à ma question.

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

Discussions similaires

  1. Problème Encodage XML Java
    Par kichnifou dans le forum Format d'échange (XML, JSON...)
    Réponses: 15
    Dernier message: 23/10/2013, 14h20
  2. Problème de date java - oracle
    Par Dobyan08 dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2007, 11h55
  3. Réponses: 1
    Dernier message: 09/05/2006, 12h00
  4. [XML] Comment parser ce fichier XML avec java !
    Par jlassira dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 13/03/2006, 12h56
  5. [XML][Java] parser plusieurs fichiers en un seul arbre DOM ?
    Par mrlenul dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 29/11/2005, 11h09

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