2.1Was ist XML?
Die Extensible Markup Language (XML) ist eine erweiterbare Auszeichnungssprache und eine eche Untermenge der 1986 standardisierten Sprache SGML (Standard Generalized Markup Language). Im Jahr 1998 veröffentlichte das W3C die erste Empfehlung (Recommendation) zu XML 1.0. Im Februar diesen Jahres wurde Version 1.1 veröffentlich. Diese Sprache ist einfacher gestaltet und anzuwenden als das doch recht komplizierte SGML. Es wurde v.a. darauf Wert gelegt, daß das Erstellen und Bearbeiten von XML-Dokumenten mit einfachen und weitverbreiteten Werkzeugen möglich ist. Zusätzlich sollte die maschinelle Verarbeitung und die Transformation von Dokumenten und Daten vereinfacht werden.
Obwohl das "ML" in XML für Markup Language steht, handelt es sich bei XML um keine Beschreibungssprache, sondern um eine formale Sprache zur Definition von Markupsprachen.
XML-Dokumente bestehen aus beliebig vielen Textbereichen. Diese werden immer von zwei Begrenzern, den sogenannten Elementen oder Tags, eingeschlossen und durch diese beschrieben. Mit Hilfe von Attributen innerhalb der Tags kann man die Interpretation der Daten beeinflussen.
Um sogenannte wohlgeformte XML-Dokumente zu erhalten, die dem XML-Standard 1.0 entsprechen, müssen folgende Regeln eingehalten werden:
- Jedes Dokument muß mit der XML-Deklaration beginnen.
Bsp.:<?xml version="1.0" encoding="iso-8859-1"?>
- Jedes Dokument darf nur ein Wurzelelement (top level element) enthalten.
- Öffnende Elemente werden mit
<
und>
geklammert.
Bsp.:<element>
- Schließende Elemente werden mit
<
und>
geklammert, wobei ein/
vor dem Elementnamen stehen muß.
Bsp.:<element>text</element>
- Elemente ohne Inhalt werden mit
<
und/>
geklammert.
Bsp.:<element />
- Elemente dürfen sich nicht kreuzweise überlappen, sondern müssen korrekt geklammert sein.
Bsp.:<element_A><element_B>text</element_B></element_A>
- Attributwerte müssen mit
"
geklammert werden.
Bsp.:<element attribut="wert" />
- Element- und Attributbezeichner müssen immer mit einem Buchstaben beginnen und können weitere alphanumerische Zeichen enthalten. Die Bezeichner dürfen jedoch nie mit
xml
beginnen. - Auf Groß-/Kleinschreibung muß geachtet werden.
<?xml version="1.0" encoding="UTF-8"?> <student imma_nr="18063"> <name> <vorname>Hans</vorname> <nachname>Dampf</nachname> </name> <adresse> <strasse nr="42">Musterstraße</strasse> <ort plz="12345">Musterhausen</ort> </adresse> <telefon>012345/9876</telefon> <mail>h.dampf@fh-aalen.de</mail> </student>
Wie in Listing 2-1 zu sehen ist, lassen sich die Namen für die Bezeichner frei vergeben, so lange sie wie oben beschrieben aufgebaut sind. Dadurch wird ein solches Dokument auch für Menschen relativ leicht lesbar und kann durchaus ohne Hilfe korrekt interpretiert werden.
XML ist außerdem ein offenes System und wurde deshalb auch schon als "ASCII des WWW" bezeichnet. Ein großer Vorteil ist nämlich die Anwendungs- und Plattformunabhängigkeit, was einen Datenaustausch unter fast beliebigen Programmen und Betriebssystemen ermöglicht.
XML-Strukturen können zudem mit Hilfe von Schemasprachen formal definiert werden. Eine Document Type Definition (DTD) wäre eine derartige Schemasprache und definiert eine attributierte und kontextfreie Grammatik (Chomsky II), die Elemente, deren lineare Abfolge, ihre hierarchische Anordnung und ihre Attributmengen. Durch ein wohlgeformtes XML-Dokument und eine passende DTD entsteht ein sogenanntes gültiges oder valides Dokument. Viele XML-Parser sind nicht nur in der Lage, Dokumente auf Wohlgeformtheit hin zu überprüfen, sondern können mit Hilfe der DTD auch eine Validierung vornehmen und somit zusätzlich den Inhalt auf Gültigkeit testen.
Unglücklicherweise besitzt das Konzept der DTD auch einige Beschränkungen und Mängel. So ist die DTD-Syntax verschieden von der XML-Markup-Syntax, was u.a. die automatische Verarbeitung durch Programme erschwert. Es gibt keine Möglichkeit der Vererbung von Objekteigenschaften, DTDs sind schwer zu lesen und zu verstehen und zudem existieren keine Datentypen. Wegen diesen und anderen Gründen wurden mehrere Alternativen entworfen. Die momentan wohl wichtigsten sind die XML-Schemata, die u.a. eine XML-Syntax besitzen und komplexe Typdefinitionen unterstützen. Allerdings sollen auf die XML-Schemata hier nicht weiter eingegangen werden. Für nähere Informationen lohnt sich ein Besuch auf den entsprechenden Web-Seiten des W3C [ W3C04e].
Obwohl es sich bei XML-Dokumenten um reine Daten handelt, gibt es Methoden um solche Dokumente darzustellen. Dafür sind sogenannte Style Sheets - XML Style Sheets (XSL) oder Cascading Style Sheets (CSS) - verantwortlich. Hierbei handelt es sich um Dokumente, welche Formatierungsanweisungen und Regeln, wann diese ausgeführt werden sollen, enthalten. Dadurch lassen sich beispielsweise XML-Dokumente problemlos in andere Dokumentformate transformieren. Am häufigsten wird zur Zeit wohl die Transformation von XML-Dokumenten mittels XSLT (XSL Transformation) in HTML-Seiten angewandt.
Weiterführende Informationen rund um das Thema XML erhält man u.a. ebenfalls direkt beim W3C [ W3C04b].