Syntaxe XML

Résolu
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - 10 déc. 2008 à 16:27
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 - 11 déc. 2008 à 17:27
Bonjour,

Je suis en train de développer une petite application sur Delphi. Je sais lire et écrire dans un fichier xml en utilisant le composant IXMLDocument.

Je me pose juste la question sur la syntaxe du XML à utiliser et laquelle serai la meilleur à utiliser. Le fichier Xml comprend la liste de tous les messages d'erreurs et d'informations sur le traitement du logiciel.

Schéma xml 1:

<CodesMessages>
        <!-- Erreurs -->
        <Erreurs>
            <Err>
                <Numero>0001</Numero>
                <Libelle>Erreur de lecture du fichier</Libelle>
                <Conseil>...</Conseil>               
            </Err>
            <Err>
                <Numero>0002</Numero>
                <Libelle>Erreur d'ecriture sur fichier</Libelle>
            </Err>
        </Erreurs>   
        <!-- Informations -->
       
           
              <Numero>0000</Numero>
                <Libelle>...</Libelle>
           
           
              <Numero>00001</Numero>
                <Libelle>....</Libelle>
           
            ...
           
</CodesMessages>

Schéma xml 2 :

<CodesMessages>
    <!-- Erreurs -->
    <Erreurs>            <Err Num '0000' Lib 'Erreur de lecture du fichier' />        <Err Num '0001' Lib 'Erreur d'ecriture sur fichier'  />        <Err Num '0002' Lib '...' />        <Err Num '0003' Lib '...' />   
    </Erreurs>
    <!-- Informations -->
                   
       
       
       
               
              
</CodesMessages>

Merci de me conseiller !

2 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
11 déc. 2008 à 16:38
Salut,

Je vais faire mon vieux ronchon !

Le XML, c'est très bien, mais...
1) C'est lent : faut le parser.
2) Ca prend de la place : il y a pas mal d'infos qui servent à rien.

Bon, sinon, c'est vrai qu'il a quelques avantages :
1) Il est éditable par l'homme.
2) On peut vérifier un .xml avec un .xsd.
3) Il y a des parseurs tout faits dans de nombreux langages.

Mais dans ton cas, aucun des avantages n'est vraiment effectif.
1) C'est des chaînes. Si tu sérialise pas, ce sera aussi éditable.
2) Tu vas quand même pas rédiger le xsd associé (Les générateur xml -> xsd servent à rien) ?
3) Il n'y a que ton application qui va se servir de ces fichiers.

Par contre, tu subi les inconvénients.
1) Hop la consommation de CPU au démarrage de l'appli et pour traiter ces données.
2) Le fichier est assez lourd à rédiger et prend plus de place que nécessaire.

Bon c'est un bon exo de faire ça en XML (Les entreprises son fans).

Mais perso, je ferais deux fichiers :
1 avec les messages d'erreurs :
Erreur de lecture du fichier
Erreur d'ecriture sur fichier
...
...
      
1 avec le reste :
Compression Ok

Chriffrement Ok

Lecture du fichier Ok

Lecture du fichier

Et hop, 2 coups de TStrings.LoadFromFile et le tour est joué. Le numéro de l'erreur correspondant au numéro de ligne. Simple efficace, traduction facile...

Et une énumération dans le code :

type ERRORS = (ERR_READ_FILE, ERR_WRITE_FILE, ...);
3
grandyaka54 Messages postés 97 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 18 décembre 2013 5
11 déc. 2008 à 17:27
Bonjour rt15,

Merci de pour ta réponse.

Le seul bémol est qu'il faut utiliser le XML, car comme tu le dis, c'est la mode et facilement éditable. Dans mon cas, je me demandais lequel des 2 schémas étais le mieux. Pour moi, j'opterai pour le 2ème schéma.

Le fichier me servira qu'en lecture afin d'avoir le libellé correspondant au code donné.
0
Rejoignez-nous