Prinzipien des XML-Designs: Die Verwendung von Elementen im Vergleich zu Attributen von Uche Ogbuji von IBM ist wahrscheinlich eine der besten Ressourcen in diesem Bereich.
Der Kern der Entscheidung ist, dass Attribute erledigte Dinge sind. Sie können sie nicht ändern oder modifizieren oder verschachteln. Sie sind in der Reihenfolge unabhängig und unterscheiden sich innerhalb des Elements (Sie können nicht zwei gleiche Dinge haben).
Wenn sich eine dieser Einschränkungen möglicherweise ändert, machen Sie die Daten zu einem untergeordneten Knoten der XML.
In Ihrem Beispiel haben Sie eine Person, die einen Namen und ein Alter hat. Ich habe einen Vor-, einen Mittel- und einen Nachnamen ... und einen Spitznamen. Und manche Menschen haben Mädchennamen, mehrere Zweitnamen oder Ehrennamen - wie würden Sie John Ronald Reuel Tolkien in eine solche Struktur einfügen ?
Und so haben wir jemanden, der zwei zweite Vornamen hat, die eine Anweisung haben. Dies sollte deutlich machen, dass nein, ein Attribut hierfür nicht die beste Wahl ist.
Ich kann es derzeit nicht finden, aber in dem oben verlinkten Dokument gibt es eine Aussage, dass Namen Dinge sind, die ein wenig Nachdenken erfordern. Wenn jemand einen Hinweis dazu hat, hinterlasse bitte einen Kommentar oder bearbeite ihn an dieser Stelle.
Andererseits hat das Alter eine ziemlich feste Struktur (ich würde eher den Geburtstag als eine ganze Zahl vorschlagen). Daher ist die Darstellung dieser Informationen in einem bekannten und verständlichen Format in einem Attribut sinnvoll. Eine Person hat nur einen Geburtstag und es gibt keine "Bestellung", die Sie beibehalten möchten.
Uche Ogbuji nennt drei Grundprinzipien für das korrekte Entwerfen eines XML-Formats. Das Folgende sind abgekürzte Zitate aus dem oben verlinkten Dokument.
- Prinzip der strukturierten Information
Wenn die Information in strukturierter Form ausgedrückt wird, insbesondere wenn die Struktur erweiterbar sein kann, verwenden Sie Elemente. Auf der anderen Seite: Wenn die Informationen als atomares Token ausgedrückt werden, verwenden Sie Attribute
- Prinzip der Lesbarkeit
Wenn die Informationen von einer Person gelesen und verstanden werden sollen, verwenden Sie Elemente. Wenn die Informationen von einer Maschine am leichtesten verstanden und verarbeitet werden können, verwenden Sie Attribute.
- Prinzip der Element- / Attributbindung
Verwenden Sie ein Element, wenn der Wert durch ein anderes Attribut geändert werden soll
Und so sollten Namen Elemente sein - es handelt sich um strukturierte Daten, die kein atomares Token sind. Es ist wahrscheinlicher, dass sie von einem Menschen gelesen werden als von einem Computer, und sie können durch ein anderes Attribut im Namen selbst geändert werden.
Daten sollten Attribute sein - es handelt sich um Daten, die ein atomares Token sind. Es ist wahrscheinlicher, dass sie von einem Computer gelesen werden als von einem Menschen (und dann gegebenenfalls in das vom Menschen bevorzugte Format umgewandelt werden ), und letztendlich ist es unwahrscheinlich, dass sie von anderen geändert werden Attribute auf sie.