Attribute

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

XML-Elemente können Attribute besitzen. Ein Attribut ist ein Paar aus einem Namen und einem Wert, das dem Start-Tag eines Elements zugewiesen ist. Die Namen werden von den Werten durch ein Gleichheitszeichen und optionalen Whitespace getrennt. Die Werte sind in einfache oder doppelte Anführungszeichen eingeschlossen. Zum Beispiel enthält unser Element person ein Attribut geboren mit dem Wert 1912-06-23 und ein Attribut gestorben mit dem Wert 1954-06-07:

<person geboren="1912-06-23" gestorben="1954-06-07">
  Alan Turing
</person>

Das nächste Element ist für einen XML-Parser genau gleich. Es benutzt lediglich einfache anstelle der doppelten Anführungszeichen, fügt rund um die Gleichheitszeichen zusätzlichen Whitespace ein und gibt die Attribute in veränderter Reihenfolge an:

<person gestorben = '1954-06-07' geboren = '1912-06-23'>
  Alan Turing
</person>

Der Whitespace vor und hinter den Gleichheitszeichen dient ausschließlich dem persönlichen ästhetischen Empfinden. Die einfachen Anführungszeichen können in solchen Fällen nützlich sein, in denen der Attributwert selbst doppelte Anführungszeichen enthält. Die Reihenfolge der Attribute ist unerheblich.

Das folgende Beispiel zeigt, wie mit Hilfe von Attributen die Informationen aus dem datensatzähnlichen Dokument aus dem Code-Beispiel Ein komplizierteres XML-Dokument, das eine Person beschreibt kodiert werden können.

<person>
   <name vorname="Alan" nachname="Turing"/>
   <beruf wert="Informatiker"/>
   <beruf wert="Mathematiker"/>
   <beruf wert="Kryptograph"/>
</person>

Code-Beispiel: Ein XML-Dokument, das eine Person mit Attributen beschreibt

Dieses Beispiel wirft die Frage auf, ob und wann man Kindelemente oder Attribute verwenden sollte, um Informationen aufzunehmen. Über dieses Thema werden hitzige Diskussionen geführt. Mancher argumentiert, dass Attribute für Metadaten über das Element gedacht seien, während Elemente selbst den Informationen vorbehalten seien. Andere wiederum sagen, dass es nicht immer ganz offensichtlich sei, was nun Daten und was Metadaten sind. Tatsächlich hängt die Antwort vermutlich davon an, wofür die Informationen verwendet werden.

Unbestritten ist, dass jedes Element nicht mehr als ein Attribut mit einem bestimmten Namen haben darf. Für ein Geburts- oder Sterbedatum stellt dies wahrscheinlich kein Problem dar. Anders verhält es sich bei einem Beruf, einem Namen, einer Adresse oder etwas anderem, von dem ein Element mehr als eins haben kann. Darüber hinaus sind Attribute in der Struktur recht eingeschränkt. Der Wert eines Attributs ist einfach ein nicht gegliederter Text. Die Unterteilung eines Datums in Jahr, Monat und Tag mit Hilfe von Bindestrichen im obigen Code-Fragment ist schon hart an der Grenze dessen, was vernünftig in einem Attribut kodiert werden kann. Eine elementbasierte Struktur ist erheblich flexibler und erweiterbarer. Trotzdem sind Attribute in manchen Anwendungen sicherlich bequemer. Und wenn Sie Ihr eigenes XML-Vokabular erstellen, ist es selbstverständlich an Ihnen zu entscheiden, wann Sie was einsetzen.

Attribute erweisen sich auch in narrativen Dokumenten als nützlich, wie das folgende Code-Beispiel demonstriert. Hier ist es vielleicht ein wenig deutlicher, was zu Elementen und was zu Attributen gehört. Der reine Erzähltext wird in Form von Zeichendaten innerhalb von Elementen dargestellt. Zusätzliche Informationen, die die Daten ergänzen, werden mit Attributen präsentiert. Zu diesen Informationen gehören Quellen, Bild-URLs, Hyperlinks sowie Geburts- und Sterbedaten. Allerdings gibt es selbst hier mehr als eine Vorgehensart. Zum Beispiel könnten die Fußnotenzahlen Attribute des Fußnotenelements anstelle von Zeichendaten sein.

<biographie xmlns:xlink="http://www.w3.org/1999/xlink/">

   <absatz><bild src="http://www.turing.org.uk/turing/pi1/busgroup.jpg" breite="152" hoehe="345"/></absatz>

   <absatz><person geboren='1912/06/23' gestorben='1954/06/07'><vorname>Alan</vorname> <nachname>Turing</nachname></person> war einer der ersten Menschen, der wirklich die Bezeichnung <betonung>Informatiker</betonung> verdiente. Seine Arbeiten auf diesem Gebiet können nicht alle aufgezählt werden, am bekanntesten sind der nach ihm benannte <betonung xlink:type="simple" xlink:href="http://cogsci.ucsd.edu/~asaygin/tt/ttest.html">Turing-Test</betonung> sowie die <betonung xlink:type="simple" xlink:href="http://mathworld.wolfram.com/TuringMachine.html">Turing-Maschine</betonung>.</absatz>

   <absatz><nachname>Turing</nachname> war außerdem ein anerkannter <beruf>Mathematiker</beruf> und <beruf>Kryptograph</beruf>. Mit seiner Hilfe gelang es den Alliierten, die deutsche Enigma-Maschine zu entschlüsseln.<fußnote src="The Ultra Secret, F.W. Winterbotham, 1974">1</fußnote></absatz>

   <absatz>Am <datum><tag>7.</tag> <monat>Juni</monat> <jahr>1954</jahr></datum> beging er Selbstmord, nachdem er wegen seiner Homosexualität verurteilt worden war und gezwungen wurde, weibliche Hormone einzunehmen.<fußnote src="Alan Turing: the Enigma, Andrew Hodges, 1983">2</fußnote></absatz>

</biographie>

Code-Beispiel: Ein narratives XML-Dokument, das Attribute verwendet

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de