Syntaxe XML [Résolu]

grandyaka54 97 Messages postés vendredi 19 octobre 2007Date d'inscription 18 décembre 2013 Dernière intervention - 10 déc. 2008 à 16:27 - Dernière réponse : grandyaka54 97 Messages postés vendredi 19 octobre 2007Date d'inscription 18 décembre 2013 Dernière intervention
- 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 !
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 11 déc. 2008 à 16:38
3
Merci
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, ...);

Merci cs_rt15 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_rt15
grandyaka54 97 Messages postés vendredi 19 octobre 2007Date d'inscription 18 décembre 2013 Dernière intervention - 11 déc. 2008 à 17:27
0
Merci
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é.
Commenter la réponse de grandyaka54

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.