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

Valider XML Discussion :

Comment transformer un fichier XML contraint par schema xsd?


Sujet :

Valider XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 36
    Points
    36
    Par défaut Comment transformer un fichier XML contraint par schema xsd?
    Bonjour,
    Je ne parviens pas à transformer et afficher des fichiers xml contraints par un schema xsd.
    Lors de la transformation xsl, l'entête du tableau définie dans le schema xsd s'affiche sans les données contenues dans le fichier xml. C'est sans doute un problème de passage de paramêtres dans le fichier xsl mais je ne vois pas comment faire.
    Merci de me répondre

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    il doit y avoir un petit problème, le schéma (XSD) défini pour un fichier XML n'interagit pas avec la transformation de ce dernier (ou alors avec XSLT 2.0 mais pas de la façon que tu nous décris)...

    Il faudrait avoir plus d'infos sur le contexte, notamment le processeur XSLT utilisé, un extrait du XML, du XSLT et du XSD (oui, je sais, ça fait beaucoup mais là je ne vois pas trop...)
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Bonjour,
    Il semblerait que je n'ai pas bien compris comment fonctionne les schémas xsd et les transformations xsl.
    Je ne sais pas quel processeur xslt est utilisé, j'utilise netbeans4.1 et pour faire la transformation en question, je lance "XSL transformation" et ça se passait bien avec un fichier xml simplement "well-formed".
    Le fichier xsd est un ensemble de types complexes imbriqués, j'ai vérifié tout le code, il m'a l'air correct.
    Le fichier xml respecte scrupuleusement le schéma xsd et voici un extrait du fichier xsl:
    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
     
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <!--
        Document   : car.xsl
        Created on : 21 juin 2005, 10:48
        Author     : Virginie
        Description:
            Purpose of transformation follows.
    -->
     
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        <xsl:output method="html"/>
     
        <!-- TODO customize transformation rules 
             syntax recommendation http://www.w3.org/TR/xslt 
        -->
        <xsl:template match="/">
            <html>
                <head>
                    <title>liste des disjoncteurs</title>
                </head>
                <body>
                 <h1>Liste des disjoncteurs</h1>
                    <table border="1">
                    <tr bgcolor="#9acd32">
                        <td>Nom</td>
                        <td>Agrement</td>
                        <td>Fermeture brusque</td>
                        <td>Sectionnement à coupure pleinement apparente selon EN 60947-2</td>
                       ...
     
                    </tr>
                    <xsl:for-each select="carac/car">
                    <tr>
                    <!-- Pour chaque CD, on va créer une nouvelle ligne et afficher 
                - les 4 champs en colonne
                -->
     
     
                        <td><xsl:value-of select="agrement" /></td>
                        <td><xsl:value-of select="fermeture" /></td>
                        <td><xsl:value-of select="sectionnement" /></td>
                        ...    
     
                      </tr>
                    </xsl:for-each>
            </table> <!-- fin du tableau -->
        </body>
        </html>
    </xsl:template>
    </xsl:stylesheet>
    Actuellement, je voudrais pouvoir afficher par un navigateur le contenu de mon fichier xml contraint par un schema xsd.
    Alors, peut-être que ce que je veux faire n'est pas possible par cette méthode. Donc, dans ce cas, quelqu'un aurait-il une meilleure idée?
    Merci d'avance pour vos réponses

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par boniface
    Actuellement, je voudrais pouvoir afficher par un navigateur le contenu de mon fichier xml contraint par un schema xsd.
    Un schema associé à un document XML sert à le valider, à vérifier que sa structure correspond bien à celle attendue. Le schema (XSD) ne transforme pas le fichier XML, il le décrit. La transformation se fait avec une feuille de style (XSLT), celle que tu as postée, et c'est là que doit se situer ton problème. Evidemment, la transformation ne se fera que si ton XML correspond bien à son schéma (c'est le parseur XML qui se charge de vérifier cela).

    Si le résultat de la transformation n'est pas ce que tu attends, c'est qu'il y a sans doute des erreurs dans tes expressions XPath et que les éléments de la source XML sont mal séléctionnés.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci bcp pour toutes ces informations GrandFather.
    J'ai plus qu'à me plonger dans la programmation xslt!...
    Bonne journée et encore merci

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

Discussions similaires

  1. [XSD] Comment transformer un fichier xml en fichier xsd (java)
    Par mehdiing dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 20/03/2008, 11h21
  2. comment transformer un Fichier xls (Excel) en XML
    Par sperron dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 13/04/2006, 16h35
  3. [XSL] comment transformer ce fichier xml en une table html ?
    Par jlassira dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 15/03/2006, 12h15
  4. [XSL] Comment transformer un fichier XML en un autre XML
    Par elzedo dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 16/01/2006, 10h51
  5. [SimpleXML] Comment faire pour transformer un fichier XML en PHP ?
    Par magic8392 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/09/2005, 16h22

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