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

Flash Discussion :

XLM or not XML


Sujet :

Flash

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 102
    Points : 97
    Points
    97
    Par défaut XLM or not XML
    Bonjour à tous

    Voilà je ne viens pas soumettre un problème (pour une fois...) mais plutôt demander votre avis en ce qui concerne l'intérêt d'utiliser ou non XML.

    Actuellement pour tout besoin d'infomation venant d'un serveur, j'utilise un objet LoadVars qui execute un script PHP qui à son tour execute une requête MySQL et je récupère le résultat dans Flash via mon LoadVars.

    Cela fonctionne très très bien à mon avis, mais j'entends (ou je lis) de plus souvent des commentaires sur ce sujet disant qu'il n'est pas conseillé de pratique comme ça, mais plutôt d'utiliser XML pour formatter les données.

    J'avoue que je ne comprends pas du tout pourquoi. Je trouve qu'contraire que c'est deux fois plus de boulot pour en fin de compte obtenir le même résultat ....

    Me trompe je ? Vos avis éclairés please

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    disons qu avec XML tu fais ce que tu veux...
    personnelement j ai été confronté au soucis de l utilisation du LoadVars lorsque j ai du passer un tableau d objets à mon flash...pas facile sauf si on fait un split des virgules....et domage si une de tes chaines de caractères avait une virgule elle meme...
    en fait le XML permet d avoir un document COMPREHENSIBLE et c est là son très grand intérêt...
    maintenant ça se paie au niveau traffique réseau vu que c est plus lourd qu une simple chaîne de caractère avev ttes les variables concaténées... voila tout

  3. #3
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    salut,

    la bonne méthode pour développer quand on est tout seul c'est celle qu'on connaît et qui marche bien.

    XML c'est incontournable quand un ensemble de données est structuré et qu'on travaille à plusieurs pour exploiter différemment cet ensemble de données.
    Par exemple tu sais que dans le fichier il y a une liste de noms
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
       <NOMS>
          <NOM>toto</NOM>
          <NOM>tata</NOM>
       </NOMS>
    ...
    Dans ce cas tu as l'outillage nécessaire (et suffisant) pour dire à ton programme flash, trouve moi le noeud "noms" et donne moi tous les "nom" de ce noeuds.
    Comme en plus il y a des outils pour vérifier la conformité du fichier par rapport à une DTD ça donne un truc plutôt "solide". Ce fichier pourra être modifier par un tas de personnes différentes sans problème.

    voilà un peu résumé...
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 102
    Points : 97
    Points
    97
    Par défaut
    [quote=dom_dev;2608948]
    XML c'est incontournable quand un ensemble de données est structuré et qu'on travaille à plusieurs pour exploiter différemment cet ensemble de données.
    [/code]

    D'accord avec toi, mais une base donnée (MySql ou autre) est aussi en ensemble structuré non ? Quand on travaille à plusieurs sur un projet, chacun connait (en principe) la structure des tables.

    Ce que je voulais plutôt souligner, c'est l'effort supplémentaire nécessaire pour générer du XML. Quel est en fait l'avantage quand il faut du côté flash analyser le contenu d'un XML de même qu'il faut analyser un retour d'information au format text

    Bon en même temps étant donné le nombre d'avis différent que j'ai pu récupérer sur le sujet jusqu'à présent, je pense qu'il faut que je réflechisse plus, car j'ai l'impresson de râter un truc important mais lequel

  5. #5
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    ce que tu viens de dire ne serait valable qu a partir du moment ou le client flash peut se connecter à une base sql sans passer par du php...or ce n est pas possible donc il te faut un support structuré intermédiaire et le XML est parfait pour ça

  6. #6
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    Je rajouterais comme dom qu il y a de nombreux outils qui permettent d exploiter le XML dans tous les sens ceci allant de la validation du XML (schema XSD, DTD...) au parsing du document XML (DOM, XPATH) implémenté dans flash

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 102
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par luta Voir le message
    ce que tu viens de dire ne serait valable qu a partir du moment ou le client flash peut se connecter à une base sql sans passer par du php...or ce n est pas possible donc il te faut un support structuré intermédiaire et le XML est parfait pour ça
    Ben désolé (j'suis un boulet hein ) mais je ne vois toujours pa le problème. Quel inconvenient y a t'il a executer un script PHP via un LoadVars ? Je trouve au contraitre que c'est simplisime et hyper pratique. De tout façon quand on veux récupérer des données en provenance d'un SGBD, il faut bien qu'un script s'en charge, que soit php ou autre et qu'ensuite ce scripte fournisse les données en question au format XML. C'est pa magique XML qaund même ? si ? Alors ???

    J'ai encore dis des conneries là ? (H)

  8. #8
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    je n ai pas dit que tu étais un boulet
    si se sont simplement une somme de variables simples qu il te faut effectivmeent pas la peine de se prendre la tête à faire un document XML compliqué mais és que de la complexité vient à s imisser la dedans, je parle aussi bien en quantité qu 'en "classement" de données...il est bien plus pratique d utiliser du xml..
    exemple concret...je souhaite charger une liste d utilisateurs, en xml ca donnerait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <root>
      <user>
        <nom>yop</nom>
        <prenom>yip</nom>
      </user>
      <user>
        <nom>yop1</nom>
        <prenom>yip1</nom>
      </user>
    </root>
    une fois chargé dans flash tu peux parcourir aisément l arbre XML et construire des objets...essaie de me donner l implémentation nécessaire en utilisant loadVars.... et bien bon courage!!
    En espérant que ce message ai été plus explicite (et j ai toujours pas dit que t'étais un boulet)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 102
    Points : 97
    Points
    97
    Par défaut
    Luta, voilà comment je fais avec un LodVars pour charger une liste (dans cet exemple, une liste cavaliers ayant participé à un concours Hippique à une date donnée)

    Code AS :

    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
     
     
    .....
    ......
    function loadDetails(concours:String):Void {
        // Chargement des enregistrements correspondant à la date du concours choisi
        var providerArray:Array = new Array();    
        var concoursData:LoadVars = new LoadVars();
        concoursData.onLoad = function(ok1:Boolean):Void {
            if(ok1)
                {
                if(this.error != undefined)
                    {
                    status_line.text = this.error;                
                    }
                else
                   {            
                      // Récupération des valeurs dans des tableaux
                    var i:Number;            
                    var argComp:String = this["epreuve" + 0];
     
                    for(i = 0; i < this.total; i++)
                       {                    
                        array_cavalier[i] = this["cavalier" + i];
                        array_cheval[i] = this["cheval" + i];
                        array_epreuve[i] = this["epreuve" + i];
                        array_fautes[i] = this["fautes" + i];                
                        array_classement[i] = this["classement" + i];                                                              
                        if(array_epreuve[i] != argComp)
                           {
                            argComp = array_epreuve[i];
                              providerArray.push({Cavalier:"-----", Cheval:"-----", Epreuve:"-----", Fautes:"-----", Classement:"-----"});                                        
                           }
                        //providerArray.push({Cavalier:array_cavalier[i], Cheval:array_cheval[i], Epreuve:array_epreuve[i], Fautes:array_fautes[i], Classement:array_classement[i]});                
                        providerArray.addItem({Cavalier:array_cavalier[i], Cheval:array_cheval[i], Epreuve:array_epreuve[i], Fautes:array_fautes[i], Classement:array_classement[i]});                
                        }
     
                    showData(providerArray);                        
                    }
        }
             else 
                    {
                status_line.text = "Erreur de transmission des données !!!";
                }
        }
        concoursData.concours = concours;
        concoursData.sendAndLoad("http://....../show_cso_resultats.php",concoursData,"GET");
    }

    Code PHP :

    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
     
    $DB = new DB;
     
    $concours = $_GET['concours'];
    list($lieu, $datef) = explode(' le ',$concours);
    list($jour, $mois, $annee) = explode('/', $datef);
    $datec = $annee . '-' . $mois . '-' . $jour;
     
    $requete = "SELECT * FROM cso WHERE lieu='" . utf8_encode($lieu) . "' AND datec='" . $datec . "' ORDER by epreuve,classement";
     
    $id = $DB->query($requete);
     
    $row = 0;
    while (mysql_fetch_row($id))
       {
       $cavalier = mysql_result($id, $row, 0);
       $cheval = mysql_result($id, $row, 1);
       $epreuve = mysql_result($id, $row, 4);
       $fautes = mysql_result($id, $row, 5);
       $classement = mysql_result($id, $row, 6);
     
       $resultat .= '&cavalier' . $row . '=' .utf8_encode($cavalier);
       $resultat .= '&cheval' . $row . '=' . utf8_encode($cheval);
       $resultat .= '&epreuve' . $row . '=' . $epreuve;
       $resultat .= '&fautes' . $row . '=' . $fautes;
       $resultat .= '&classement' . $row . '=' . $classement;
       $row++;
       }
     
    $resultat .= '&total=' . $row . '&';
    echo $resultat;
     
    $DB->close();
    Voilà, je ne prétends pas que ce soit LA solution, mais bon je trouve que ceal à le mérite d'être asse simple et efficace.

  10. #10
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    ok, personnelement j utilise les 2 méthodes mais pour cet exemple j utiliserait le XML, pourquoi?
    imaginons maintenant que pour ta liste de cavaliers tu souhaites charger la liste des compets remportés par celui ci...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <root>
      <user>
        <nom>yop</nom>
        <prenom>yip</nom>
        <compets>
          <compet>macompet</compet>
          <compet>macompet2</compet>
        <compets>
      </user>
      <user>
        <nom>yop1</nom>
        <prenom>yip1</nom>
      </user>
    </root>
    tu pourras certainement te débrouiller pour traffiquer le code as2 afin d y récupérer le sous tableau mais en XML se sera l affaire d a peut près 10 secondes de modification et surtout c est beaucoup plus "verbeux" donc plus compréhensible mais plus lourd.
    Maintenant utiliser loadVars n est pas une mauvaise chose, je le fais moi même mais ca dépend pourquoi...
    voila mon point de vue

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 102
    Points : 97
    Points
    97
    Par défaut
    Ok Je vois ce que tu veux dire. Dans certains cas l'utilisation d'XML peut effectivement apporter un plus (toutes les infos en une seule fois au même endroit.)

    Par contre, autre chose que je n'avais pas mentionnée : bonjour la lourdeur en ce qui concerne l'analyse des donneés dans AS(fisrChild, Chlinodes, etc ...., pfffff )

    E tout cas, merci pour tes commentaires (et ta patience
    JP (H)

Discussions similaires

  1. Aja Xml or not
    Par topolino dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/02/2006, 10h27
  2. [C#][Axis] Response is not Well-formed xml
    Par thecaptain dans le forum Valider
    Réponses: 2
    Dernier message: 10/02/2006, 09h30
  3. [Quartz][Tomcat] Jobs.xml file not found exception
    Par Arnaud Giuliani dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 05/08/2005, 09h20
  4. XML Parsing Error: not well-formed
    Par localhost dans le forum Valider
    Réponses: 5
    Dernier message: 16/06/2005, 14h20
  5. xhtml ->xml xsl:attribute name+not valid
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 14/06/2005, 07h27

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