XML - Was ist der Unterschied in Verwendung und Funktion zwischen zBUndJohn Doe?

XML - Was ist der Unterschied in Verwendung und Funktion zwischen zBUndJohn Doe?

Ich habe das erste mit mehreren Attributen in einer Klammer gesehen (z. B. <person name="JohnDoe" age="25">), aber ich verstehe nicht ganz, was genau der Unterschied zwischen beiden ist, und ich würde auch einfach gerne wissen, wie diese beiden Arten von Objekten heißen (ich konnte diese Frage nicht googeln, weil ich überhaupt keine Ahnung hatte, wie sie heißen).

Ich weiß, dass beide dasselbe können (deshalb frage ich das), aber ich suche nach guten Anwendungsfällen für den Einsatz von einem von beiden (z. B. die Verwendung von API-Namespaces in Attributen statt in einem Element, das Einfügen von Daten in Elemente statt in Attribute).

Antwort1

Du kannst das:

<foo>
    <bar>baz</bar>
</foo>

Das geht aber nicht:

<foo value="<bar>baz</bar>" />

Sie können spitze Klammern mithilfe von Entitäten kodieren:

<foo value="&lt;bar&gt;baz&lt;/bar&gt;" />

Aber jetzt ist es nur noch der Text „baz“ und kein verschachteltes XML. Das entspricht folgendem:

<foo>&lt;bar&gt;baz&lt;/bar&gt;</foo>

Aus XML-Sicht ist das meiner Meinung nach der einzige Unterschied: Sie können Tags nicht in Tags verschachteln, aber nicht in Attributen.

Wenn Sie Tags nicht verschachteln müssen, sind beide Optionen gültig. Es gibt keinen weiteren technischen Unterschied. Die XML-Spezifikation enthält keine semantischen Regeln für die Verwendung des einen oder des anderen.

verwandte Informationen