XML -Attribute
XML-Elemente können genau wie HTML Attribute haben.
Attribute sind so konzipiert, dass sie Daten enthalten, die sich auf ein bestimmtes Element beziehen.
XML-Attribute müssen in Anführungszeichen gesetzt werden
Attributwerte müssen immer in Anführungszeichen gesetzt werden. Es können einfache oder doppelte Anführungszeichen verwendet werden.
Für das Geschlecht einer Person kann das <person>-Element wie folgt geschrieben werden:
<person gender="female">
oder so:
<person gender='female'>
Wenn der Attributwert selbst doppelte Anführungszeichen enthält, können Sie einfache Anführungszeichen verwenden, wie in diesem Beispiel:
<gangster name='George "Shotgun" Ziegler'>
oder Sie können Zeichenentitäten verwenden:
<gangster name="George "Shotgun" Ziegler">
XML-Elemente vs. Attribute
Schauen Sie sich diese beiden Beispiele an:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
Im ersten Beispiel ist das Geschlecht ein Attribut. Im letzten Beispiel ist das Geschlecht ein Element. Beide Beispiele liefern dieselben Informationen.
Es gibt keine Regeln darüber, wann Attribute oder wann Elemente in XML zu verwenden sind.
Mein Lieblingsweg
Die folgenden drei XML-Dokumente enthalten genau die gleichen Informationen:
Im ersten Beispiel wird ein Datumsattribut verwendet:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
Im zweiten Beispiel wird ein <date>-Element verwendet:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
Im dritten Beispiel wird ein erweitertes <date>-Element verwendet: (THIS IS MY FAVORITE):
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
XML-Attribute vermeiden?
Einige Dinge, die bei der Verwendung von Attributen zu beachten sind, sind:
- Attribute können nicht mehrere Werte enthalten (Elemente können)
- Attribute können keine Baumstrukturen enthalten (Elemente können)
- Attribute sind nicht einfach erweiterbar (für zukünftige Änderungen)
Nicht so enden:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
XML-Attribute für Metadaten
Manchmal werden Elementen ID-Referenzen zugewiesen. Diese IDs können verwendet werden, um XML-Elemente ähnlich wie das id-Attribut in HTML zu identifizieren. Dieses Beispiel demonstriert dies:
<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>
Die obigen id-Attribute dienen zur Identifizierung der verschiedenen Notizen. Es ist nicht Teil der Notiz selbst.
Was ich hier sagen möchte, ist, dass Metadaten (Daten über Daten) als Attribute und die Daten selbst als Elemente gespeichert werden sollten.