XML-Attribute

XML-Elemente können wie HTML Attribute in der Startmarke enthalten.

Attribute (Attribute) bieten zusätzliche (zusätzliche) Informationen über das Element.

XML-Attribute müssen in Anführungszeichen stehen

Der Attributwert muss in Anführungszeichen stehen, sowohl einfache als auch doppelte können verwendet werden.

Zum Beispiel die Geschlecht einer Person, so kann der <person>-Tag geschrieben werden:

<person gender="female">

Oder so auch:

<person gender='female'>

Wenn der Attributwert selbst Anführungszeichen enthält, können Sie eckige Anführungszeichen verwenden, wie im folgenden Beispiel gezeigt:

<gangster name='George "Shotgun" Ziegler'>

Oder Sie können Zeichenkategorien verwenden:

<gangster name="George "Shotgun" Ziegler">

XML-Elemente und Attribute

Bitte sehen Sie diese beiden Beispiele:

<person gender="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>
<person>
  <gender>female</gender>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

In dem ersten Beispiel ist sex ein Attribut. In dem zweiten Beispiel ist sex ein Unterlement. Beide Beispiele können die gleiche Information liefern.

In XML gibt es keine Regeln, die uns sagen, wann wir Attribute und wann Unterlemente verwenden sollten. Meine Erfahrung ist, dass Attribute in HTML sehr praktisch sind, aber in XML sollten Sie Attribute vermeiden. Wenn Informationen wie Daten aussehen, verwenden Sie bitte Unterlemente.

Meine bevorzugte Methode

Die folgenden drei XML-Dokumente enthalten vollständig identische Informationen:

Ein erster Beispiel verwendet das date-Attribut:

<note date="2008-01-10">
  <to>George</to>
  <from>John</from>
</note>

Ein zweiter Beispiel verwendet das <date>-Element:

<note>
  <date>2008-01-10</date>
  <to>George</to>
  <from>John</from>
</note>

Ein dritter Beispiel verwendet das erweiterte date-Element (das ist mein Favorit):

<note>
  <date>
    <year>2008</year>
    <month>01</month>
    <day>10</day>
  </date>
  <to>George</to>
  <from>John</from>
</note>

Sollte man XML-Attribute vermeiden?

Einige Dinge, die Sie bei der Verwendung von Attributen berücksichtigen sollten, sind:

  • Attribute können keine Mehrfachwerte enthalten (Elemente können)
  • Attribute können keine Baumstruktur beschreiben (Elemente können)
  • Attribute sind nicht leicht erweiterbar (für zukünftige Änderungen)

Verwenden Sie bitte Elemente, um Daten zu beschreiben. Verwenden Sie nur Attribute, um Informationen bereitzustellen, die nichts mit den Daten zu tun haben.

Machen Sie nicht so etwas Dümmeres (das ist nicht der richtige Weg, wie XML verwendet werden sollte):

<note day="10" month="01" year="2008"
to="George" from="John" heading="Reminder"
body="Don't forget the meeting!"
</note>

XML-Attribute für Metadaten

Manchmal werden IDs an Elemente zugewiesen, die als Referenzen dienen. Diese ID-Indizes können verwendet werden, um XML-Elemente zu identifizieren, was auf die gleiche Weise funktioniert wie das ID-Attribut in HTML.

<messages>
  <note id="501">
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
  </note>
  <note id="502">
    <to>John</to>
    <from>George</from>
    <heading>Re: Reminder</heading>
    <body>I will not</body>
  </note> 
</messages>

The above ID is simply an identifier used to identify different tags. It is not part of the tag data.

The idea we strongly convey here is that metadata (data about data) should be stored as attributes, while the data itself should be stored as elements.