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 :

[XSL] Erreur de compilation de feuille de style


Sujet :

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

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut [XSL] Erreur de compilation de feuille de style
    Bonjour,
    je cherche à transformer un document XML en HTML via un XSL, mais j'obtient une erreur sur la feuille de style nommée essai1.xsl. Je ne comprend pas le probleme. Pouvez-vous m'aider?
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output 
      method="html"
      encoding="ISO-8859-1"
      doctype-public="-//W3C//DTD HTML 4.01//EN"
      doctype-system="http://www.w3.org/TR/html4/strict.dtd"
      indent="yes" />
          <xsl:template match="/">
    		<xsl:apply-templates select="Témoin"/>	
          </xsl:template>
     
          <!-- Root template -->
          <xsl:template match="Témoin">
                <!-- on y met l'en tete html -->
                <html><body>
                <p>1er essai de feuille de style :</p>
                <ul>
                  <xsl:apply-templates select="caractéristiques" />
                </ul>
                </body></html>
          </xsl:template>
     
          <xsl:template match="caractéristiques">
                <li>
                <xsl:value-of select="@valeur" />
                <xsl:text> : </xsl:text>
                <xsl:value-of select="." />
                </li>
          </xsl:template>
     
          <xsl:template match="associations">
                <li>
                <xsl:value-of select="@valeur" />
                <xsl:text> : </xsl:text>
                <xsl:value-of select="." />
                </li>
          </xsl:template>
    </xsl:stylesheet>
    mon erreur est:
    ERREUR : 'no protocol: essai1.xsl'
    ERREUR BLOQUANTE : 'Impossible de compiler la feuille de style'

    L'erreur ne vient pas apparemment du xsl puisque j'arrive à l'utiliser via XMLSpy et qu'il m'affiche bien une page HTML.
    Le probleme est sans doute la-dedans:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    import java.io.File;
     
     
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
     
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Result;
    import javax.xml.transform.Source;
     
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
     
    import javax.xml.transform.stream.StreamResult;
     
    import javax.xml.transform.stream.StreamSource;
     
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
     
    public class ExportTemoin {
        // Création d'un nouveau DOM
        DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
        DocumentBuilder constructeur;
        Document document;
     
        public ExportTemoin() {
            try {
                constructeur = fabrique.newDocumentBuilder();
                document = constructeur.newDocument();
                // Création de l'arborescence du DOM
                Element racine = document.createElement(Temoin.TYPE);
                racine.appendChild(document.createComment("Commentaire sous la racine"));
     
                    Element caractéristiques = document.createElement("caractéristiques");
                    racine.appendChild(caractéristiques);
     
                        Element id = document.createElement(Temoin.TAG_ID);
                        id.appendChild(document.createTextNode("10"));
                        caractéristiques.appendChild(id);
     
                        Element nom = document.createElement(Temoin.TAG_NOM);
                        nom.appendChild(document.createTextNode("Truc Machin"));
                        caractéristiques.appendChild(nom);
     
                document.appendChild(racine);
            } catch (ParserConfigurationException e) {
                 System.err.println("Exception: " + e.getMessage());
                 e.printStackTrace();
            }
        }
     
         public static void transformerXml(Document document, String fichier) {
            try {
               // Création de la source DOM
               Source source = new DOMSource(document);
               // Création du fichier de sortie
               File file = new File(fichier);
               Result resultat = new StreamResult(fichier);
               // Configuration du transformer
               TransformerFactory fabrique2 = TransformerFactory.newInstance();
               Transformer transformer = fabrique2.newTransformer();
               transformer.setOutputProperty(OutputKeys.INDENT, "yes");
               transformer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
               // Transformation
               transformer.transform(source, resultat);
            }catch(Exception e){
                System.err.println("Exception: " + e.getMessage());
                e.printStackTrace();
            }
         }
     
        public static void creerHTML(String xml, String xsl, String html) throws Exception{
            // Création de la source DOM
            DocumentBuilderFactory fabriqueD = DocumentBuilderFactory.newInstance();
            DocumentBuilder constructeur = fabriqueD.newDocumentBuilder();
            File fileXml = new File(xml);
            Document document = constructeur.parse(fileXml);
            Source source = new DOMSource(document);
     
            // Création du fichier de sortie
            File fileHtml = new File(html);
            Result resultat = new StreamResult(fileHtml);
     
            // Configuration du transformer
            TransformerFactory fabriqueT = TransformerFactory.newInstance();
            StreamSource stylesource = new StreamSource(xsl);
            Transformer transformer = fabriqueT.newTransformer(stylesource);
            transformer.setOutputProperty(OutputKeys.METHOD, "html");
     
            // Transformation
            transformer.transform(source, resultat);
        }
     
        public static void main(String[] args) {
            ExportTemoin exportTemoin = new ExportTemoin();
            transformerXml(exportTemoin.document, "fffiiiccchhhiiieeerrr.xml");
            try {
                creerHTML("src/Pack_Exports/docXML.xml","essai1.xsl", "fichierHTML.html");
     
            } catch (Exception e) {
                System.err.println("Exception: " + e.getMessage());
                e.printStackTrace();
            }
        }
    }

  2. #2
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    Montres quand même ta feuille XSL...
    Snoop

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    ben je l'ai mise...
    sinon le XML c'est ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="windows-1252" ?>
    <Témoin>
        <!--Commentaire sous la racine-->
        <caractéristiques>
            <ID id="id">10</ID>
            <Nom id="nom">Truc Machin</Nom>
        </caractéristiques>
     
        <associations>
            <Fiche id="0">fiche 0</Fiche>
        </associations>
    </Témoin>

  4. #4
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    Essayes d'enlver les accents des balises XML : peut-être que Xalan ne le supporte pas...
    Snoop

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    j'ai enlever tous les accents ca change rien...
    code erreur complet:
    ERREUR : 'no protocol: scr/Pack_Base/essai1.xsl'
    ERREUR BLOQUANTE : 'Impossible de compiler la feuille de style'
    Exception: Impossible de compiler la feuille de style
    javax.xml.transform.TransformerConfigurationException: Impossible de compiler la feuille de style
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:824)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:619)
    at Pack_Exports.TransformHTML.creerHTML(TransformHTML.java:86)
    at Pack_Exports.TransformHTML.<init>(TransformHTML.java:33)
    at Pack_Exports.TransformHTML.main(TransformHTML.java:91)

    j'ai l'impression que c'est une histoire de bibliotheque, pourtant je devrais avoir tout ce qu'il faut par défaut dans le jdk non?

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    J'ai avancé, y'avait vraiment une erreur bête... ennervant!
    Ma feuille xsl n'avait pas été recopiée par JDev dans le répertoire classes... comme avec les images, on doit se taper des copier-coller avant la compilation...
    Mais la transformation ne marche toujours. En lancant le debugeur, j'obtiens un message ressemblant à ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    java.lang.NullPointerException
    	at gnu.xml.aelfred2.SAXDriver.getLineNumber(SAXDriver.java:1165)
    	at com.sun.org.apache.xalan.internal.xsltc.compiler.Parser.parseTopLevel(Parser.java:1077)
    	at com.sun.org.apache.xalan.internal.xsltc.compiler.Parser.parsePattern(Parser.java:1067)
    	at com.sun.org.apache.xalan.internal.xsltc.compiler.Template.parseContents(Template.java:
    etc...
    et 'unable to fnd source file for package gnu.xml.Aelfred2 filename JAXPFactory.java'

    Me manquerait-il quelque chose?

Discussions similaires

  1. Erreur : null - Impossible de compiler la feuille de style
    Par daydream123 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/06/2012, 07h29
  2. Pb de compilation de feuille de style
    Par mimy17 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 20/12/2007, 17h36
  3. erreur de compilation de feuille de style
    Par bitbis dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 03/07/2007, 14h08
  4. [NetBeans] Impossible de compiler la feuille de style
    Par YmYannick dans le forum NetBeans
    Réponses: 2
    Dernier message: 11/05/2006, 03h49
  5. [XSL]problème de liens via feuille de style, images....
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 29/06/2005, 10h57

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