XML
aus www.iwiki.de, der freien Wissensdatenbank
XML (Extensible Markup Language) ist eine Meta-Sprache, mit der es möglich ist, Auszeichnungssprachen für Dokumente zu erzeugen. Genau genommen ist XML selbst keine Sprache, es stellt vielmehr eine strenge Formatspezifikation zur Strukturierung von Inhalten und Ableitung von XML-basierten Sprachen dar und ist Basisdefinition einer Technologie-Gattung.
Eine bekannte Auszeichnungssprache für das WWW ist HTML. HTML kann in XML formuliert werden. Im Unterschied zu HTML sind bei XML die Auszeichnungselemente (tags) jedoch noch nicht festgelegt. Weiterhin enthält XML keinerlei Möglichkeiten auszudrücken, wie XML-Daten am Bildschirm angezeigt, oder auf Papier ausgedruckt werden sollen. Dies macht XML einerseits einfacher als HTML, die Visualisierung ist jedoch dafür um einiges schwieriger.
Zentrales Anliegen für den Einsatz von XML ist es, Inhalte maschinell zugänglich, auffindbar und manipulierbar zu machen. Um das zu erreichen, wird mit XML eine Möglichkeit gegeben, Inhalte über kennzeichnende Markierungen in funktionale Blöcke zu untergliedern. Diese Auszeichnungen werden tags genannt. Tags werden durch spitze Klammern gekennzeichnet, z.B.: <kapitel>. Wird von der Gesamtheit der Tags gesprochen, spricht man von Markup.
XML ist keine Markup-Sprache in dem Sinn, dass die Menge der Auszeichnungselemente (Tags) festgelegt ist, wie z.B. bei HTML. Die Namen der Tags können von XML-AnwenderInnen frei erfunden werden. Die tag-Namen können so gewählt werden, daß sie die Bedeutung des Inhalts ausdrücken. Ein tag <buchtitel> erklärt sich selbst. Bei bedeutungstragenden tags spricht man von semantischem Markup.
Somit ist XML eine erweiterbare Auszeichnungssprache, woraus das Kürzel XML - eXtensible Markup Language - seine Begründung erhält. Wer XML benutzt muß lediglich einige Regeln befolgen, die das WWW-Konsortium festgelegt hat.
Inhaltsverzeichnis |
Vorteile von XML
- Lesbar für Mensch und Maschine
- Einfacher Datenaustausch
- Trennung von Daten und Weiterverarbeitung
- Plattformunabhängig
- Umfangreiche Weiterverarbeitungsmöglichkeiten
- Weite Verbreitung
- Einfach zu erlernen
- Abbildung auch von komplexen Datenstrukturen
- In XML können Namensräume (namespaces) vergeben werden die das verschachteln mehrerer verschiedener XML-Dokumente ermöglichen
Grundsätze von XML-Dokumenten
Wohlgeformtheit
Jedes XML-Dokument muß die XML-Spezifikationen erfüllen, die vom W3C festgelegt wurden. Dieser Grundsatz wird Wohlgeformtheit oder auch „well-formed“ genannt. Durch diese festgelegten Regeln wird gewährleistet, daß ein XML-Dokument von allen Parsern gleich verarbeitet werden kann. Allerdings dürfen die XML-Parser auf keinen Fall versuchen ein nicht wohlgeformtes Dokument zu reparieren oder die Fehler zu ignorieren.[1]
Beispiele für die Wohlgeformtheit
- Zu jedem Start-Tag existiert genau ein Ende-Tag, bei leeren Elementen können diese zu einem Tag zusammenfallen (<Tag/>)
- Korrekte Elementschachtelung, d.h. Elemente überlappen einander nicht
- Alle Attributwerte stehen in einfachen oder doppelten Anführungszeichen
- Kein Start-Tag (oder Tag der ein leeres Element einleitet) enthält zwei oder mehr Attribute desselben Namens
- Die Sonderzeichen < und & treten nicht innerhalb von Elementinhalten oder Attributwerten auf (lässt sich dies nicht vermeiden, so müssen diese Zeichen maskiert werden, indem man z.B. an das "&"-Zeichen die Parameter "amp;" anhängt)
Gültigkeit
Um XML-Dokumente gemäß einer Interpretationsanweisung interpretieren zu können, muss die Dokumentenstruktur festgelegt werden. Die Definition der Dokumentenstruktur wird mithilfe von DTDs oder der XML-Schemas beschrieben. Die Prüfung ob XML-Dokumente gültig sind nennt man Validierung und wird von einem XML-Prozessor durchgeführt. Er kontrolliert, ob die Regeln, die in den DTDs/XML-Schemas festgelegt wurden, eingehalten werden.[2]
Aufbau von XML Dokumenten
Prolog
Der Kopf eines XML-Dokuments enthält für den Parser die Verarbeitungsinformation (Processing Instructions). Diese Verarbeitungsinformationen müssen zwingend in der ersten Zeile eines XML-Dokuments angegeben werden und umfassen folgende Parameter:
| Parameter | Erklärung |
| version | legt die verwendete XML-Version fest (1.0 oder 1.1) |
| encoding (optional) | legt den verwendeten Zeichensatz fest |
| standalone (optional | legt fest, ob das Dokument weitere Daten benötigt (yes oder no) |
Gültigkeitsprüfung
Optional besteht für XML-Dokumente die Möglichkeit als gültig gekennzeichnet zu werden. Dies ist zwar nicht zwingend vorgeschrieben, allerdings macht es keinen Sinn ein XML-Formate ohne Gültigkeitsregeln einzuführen, da sonst kein festes Regelwerk für den Inhalt der XML-Datei existiert. XML legt zwar die allgemeine Syntax für XML-basierte Sprachen fest, aber macht keinerlei Aussage über den Inhalt, die Häufigkeit und die Reihenfolge der einzelnen Elemente, da diese ja frei definiert werden können und jede Sprache seine eigenen Elemente besitzt. Um nun die Struktur für ein XML-Dokument festzulegen benötigt man eine DTD oder ein XML-Schema.
DTD (Document Type Definition)
Die DTD beschreibt für eine XML-Datei, welche Tags in welcher Form verwendet werden dürfen. Die DTD Datei ist selbst keine XML-Datei.
Bedeutung der Zeichen
| ? | einmal oder keinmal |
| + | einmal oder mehrmal |
| * | keinmal, einmal oder mehrmal |
| k.A. | muss einmal |
| , | Sequenz (gefolgt von) |
| | | Alternative (oder) |
| #PCDATA | Text |
Alle verwendeten Elemente müssen in einer DTD definiert werden.
XML Schema
Neben der DTD gibt es noch die Möglichkeit eine XML-Datei durch ein XML-Schema validieren zulassen. Prinzipiell dienen XML-Schema und DTD dem gleichen Zweck, ihre Syntax ist lediglich unterschiedlich. Zwei hauptsächliche Gründe trugen zur Einführung von XML-Schemata bei:
- Die Schwächen der DTD sollten beseitigt werden
- Vorteile von XML-Dateien sollten auch bei der Strukturbeschreibung genutzt werden können
In der Anwendung weisen DTDs einige Schwächen auf, beispielsweise können Elemente die Daten enthalten sollen nur sehr ungenau beschränkt werden. Es können keine genauen Datentypen für diese Elemente, wie beispielsweise nur Gleitkommazahlen, nur Ziffern oder nur Buchstaben angegeben werden. XML-Schemata sollten diese Angaben ermöglichen und somit eine wesentlich restriktivere Regelerstellung ermöglichen. Des weiteren sind XML-Schemata selbst XML-Dateien, somit können im Gegensatz zu den DTDs die Vorteile von XML-Dateien genutzt werden.
Vermutlich werden DTDs irgendwann vollständig von XML-Schemata abgelöst. Allerdings sind XML-Schemata durch ihre erweiterten Möglichkeiten wesentlich komplexer und nicht so einfach ohne Hilfsmittel auszuwerten. Neben XML Schema existieren weitere Ansätze zur Definition von XML-Strukturen. Ein konkretes XML-Schema wird auch als eine XSD (XML-Schema-Definition) bezeichnet und hat üblicherweise die Dateiendung ".xsd".
Daten
Nach dem Prolog und der Gültigkeitsprüfung kommt der eigentliche Datenteil eines XML-Dokuments. Existiert zu dem XML-Dokument eine DTD oder ein XML-Schema sind nur die darin beschriebenen Elemente zugelassen. Zusätzlich ist der Grundsatz der Wohlgeformtheit zu beachten.
XPath
XPath (XML Path Language) ist eine Abfrage-Sprache, um Teile eines XML-Dokumentes zu adressieren. XPath 1.0 bildet die Grundlage der in XSLT benutzten Patterns sowie von XPOINTER. Die nächste Version, XPath 2.0, wird zudem die Grundlage der XML-Abfragesprache Xquery bilden.
Beispiel:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<dok>
<!-- ein XML-Dokument -->
<kap title="Nettes Dokument">
<pa>Ein Absatz</pa>
<pa>Noch ein Absatz</pa>
<pa>Und noch Absatz</pa>
<pa>Nett, oder?</pa>
</kap>
<kap title="Zweites Kapitel">
<pa>Ein Absatz</pa>
</kap>
</dok>
Beispiele für XPath-Ausdrücke: /dok selektiert das Wurzel dok-Element
/* selektiert jedes Wurzel-Element
/dok/kap selektiert sämtliche kap-Elemente innerhalb eines dok Elements
/dok/kap[1] selektiert das erste kap-Elemente innerhalb eines dok Elements
//pa selektiert sämtliche pa-Elemente auf allen Ebenen (Vorsicht: langsam)
//kap[@title="Nettes Dokument"]/pa selektiert sämtliche Absätze des Kapitels "Nettes Dokument"
Quellen
- 1, 2: Vgl. Trieloff, Lars: Einführung in die Erstellung und Publikation von DocBook-Dokumenten, 2002
- Dirk Ammelburger: XML. Grundlagen der Sprache und Anwendungen in der Praxis , Hanser Fachbuchverlag 2003, ISBN 3446225625
- Günter Pomanska: Grundkurs Web-Programmierung, Vieweg Verlag 2005, ISBN 3528058951


