Frage

Ich erstelle eine Anwendung, die eine hierarchische Sammlung von Elementen in einer XML-Datei speichert, und frage mich, welcher Industriestandard für die Speicherung von Sammlungen in XML gilt.Welches der beiden folgenden Formate wird bevorzugt?(Wenn es eine andere Option gibt, die ich nicht sehe, teilen Sie mir dies bitte mit.)

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>
War es hilfreich?

Lösung

Ich bin kein XML-Experte, aber ich finde, dass Option B für Menschen besser lesbar ist, und ich denke, dass sie genauso maschinenlesbar ist wie Option A.Ich glaube, dass XML sowohl für Menschen als auch für Maschinen lesbar ist, daher würde ich mich selbst für Option B entscheiden.


Nach Ryan Farleys Beitrag ist mir gerade noch etwas anderes aufgefallen.Wenn der Abschnitt „Schüler“ oder „Klassen“ zu groß wird und in eine andere XML-Datei verschoben werden muss, scheint es einfacher zu sein, den Knoten zu kopieren und mit Option B eine neue XML-Datei aus diesem Knoten zu erstellen.

Andere Tipps

Auf jeden Fall – Option B.

Ich würde Schüler und Klassen im XML nicht auf die gleiche Weise vermischen, wie ich Schüler und Klassen nicht in derselben Tabelle in einer Datenbank vermischen würde.

Ein weiterer zwingender Grund für die Verwendung von Option B ist die Fehlerprüfung.Wenn die Originaldatei außerhalb einer XML-Anwendung geändert wird oder kein XSD-Schema angewendet wird, kann es vorkommen, dass Sie eine ungleiche Anzahl von Schülern und Klassen haben.

Zumindest wenn Sie die Schüler und Klassen in Gruppen zusammengefasst haben, können Sie unabhängig von allen anderen Datensätzen leicht erkennen, ob jeder Datensatz vollständig ist.

Option B, absolut.Wenn es eine logische Gruppierung ähnlicher Elemente gibt, sollte es ein übergeordnetes Element geben.Auf diese Weise muss mein Parser nicht alle 500 Schülerdatensätze durchgehen und prüfen, ob darin Klassendatensätze gemischt sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top