Websiteentwicklung: XML: Syntax
Aus Wikibooks
Inhaltsverzeichnis |
[Bearbeiten] Wohlgeformte Dokumente
Ein XML-Dokument hat eine logische und eine physische Struktur. Beide sind durch XML festgelegt.
XML kennt folgende Sprachelemente für die physische Struktur:
- XML-Deklaration
- Entitäten
XML kennt folgende Sprachelemente für die logische Struktur:
- Verarbeitungsanweisungen
- Elemente (sogenannte Auszeichner)
- Attribute
- Kommentare
- Text
Dokumente, die gemäß XML korrekt aufgebaut sind, werden als wohlgeformt bezeichnet. Dafür sind sämtliche von XML spezifizierten Regeln sowohl die physische als auch die logische Struktur betreffend einzuhalten.
Als Analogie könnte man sagen, XML spezifiziert, wie Daten aufgebaut sein können, so wie man sagen könnte, natürliche Sprache besteht aus Vokalen, Konsonanten und Worten verschiedener Wortarten. Darüber, welche Wortarten und welchen Wortschatz es gibt, entscheidet die jeweilige Sprache. Ebenso macht XML keine Aussage darüber, welche Elemente und Attribute es gibt, sondern lediglich, dass es sie gibt.
Es ist die Aufgabe gültiger Dokumente, einer Spezifikation über Elemente und Attribute zu folgen.
Beispiel für ein wohl-geformtes, aber nicht gültiges Dokument:
<?xml version="1.0"?>
<bla>
<blubb>qrtuz</blubb>
</bla>
Dieses Dokument ist zwar wohl-geformt, es besitzt aber keine semantisch wertvolle Information, da kein bekanntes Programm mit bla und blubb wirklich etwas anzufangen weiß.
[Bearbeiten] Gültige Dokumente
Es gibt Möglichkeiten, der logischen Struktur des Dokuments zusätzliche Regeln aufzuerlegen. Im Wesentlichen definieren diese Regeln den Wortschatz und die Struktur von Elementen und Attributen sowie verwendbare Datentypen. Die Definition einer solchen logischen Struktur nennt sich Schema. Ein Dokument, dass einem Schema folgt, heißt gültig bezüglich des angewandten Schemas.
Die bekanntesten Schemata sind:
- Dokumententypdefinition (DTD)
- XML-Schema
- RelaxNG-Schema
Dokumente ohne Schema, wie auch Dokumente, die gegen die Regeln des Schemas verstoßen werden als ungültige bezeichnet.
Meist wird ein Schema nicht für ein einzelnes Dokument, sondern eine ganze Reihe von Dokumenten spezifiziert. Um bei der Sprachanalogie zu bleiben, könnte man sagen, dass ein Schema wie eine konkrete akustische Sprache ist, z.B. Deutsch oder Englisch. So wie eine Sprache Wortschatz, Wortarten und Satzbau für eine natürliche Sprache definiert, definiert ein Schema die Namen der Elemente und Attribute als Wortschatz und Datentypen und Strukturen als Wortarten und Satzbau.
Das Schema hat letztendlich zur Aufgabe, sicherzustellen, dass das Dokument Wortschatz, Datentypen und Struktur verwendet, die von ein oder mehreren Programmen verstanden werden.
Beispiel für ein gültiges Dokument (XHTML):
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Ein XHTML-Dokument</title>
</head>
<body>
<h1>Ein XHTML-Dokument</h1>
<p>
Das ist ein XHTML-Dokument.
</p>
</body>
</html>
Dieses Dokument ist gültig. Es handelt sich um ein XHTML-Dokument. Weil XHTML lediglich ein Schema für XML ist, sind sämtliche XHTML-Dokumente gleichzeitig XML-Dokumente, sie sind also eine Untermenge von XML. Um ein XHTML-Dokument zu sein, muss ein Dokument in allererster Linie erstmal ein XML-Dokument sein. Es muss ein wohlgeformtes Dokument sein, das zusätzlich auch noch den Regeln eines XHTML-Schemas folgt.
Dieses Dokument besitzt nun auch semantisch wertvolle Informationen. Es ist von jedem Progamm, das XHTML vesteht, entsprechend darstellbar. Das <title/>-Element enthält den Dokumenttitel, der meist als Fenster- oder Tab-Titel im Browser dargestellt wird. <h1/> ist für Überschriften. Jedes der verwendeten Elemente ist durch XHTML definiert.
XML definiert lediglich, wie Sprachen für Dokumente funktionieren können. XML ist eigentlich keine Auszeichnungssprache, sondern nur ein Konzept für Auszeichnungssprachen. Dabei kann man je nach Anwendungsfall entscheiden, ob man auf eine bestehende Auszeichnungssprache zurückgreift, z.B. XHTML für Hypertext oder SVG für Vektorgrafik, oder selbst eine neue Auszeichnungssprache nach den eigenen Wünschen definiert. Auch die Kombination, Abwandlung oder Erweiterung bestehender Auszeichnungssprachen ist mit XML möglich.
Theoretisch wäre die Verarbeitung von Dokumenten auch ohne ein festgeschriebenes, computerverarbeitbares Schema möglich. Es ist jedoch sehr praktisch, prüfen zu können, ob ein XML-Dokument von der gewünschten Zielsoftware verarbeitbar ist, indem man es auf die Gültigkeit gemäß dem passenden Schema hin prüft.
[Bearbeiten] Bekannte Schemata für gültige Dokumente
Das wohl bekannteste Schema für gültige Dokumente ist XHTML, das als Nachfolger von HTML für die Entwicklung von normalen Webseiten bestimmt ist. Weitere Schemata sind SVG für Vektorgrafik, DocBook für technische Dokumentation, XForms für Formulare, MathML für mathematische Formeln, SMIL für Multimedia. Es gibt unzählige Schemata für die verschiedensten Anwendungsbereiche.
[Bearbeiten] Hinweise zum Sprachgebrauch
[Bearbeiten] Fehlerhaftes XML-Dokument
Ein Dokument, das gegen diese Regeln verstößt, ist nicht wohl-geformt und damit kein XML-Dokument. Die Bezeichnung "fehlerhaftes XML-Dokument" ist gemäß der XML-Spezifikation also ein Oxymoron, da der Begriff XML-Dokument definitionsgemäß eigentlich impliziert, dass das Dokument korrekt ist. In Bezug auf die Wohlgeformtheit verwenden XML-Entwickler daher ausschließlich die Bezeichnung "nicht-wohlgeformtes Dokument" oder "fehlerhaftes Dokument", jedoch nie "fehlerhaftes XML-Dokument".
[Bearbeiten] Gültiges Dokument
Lediglich die Dokumenttypdefinition ist Bestandteil der XML-Spezifikation. Sämtliche anderen Möglichkeiten, Schemata zu spezifizieren, sind zusätzliche Spezifikationen. Dementsprechend bezieht sich die Bezeichnung "gültiges XML-Dokument" streng genommen lediglich auf XML-Dokumente, die gemäß einer Dokumenttypdefinition gültig sind. Der allgemeine Sprachgebrauch verwendet "gültiges XML-Dokument" jedoch als Kurzform für "wohl-geformtes XML-Dokument, das nach einem Schema gültig ist".

