von Jan Winkler
XML gilt als Datenaustauschformat der Zukunft im eBusiness und ist Favorit für Content Management-Systeme. Doch was genau hat es damit auf sich? Lernen Sie XML zu schreiben und einzusetzen, DTDs zu definieren und XML mithilfe von JavaScript, CSS und XSL an Ihre Bedürfnisse anzupassen.
Was ist XML?
XML steht für “EXtensible Markup Language”, was übersetzt etwa “erweiterbare Auszeichnungssprache” bedeutet. Es wurde vom World Wide Web Konsortium (W3C) entwickelt, um HTML & Co. um eben diese erweiterbaren Elemente zu bereichern. Wenn man es so sehen will, ist XML die Grundlage oder vielmehr die Gebrauchsanweisung für jeden, der eigene Sprachen entwickeln möchte. XML beschreibt, ähnlich wie beispielsweise HTML, die Anordnung und das Auftreten von Elementen, die Verwendung von Attributen und alles was sonst noch zu einem Dokument gehört. Das Neue – im Gegensatz zu HTML – ist die Erweiterbarkeit. HTML selbst ist ein relativ statisch und fest definiertes Gebilde. XML wiederum verfügt über die Möglichkeiten, eine vormals in XML definierte Sprache zu erweitern und zu bereichern.
Wozu XML?
Um es ganz einfach zu sagen: Wenn Sie “nur” weiterhin Ihre Homepage betreiben wollen, brauchen Sie es so gut wie gar nicht. Eine gewöhnliche Homepage kommt ohne XML aus und wird es auch weiterhin tun. XML brauchen Sie erst dann, wenn es um Funktionen und Erweiterungen geht, die HTML & Co. nicht mehr übernehmen können. Dazu gehören alle Dinge, die von Maschinen verstanden werden sollen, wie etwa Metadaten, Firmendaten oder auch einfache Listen Ihrer Videos im Schrank. Aufgrund seiner Definition kann XML hier ansetzen und eben diese Dinge umsetzen.
Wie sieht XML aus?
Das Erscheinungsbild von XML-Dateien unterscheidet sich nicht wesentlich von gewöhnlichen HTML-Dateien. Vielmehr ist mit XHTML (eXtensible Hypertext Markup Language, eine Abbildung von HTML auf XML) genau das erreicht, was XML ausmacht: Es ist auf fast alles anwendbar. Mit XHTML wurde HTML mithilfe der Regeln von XML neu definiert. Das Resultat ist eine fast beliebig erweiterbare Sprache, die zudem noch wesentlich einfacher interpretierbar und auch besser von Computern zu verstehen ist. Ein Beispiel für eine XML-Datei:
<?xml
version="1.0"?>
<Adressbuch>
<Kunde Name="Max
Mustermann">
<Adresse>
<Strasse>Musterstraße
14</Strasse>
<PLZ>12345</PLZ>
<Ort>Musterhausen</Ort>
</Adresse>
</Kunde>
<Kunde Name="August Ausgedacht">
<Adresse>
<Strasse>Gibts-Nicht-Weg 37</Strasse>
<PLZ>67890</PLZ>
<Ort>Augsburg</Ort>
</Adresse>
</Kunde>
</Adressbuch>
Wie Sie dem Beispiel entnehmen können, wird darin ein Adressbuch beschrieben, dass die zwei Einträge “Max Mustermann” und “August Ausgedacht” beinhaltet. Weitere Adresse können folgen. Bitte beachten Sie auch die Struktur der einzelnen Elemente (Adressbuch, Kunde, Adresse, Strasse, …) – XML definiert diese.
Wie schreibe ich XML?
XML wird nicht anders notiert als gewöhnliches HTML. Das heißt, die Datei ist eine reine Textdatei, die Sie beispielsweise mit einem Text-Editor oder einem speziellen XML-Editor schreiben können. Die Dateiendung ist im Grunde frei gestellt, allgemein wird allerdings .xml verwendet.
Die XML-Deklaration
Jede XML-Datei enthält zu Beginn eine entsprechende Auszeichnung, dass es sich um XML handelt: die so genannte XML-Deklaration. Die XML-Deklaration besteht aus lediglich einer Zeile mit dem folgenden Aufbau:
<?xml
version="[Versionsnummer]" [weitere Attribute]?>
Dieser Aufruf besagt, dass es sich um eine XML-Datei handelt. Des Weiteren wird ausgesagt, dass der enthaltene Markup (~Text) der Definition einer bestimmten Version [Versionsnummer] von XML entspricht. Derzeit ist die Version ’1.0′ aktuell. Außerdem können [weitere Attribute] enthalten sein, die das Dokument näher bezeichnen, etwa in dem verwendeten Zeichensatz oder ausgelagerten Dateien. Diese sind allerdings nicht Pflicht.
Tags, Elemente und Attribute
Tags, Elemente und Attribute sind neben dem Inhalt/Text die Bestandteile jeder XML-Datei. Ein Element ist die Definition einer bestimmten Gegenstands. Bekannte Elemente aus HTML sind z.B. H1 oder P. Ein Tag wiederum ist das geschriebene Element. Jeder Tag wird durch zwei spitze Klammern (< und >) umschlossen. Darin enthalten sind der Elementname und etwaige Attribute. Beispiel:
<font
color="red"> Dies ist Text. </font>
Zu jedem Tag muss in XML außerdem ein schließender Tag hinzugefügt werden. Dieser wird durch einen Schrägstrich (/) vor dem Elementnamen verdeutlicht und besagt, dass hiermit der Geltungsbereich des Elements beendet ist.
Attribute sind Eigenschaften eines Tags/Elementes. Jedes Attribut besteht aus dem Namen, einem =-Zeichen sowie einem in Anführungszeichen (“) geschriebenen Wert (siehe Beispiel).
Auch wennn die Bezeichnung von Elementen und Attributen in XML relativ frei festgelegt werden kann, gelten auch hier einige Einschränkungen. Alle Namen in XML dürfen grundsätzlich nur aus Buchstaben, Zahlen, dem Punkt, Unterstrichen und Bindestrichen bestehen. Des Weiteren müssen die Namen mit einem Buchstaben oder einem Unterstrich beginnen und dürfen keine Leerzeichen enthalten.
Leere Tags und Attribute
In HTML wurde mitunter etwas schlampig mit leeren Tags (also Tags ohne Inhalt, wie etwa IMG oder BR) und Attributen umgegangen. Die Browser waren hier meist so gnädig, trotz der Fehler alles korrekt darzustellen. Aufgrund der strikteren Definition von XML geht das nun nicht mehr. Alle leeren Tags müssen nun entweder einen schließenden Tag erhalten oder – besser noch – als leerer Tag gekennzeichnet werden. Diese Kennzeichnung erfolgt durch einen Schrägstrich (/) am Ende des Tags. Beispiel:
<!--
falsch: -->
<meinElement meinAttribut=Wert>
<!--
richtig: -->
<meinElement meinAttribut="Wert" />
Auch bei Attributen ist XML etwas strikter: Hier müssen die Klammern unbedingt gesetzt werden (siehe Beispiel).
CDATA-Abschnitte
CDATA-Abschnitte sind vom Prinzip her Tags, die beliebige Zeichen enthalten können. CDATA steht für Character Data (Zeichendaten). Der Abschnitt wird durch <![CDATA[ eingeleitet und mit ]]> beendet. Der gesamte Text dazwischen wird so dargestellt, wie er notiert wird. Beispiel:
<![CDATA[
Hier kann problemlos mit
<Elementen>
gearbeitet werden.
]]>
Dokumenttyp-Deklarationen
Wie gesagt, beschreibt XML, wie eine Sprache definiert werden kann. Allgemein werden dazu DTDs (so genannte Document Type Definitions) verwendet. Dies sind Beschreibungen der Elemente, Attribute und ihrem Verhalten zueinander. Um definierte Elemente und Attribute innerhalb eines XML-Dokuments verwenden zu können, muss innerhalb des Dokuments definiert werden, welche Definition (DTD) verwendet werden soll. Dies kann entweder durch eine interne DTD oder eine externe DTD geschehen. Wie DTDs letztlich geschrieben werden, wird im späteren Verlauf des Workshops noch erläutert werden.
Interne DTDs werden direkt in das Dokument in einen bestimmten Bereich hinein geschrieben. Dieser Bereich wird durch <!DOCTYPE Name [ und ]> begrenzt, wobei Name der Name des root-Elementes (Stamm-Element; in HTML etwa das html-Element) ist. Innerhalb dieses Bereiches kann die gesamte Definition notiert werden. Ein Beispiel:
<?xml
version="1.0"?>
<!DOCTYPE Adressbuch [
<!ELEMENT Adressbuch
(Kunde*)>
<!ELEMENT Kunde (Adresse)>
<!ATTLIST Kunde Name
CDATA #REQUIRED>
<!ELEMENT Adresse (Strasse, PLZ, Ort)>
<!ELEMENT
Strasse (#PCDATA)>
<!ELEMENT PLZ (#PCDATA)>
<!ELEMENT Ort
(#PCDATA)>
]>
...
Diese DTD entspricht der Definition des vorangegangenen Beispiels (“Wie sieht XML aus?”).
Neben internen DTDs können DTDs auch ausgelagert und in externen Dateien (.dtd) mehrerer Dokumente verwendet werden. Um eine externe DTD innerhalb eines Dokuments zu verwenden, wird die folgende Schreibweise notiert:
<!DOCTYPE
Name SYSTEM "DTD-URL">
<!DOCTYPE Name PUBLIC "DTD-Name"
"DTD-URL">
Wobei Name wiederum für den Namen des root-Elementes steht. Der Typ einer DTD kann entweder SYSTEM oder PUBLIC sein, wobei SYSTEM für DTDs steht, die durch absolute oder relative Pfade (DTD-URL) auffindbar sind, sich also auf einem System befinden. Als PUBLIC gekennzeichnete DTDs sind öffentliche DTDs (wie die von HTML). Hierbei muss neben der URL (DTD-URL) auch die Bezeichnung (DTD-Name) definiert werden. Diese besteht aus einem String (~ Text) der Form …
Typ//Besitzer//Beschreibung//Sprache
Wobei der Typ aus einem Plus- (wenn der Besitzer bei der ISO 9070 registriert ist) oder Minuszeichen (alle anderen Besitzer) besteht. Anstelle des Besitzers und der Beschreibung kann ein frei gewählter Name sowie eine Beschreibung der DTD eingetragen werden. Letztlich beschreibt der Wert “Sprache” die in der DTD verwendete Sprache (laut ISO 639).
Ein Beispiel:
-//MeineFirma//Adressbuch//de
Kommentare
Kommentare, also Text, der nicht zum eigentlichen Markup gehört, werden ebenso wie in HTML geschrieben. Sie werden durch <!– eingeleitet und durch –> beendet. Alles, was dazwischen steht, gilt als Kommentar und wird von einem ausführenden Programm nicht bzw. nur als Kommentar interpretiert. Beispiel:
<!--
dieser Tag <abc> wird auch als Kommentar angesehen -->
Außerdem sollten Sie beachten, dass vor der XML-Deklaration keine Kommentare stehen dürfen. Sie ist das Erste, was im Dokument steht. Auch dürfen Kommentare nicht in Tags oder Attributen enthalten sein.
Entities
Entities, Entity-Referenzen bzw. auf gut Deutsch “Entitäten” sind Auszeichnungen, die Sonderzeichen darstellen. Um Missverständnisse zwischen Text und Tags zu vermeiden, sollten innerhalb der Text-Abschnitte immer nur Entities verwendet werden. Definierte Entities sind z.B. &, < oder > , die für Sonderzeichen (&, < und >) stehen. XML definiert zudem noch zwei Weitere (&apos – Apostroph und " – Anführungszeichen) und bietet darüber hinaus die Möglichkeit, eigene Entities zu definieren.
Eine Entity besteht dabei immer aus einem Kaufmanns-Und (&), dem Namen oder einer Referenz auf den Unicode-Zeichensatz sowie einem abschließenden Semikolon (;). Bei Referenzen auf den Unicode-Zeichensatz wird anstelle des Namens (z.B. amp) eine Raute (#) mit der anschließenden Zahl des Zeichens im Zeichensatz definiert. Einige Sonderzeichen lassen sich somit auf drei Arten darstellen:
- Als Zeichen (&),
- numerisch (&) oder
- mit einem allgemeinen Entity (&).
Wohlgeformtheit und Gültigkeit
Nicht zuletzt wird XML in Bezug auf die Syntax als schwerer zu erlernen angesehen, da verglichen mit HTML wesentlich stärker auf die korrekte Notierung zu achten ist (“Wohlgeformtheit”). Damit eine XML-Datei als gültig anerkannt wird, müssen folgende Punkte gelten (einige wurden bereits beschrieben):
- Am Anfang jeder XML-Datei muss eine XML-Deklaration stehen.
- Alle nicht leeren Tags müssen einen Anfangs- und End-Tag besitzen.
- Leere Tags müssen mit /> enden.
- Jedes Dokument muss ein Element enthalten, dass alle anderen Elemente einschließt (wie z.B. in HTML das html-Element).
- Elemente dürfen sich nicht überlappen (statt <a><b> … </a></b> immer <a><b> … </b></a>)
- Attributwerte müssen (paarweise) entweder in doppelten oder einfachen Anführungszeichen stehen.
Die Namen von Anfangs- und End-Tag müssen untereinander und mit der DTD übereinstimmen (Groß- und Kleinschreibung beachten).
Weitere Beiträge:
- 5 Ideen wie Sie wiederkehrende Arbeitsschritte & Marketingprozesse gewinnbringend im Internet automatisieren! Ein Gastbeitrag von Robert Nabenhauer.
- Wachstum durch Facebook-Gewinnspiele: Wie Sie über Facebook virale Gewinnspiele & eine schnell wachsende Fangemeinde aufbauen
- Wie Sie aufmerksamkeitsstarke Prelaunch-, Launch- und Relaunch-Szenarien aufbauen und dabei Viralität, Spannung & Kaufkraft erzeugen
- Wie Sie waschechte Iphone-Apps mit PhoneGAP entwickeln, um am lukrativen App-Markt mitzumischen
- Wie Sie Ihr Shop-Sortiment so präsentieren, dass der Kunde in Zukunft mehr findet und eher kauft! Ein Gastbeitrag von Nicolas Schmidt-Voigt.
- 11 faszinierende BuddyPress-Plugins, um kostenlos aus WordPress ein soziales Netzwerk zu zaubern
- Die Vorboten einer neuen Internet-Industrie! Ein exklusiver Rückblick & Blick hinter die Kulissen der Clickbank-Exchange 2011 in New York.


Noch keine Kommentare vorhanden!