Es ist nicht so, daß die Parser damit nicht klar kommen, wenn ein Tag nicht geschlossen wird.
Vielmehr ist es so, daß es laut
XML-Spezifikation verboten ist, daß es offene Tags gibt und es ist vorgeschrieben, daß ein Parser in soeinem Fall einen Fehler auslösen soll.
Selbst mein Parser wirft in soeinem Fall eine Exception, obwohl man dieses auch geziehlt deaktivieren kann ... z.B. kann, in Bezug auf eine teilweise Kompatibilität zum HTML, das <br>-Tag als offen deklariert werden, wobei es dann auch immer offen sein muß.
PS: Seit XHTML ist es auch in
HTML vorgeschrieben, daß das <br> als offen markiert sein muß, also <br/> ... als kompatibilität zum
XML.
Selbst wenn der Programmierer Mist baut und etwas beim Speichern schief geht oder diese Bearbeitung vorzeitig abgebrochen wurde, dann schließt eine ordentliche
XML-Lib immer alle offenen Tags.
Wenn beim Speichern etwas Schwerwiegendes passiert, dann ist es doch egal, ob
XML oder was Anderes ... in allen Fällen ist die Datei defekt.
Aber notfalls kann man viele
XML-Parser auch so einstellen, daß sie dennoch die
XML auslesen und zugänglich machen, bis zum ersten schweren Fehler.
Wozu soll es denn Konventionen geben?
Es ist deine Entscheidung, ob du lieber ein Attribut oder nicht nutzt.
Die Aufteilung der Daten ist nicht vorgeschrieben, sondern nur deren Format.
Grundsätzlich kann man aber sagen, daß bei vielen und/oder großen Daten-Einheiten lieber auf SubNodes, anstatt auf Attribute gesetzt werden sollte.
Auch wenn die Vorteile schon mehrfach/ständig genannt wurden.
Vorteile:
- es ist ein genormtes und weit verbreitetes Datenformat
- automatische Speicherverwaltung (der Programmierer muß sich um nix kümmern)
- viele Umgebungen (Delphi, PHP, JS, ...) haben schon passende
DOM-Parser integriert, welche natürlich alle Kompatibel sind
- man kann die Stucktur erweitern/ändern, ohne die Datei extra konvertieren zu müssen und bei einer Erweiterung bleiben oftmals alte Programme weiterhin lauffähig
- die Datei ist vom Menschen lesbar/änderbar, ohne spezielle Anzeigeprogramme
Nachteile:
- die Datei ist oftmals größer, als eine Binärdatei
- die Datei ist ganz leicht vom Menschen lesbar (Grundsätlich erstmal keine Geheimnisse)
@Luckie:
Eine
XML-Datei, mit entsprechenden Einrückungen und Zeilenumbrüchen kann sogar besser lesbar sein, als eine INI.