Wie auch in SGML können in XML leere Elemente, sogenannte "Empty-Elemente" definiert werden. Wichtiger Unterschied dabei: diese müssen immer mit einem schließenden Slash am Ende geschlossen werden:
Beispiel <?xml version="1.0"?> <Adressbuch> <eintrag> <name> Hans Meier </name> <email> hmeier@meier.com </email> <status typ="registriert"/> </eintrag> </Adressbuch>Empty-Elemente sind immer dann sinnvoll, wenn die Informationen, die sie enthalten zwar nicht unmittelbar für einen einzelnen Tag zu verwerten sind, aber in einem anderen Zusammenhang noch verwertbar sein sollen.
XML-Tags können beliebige Attribute zugeordnet werden: allerdings nur solange, wie keine DTD für die XML-Instanz definiert worden ist:
Beispiel <?xml version="1.0"?> <Adressbuch> <eintrag> <name sprache="deutsch" vorname="bekannt"> Hans Meier </name> <email> hmeier@meier.com </email> <status typ="registriert"/> </eintrag> </Adressbuch>
Eigentlich nicht - grundsätzlich kann man sagen: Attribute und die dazu erwarteten Parameter beschreiben den Tag näher. Werden neue Informationen übergeben, die weder logisch noch semantisch dem bereits aufgeführten Element zugeordnet werden können, so empfiehlt es sich ein neues Element anzulegen:
Beispiel nicht sinnvoll <?xml version="1.0"?> <Adressbuch> <eintrag> <name sprache="deutsch" vorname="bekannt"> Hans Meier </name> <email telefon="040/1234567"> hmeier@meier.com </email> <status typ="registriert"/> </eintrag> </Adressbuch> sondern <?xml version="1.0"?> <Adressbuch> <eintrag> <name sprache="deutsch" vorname="bekannt"> Hans Meier </name> <email> hmeier@meier.com </email> <telefon> 040 / 1234567 </telefon> <status typ="registriert"/> </eintrag> </Adressbuch>