2008-08-22 5 views
4

Je crée une application qui stockera une collection hiérarchique d'éléments dans un fichier XML et je m'interroge sur la norme de l'industrie pour le stockage des collections en XML. Lequel des deux formats suivants est préféré? (S'il y a une autre option que je ne vois pas, s'il vous plaît conseiller.)Meilleures pratiques pour la collection XML

Option A

<School> 
    <Student Name="Jack" /> 
    <Student Name="Jill" /> 
    <Class Name="English 101" /> 
    <Class Name="Math 101" /> 
</School> 

Option B

<School> 
    <Students> 
     <Student Name="Jack" /> 
     <Student Name="Jill" /> 
    </Students> 
    <Classes> 
     <Class Name="English 101" /> 
     <Class Name="Math 101" /> 
    </Classes> 
</School> 

Répondre

4

Je ne suis pas expert en XML, mais Je trouve l'option B plus lisible par l'homme, et je pense qu'elle est aussi lisible par une machine que l'option A. Je crois que XML est conçu pour être à la fois humain et lisible par machine, donc je choisirais l'option B moi-même.


Je viens de réaliser autre chose après la publication de Ryan Farley. Si la section Étudiants ou classes devient trop grande et doit être déplacée vers un autre fichier XML, il semble qu'il serait plus facile de copier le nœud et de créer un nouveau fichier XML à partir de ce nœud avec Option B.

4

Définitivement - Option B.

Je ne mélangerais pas des étudiants et des classes dans le XML de la même manière que je ne mélangerais pas des étudiants et des classes dans la même table dans une base de données.

2

Option B, absolument. Quand il y a un regroupement logique d'éléments similaires, il devrait avoir un élément parent. De cette façon, mon analyseur n'aura pas à parcourir les 500 enregistrements d'étudiants pour voir s'il y a des enregistrements de classe mélangés.

2

Une autre raison convaincante d'utiliser l'option B est la vérification d'erreur. Si le fichier d'origine est modifié en dehors d'une application XML ou si aucun schéma XSD n'est appliqué, il peut y avoir le cas où vous avez un nombre impair d'étudiants et de classes.

Au moins si vous avez regroupé les étudiants et les classes, vous pourrez facilement déterminer si chaque enregistrement est complet, indépendamment de tout autre enregistrement.

Questions connexes