XML: Attribut oder Unterknoten?



  • Hallo!

    Wie weiß ich in XML wann ich ein Attribut bzw. wann ich einen Unterknoten verwenden soll?

    Beispiel:

    <?xml version="1.0" encoding="iso-8859-1">
    <gedicht dichter="Johann Wolfgang von Goethe">
      ...
    </gedicht>
    

    Beispiel:

    <?xml version="1.0" encoding="iso-8859-1">
    <gedicht>
        <dichter>Johann Wolfgang von Goethe</dichter>
    </gedicht>
    

    Wann muss ich jetzt was verwenden?



  • Das ist deine Entscheidung. Grundsätzlich solltest du aber beachten: Attribute sind nicht mehr erweiterbar, das heißt du stehst dann bereits am Ende. Wenn du also vor hast ein bestimmtes Attribut (zB Name) später noch aufzuteilen (Vorname, Nachname) solltest du lieber mit Sub-Elementen arbeiten.

    MfG SideWinder



  • Den Vorteil von Kindknoten sehe ich eigentlich nicht. Egal ob Attribut oder Knoten, eine Änderung zieht immer auch eine entsprechende Code-Änderung nach sich. Aber ob du jetzt aus "gedicht/@dichter" (die Attributvariante) oder einem "gedicht/dichter" (die Kindknotenversion) ein "gedicht/dichter/nachname" und ein "gedicht/dichter/vorname" machst, ist wohl kaum ein weltbewegender Unterschied.

    Rein von der Philosophie her macht es halt so, dass man Attribute zur näheren Beschreibung des Knotens verwendet, diese aber niemals zum Speichern von eigentlichen Daten verwendet. Von praktischer Relevanz ist das aber nur, wenn man das XML in z.B. einem Browser direkt darstellen lassen will. Denn dort fallen Attribute - weil sie eben keine relevanten Daten enthalten sollten - einfach unter den Tisch. Da wird es dann relativ umständlich, diese Werte mittels CSS wieder hervorzuzaubern. Das ist auch eine nette Möglichkeit, wie man sich das Design der XML-Dateien überlegen kann: betrachtet man sie in einem Browser (ignoriert also alle Attribute) sieht man dann noch immer alle relevanten Informationen?


Anmelden zum Antworten