Bei XML handelt es sich um ein text­ba­sier­tes Da­ten­for­mat, das u. a. für die Spei­che­rung von Daten und für den platt­form­un­ab­hän­gi­gen Da­ten­aus­tausch im Internet ein­ge­setzt wird. XML fungiert als Grundlage weiterer Sprachen wie z. B. HTML und ist nicht nur von Menschen, sondern auch von Maschinen lesbar.

Was ist XML?

Die Abkürzung XML steht für „Ex­ten­si­ble Markup Language“. Es handelt sich bei XML also um eine Aus­zeich­nungs­spra­che. Diese wird dafür ein­ge­setzt, Daten struk­tu­riert in einer Textdatei dar­zu­stel­len, die im Anschluss sowohl von Menschen als auch von Computern aus­ge­wer­tet werden kann. Die Me­ta­spra­che wurde bereits 1998 vom World Wide Web Con­sor­ti­um ent­wi­ckelt und ist vor allem aus der Web­ent­wick­lung nicht mehr weg­zu­den­ken. Die aktuelle Fassung von XML, die fünfte Ausgabe, wurde im Jahr 2008 ver­öf­fent­licht. Die Stan­dard­zei­chen­ko­die­rung von XML-Do­ku­men­ten ist UTF-8.

XML: Ein­satz­ar­ten und Funk­ti­ons­wei­se

XML kann auf ver­schie­de­ne Arten ein­ge­setzt werden. Am Beginn jedes Einsatzes von XML steht aber die Er­stel­lung einer XML-Datei. Hierbei handelt es um ein Text­do­ku­ment mit der Endung .xml, das in jedem be­lie­bi­gen Text­edi­tor erstellt werden kann. Damit ein gültiges Dokument entsteht, muss man sich an die Syntax der Sprache halten. Solche Dokumente können etwa immer dann genutzt werden, wenn HTML an seine Grenzen stößt. Oft ist dies bei­spiels­wei­se bei Sitemaps von Websites der Fall. Hierbei wird eine sitemap.xml-Datei erstellt.

Um die XML-Dokumente ein­zu­le­sen, wird ein so­ge­nann­ter Parser benötigt. Dieser stellt eine Pro­gram­mier­schnitt­stel­le bereit, mittels der ver­schie­de­ne An­wen­dun­gen auf das XML-Dokument zugreifen können. Dieser Zugriff kann auf ver­schie­de­ne Arten erfolgen:

  • DOM: Das XML-Dokument wird als Baum­struk­tur re­prä­sen­tiert und kann auf diese Weise gelesen werden. Auch das Verändern der Baum­struk­tur sowie das Schreiben in die Baum­struk­tur sind erlaubt.
  • Pull-API: Die Daten aus dem XML-Dokument werden se­quen­zi­ell und meistens er­eig­nis­ba­siert ver­ar­bei­tet.
  • SAX: Auch hier wird das XML-Dokument als se­quen­zi­el­ler Strom von Daten behandelt.

Web­brow­ser haben solch einen Parser in den meisten Fällen bereits eingebaut, sodass das Lesen von XML-Do­ku­men­ten für die Stan­dard­brow­ser kein Problem darstellt.

Ein­satz­ge­bie­te von XML

Die Ex­ten­si­ble Markup Language wird in vielen un­ter­schied­li­chen Bereichen ein­ge­setzt. Bei­spiels­wei­se kann sie als Grundlage für weitere Sprachen angesehen werden. So basiert z. B. HTML, die Hypertext Markup Language, auf XML. Auch SVG, das be­lieb­tes­te Da­tei­for­mat für Vek­tor­gra­fi­ken, baut auf XML auf.

XML hat jedoch nicht nur als Basis für andere Sprachen große Relevanz. Vor allem im Bereich der Web­ent­wick­lung wird reines XML häufig ein­ge­setzt, um Sitemaps von Websites auf­zu­set­zen. Außerdem bietet die Ex­ten­si­ble Markup Language die Mög­lich­keit, XML-Da­ten­ban­ken zu erstellen. Diese do­ku­ment­ori­en­tier­ten Da­ten­ban­ken sind we­sent­lich flexibler als re­la­tio­na­le Da­ten­ban­ken und erfreuen sich deshalb großer Be­liebt­heit.

Wie ist XML aufgebaut?

Auf den ersten Blick ähneln XML-Dokumente HTML-Do­ku­men­ten. Das liegt daran, dass HTML auf der Ex­ten­si­ble Markup Language aufbaut und sich derselben Schreib­wei­se bedient, die auf ver­schie­de­ne Attribute und Tags zugreift.

Man kann bei XML zwischen ver­schie­de­nen Do­ku­ment­ty­pen un­ter­schei­den. Do­ku­ment­zen­trier­te XML-Dokumente sind für mensch­li­che Le­se­rin­nen und Leser ohne Zu­satz­in­for­ma­tio­nen weit­ge­hend ver­ständ­lich und nur gering struk­tu­riert. Das ver­rin­gert die Ma­schi­nen­les­bar­keit dieser Dokumente jedoch enorm. Ge­wis­ser­ma­ßen als Ge­gen­stück be­trach­tet werden können die da­ten­zen­trier­ten XML-Dokumente. Mit dem hohen Grad an Struk­tu­rie­rung geht eine hohe Ma­schi­nen­les­bar­keit einher. Für mensch­li­che Le­se­rin­nen und Leser sind da­ten­zen­trier­te Dokumente intuitiv, aber kaum ver­ständ­lich. Als Kom­pro­miss­lö­sung gibt es schließ­lich so­ge­nann­te se­mi­struk­tu­rier­te Dokumente.

Ist XML eine Pro­gram­mier­spra­che?

Die Ex­ten­si­ble Markup Language ist eine Aus­zeich­nungs­spra­che, die für sich genommen keine ei­gen­stän­di­ge Pro­gram­mier­spra­che darstellt. Es gibt keinen XML-Compiler und Sie können keine aus­führ­ba­ren Dateien mittels XML erzeugen. Auch die Sprachen, die auf XML aufbauen, werden nicht als Pro­gram­mier­spra­chen angesehen.

Die ver­schie­de­nen XML-Elemente

Der wich­tigs­te Be­stand­teil der Ex­ten­si­ble Markup Language sind so­ge­nann­te Elemente. Deren Namen können frei gewählt werden. Elemente beginnen und enden mit Tags. Möchten Sie z. B. das Element „Haus“ in Ihrem XML-Dokument de­kla­rie­ren, sähe das fol­gen­der­ma­ßen aus:

<haus>
Hier kann der Inhalt des Hauses aufgelistet werden.
</haus>
xml

Diese Elemente lassen sich beliebig in­ein­an­der ver­schach­teln. Außerdem können Sie die Elemente mit At­tri­bu­ten versehen, die Zu­satz­in­for­ma­tio­nen zu Ihren Elementen be­inhal­ten. Möchten Sie Ihrem Haus bei­spiels­wei­se ein Dach und zwei num­me­rier­te Zimmer hin­zu­fü­gen, verändert dies das XML-Dokument wie folgt:

<haus>
Hier kann der Inhalt des Hauses aufgelistet werden.
	<dach>
	Das Dach des Hauses.
	</dach>
	<zimmer raumnummer="„1“">
	Zimmer 1 in Ihrem Haus.
	</zimmer>
  
	<zimmer raumnummer="„2“">
	Zimmer 2 in Ihrem Haus.
    </zimmer>
</haus>
xml

Die Raum­num­mern, die zu den Zimmern hin­zu­ge­fügt wurden, sind die bereits erwähnten Attribute.

Weitere Be­stand­tei­le von XML-Do­ku­men­ten können Kom­men­ta­re der Form sein.

Entitäten in XML

In der Ex­ten­si­ble Markup Language haben Sie außerdem die Mög­lich­keit, auf vor­de­fi­nier­te Entitäten zu­zu­grei­fen. Auch das Erstellen eigener Entitäten ist kein Problem. Bei diesen handelt es sich um bestimmte Inhalte, die für die spätere Ver­wen­dung definiert werden. Auch weitere XML-Dokumente lassen sich mithilfe von Entitäten einbinden.

Wichtige Entitäten für die Nutzung von XML sind z. B. < für das Zeichen < oder &gt für das Zeichen >. Eigene Entitäten können Sie im XML-Dokument wie folgt erstellen:

<!ENTITY bsp „Beispiel Entity“>
xml

Un­ter­schie­de zwischen XML und HTML

HTML – die fünfte Fassung wird HTML5 genannt – basiert auf XML und sieht daher auf den ersten Blick sehr ähnlich aus wie die Ex­ten­si­ble Markup Language. Im Gegensatz zu HTML gibt es al­ler­dings bei XML kein vor­de­fi­nier­tes Set von zu­läs­si­gen At­tri­bu­ten und Tags. Diese können bei XML komplett von den Pro­gram­mie­ren­den definiert werden. Außerdem ist XML im Gegensatz zu HTML ca­se­sen­si­tiv, was bedeutet, dass zwischen Groß- und Klein­schrei­bung un­ter­schie­den wird. Ein weiterer Un­ter­schied besteht darin, dass in XML immer schlie­ßen­de Tags benötigt werden. Ein Zei­len­um­bruch, der in HTML mit
ein­ge­lei­tet wird, sähe in XML also wie folgt aus:
.

Zum Hauptmenü