
XML - Extensible Markup
Language
XML ist eine vereinfachte Form von SGML
(Standard Generalized Markup Language) . So wie HTML mit
SGML definiert ist, so kann man mit XML eigene Markup-Sprachen
oder auch eigene Erweiterungen von HTML bzw. XHTML (Extensible
Markup Language) mit eigenen Tags für bestimmte
Elemente mit bestimmten logischen Bedeutungen definieren. Die mit XML definierten Markup-Sprachen
werden als XML-Anwendungen bezeichnet. Die Syntax, Struktur
und Bedeutung der Tags wird für jede XML-Anwendung
mit einer DTD oder einem Schema definiert. Die Verarbeitung kann mit XML-Parsern mit DOM oder SAX erfolgen.
Wie die Elemente sichtbar dargestellt werden sollen,
kann mit XSL oder CSS definiert
werden. XML-Dokumente können auch Hypertext-Links enthalten, entweder wie in
HTML oder in der Form von XLink oder XPointer.
XML-Anwendungen eignen sich einerseits für die Darstellung in Web-Browsern - also als Ersatz oder Ergänzung
von HTML - und andererseits für die Verarbeitung mit EDV-Programmen
(z.B. in der Textverarbeitung, Tabellenkalkulation, Datenbanken, kommerziellen
Anwendungen u.a.) und als Austauschformat zwischen solchen Programmen
- also als Ersatz für RTF, CSV und EDI.
XML ist eine Metasprache zur Definition von Markup-Sprachen. So wie HTML mit SGML definiert ist, so kann man mit XML eigene Markup-Sprachen definieren, und künftige Versionen
von HTML werden ebenfalls mit XML definiert werden (XHTML). So wie HTML festgelegt und normiert ist und daher
für den weltweiten Austausch und die Übertragung
und Verwendung von Web-Pages zwischen vielen verschiedenen
Web-Servern und Web-Browsern geeignet ist, so kann
man mit XML eigene Datei-Strukturen für verschiedene
Zwecke definieren und normieren, die dann ebenfalls
von vielen Personen mit vielen verschiedenen Programmen
und auf vielen verschiedenen Rechnern verwendet werden
können. Mit der Hilfe von Style-Sheets können XML-Dokumente außerdem ebenfalls,
so wie HTML-Files, von Web-Browsern dargestellt und ausgedruckt werden. Wofür kann man nun solche mit XML definierte Markup-Sprachen,
sogenannte "XML-Applikationen", verwenden? Welchen Zweck kann
es haben, mit XML solche Sprachen festzulegen und zu normieren?
Welche Vorteile haben solche XML-Anwendungen gegenüber
HTML oder anderen Datei-Formaten?
-
Mit XML kann man die logische
Bedeutung von Daten, Informationen und Texten
definieren - ähnlich
wie die Tabellen- und Spalten-Bezeichnungen in Datenbanken
und Tabellenkalkulationen.
-
XML ermöglicht im Gegensatz zu HTML die
Definition eigener oder zusätzlicher "Befehle" (Tags)
- ähnlich wie bei der Definition von Macros
in der Textverarbeitung
-
XML-Applikationen eignen sich
als Plattform- und Software-unabhängiges Austausch-Format
für Daten zwischen verschiedenen Programmen
und Rechnern - ähnlich wie RTF für Texte,
CVS für Tabellen, EDI für kommerzielle
Anwendungen - aber in einem einheitlichen, allgemein
verwendbaren, Hersteller-unabhängigen Format.
Außerdem ist die Syntax von XML so streng festgelegt,
daß XML-Anwendungen wesentlich einfacher, bequemer
und effizienter von Programmen weiter verarbeitet werden
können als HTML-Files.
Markup und Darstellung Die HTML-Befehle beschreiben
eigentlich nur, in welcher Art und Weise die Textteile
strukturiert werden sollen (Überschrift, Absatz,
Liste, Tabelle, Normalschrift, Fettschrift usw.).
Beispiel: Der folgende HTML-Code
<p>
Stefan<b>Reiser</b>
<br>
Testergasse 47
<br>
D-1111 Teststadt
<br>
Geb. : 22 Juni 1968</p>
bewirkt eine Darstellung wie
Stefan Reiser
Testergasse 47
D-1111 Teststadt
Geb. : 22 Juni 1968 Mit XML kann man Tags definieren, die die Bedeutung
der Informationen angeben. Mit einer geeigneten DTD kann die obige Information also in einem XML-Dokument in
der folgenden Form enthalten sein:
<person id="p4681" >
<vorname>Stefan</vorname>
<zuname>Reiser</zuname>
<adresse>Testergasse 47 </adresse>
<plz>D-1111</plz>
<ort>Teststadt</ort>
<geburtstag>
<tag>22</tag>
<monat>Juni</monat>
<jahr>1968</jahr>
</geburtstag>
</person> Mit einem geeigneten Style-Sheet bewirkt das
XML-Dokument genau die selbe Darstellung wie das obige HTML-Dokument:
Stefan Reiser
Testergasse 47
D-1111 Teststadt
Geb. : 22 Juni 1968 Mit einem anderen Style-Sheet kann dasselbe XML-Dokument aber
auch in jeder beliebigen Art dargestellt werden.
Verarbeitung in Programmen XML-Dokumente eignen sich nicht nur für die Darstellung in Web-Browsern
und das Ausdrucken auf Papier, sondern auch für die weitere Verarbeitung
in Programmen, in denen die logische Bedeutung der Informationen eine
Rolle spielt.
Beispiel: Eine Suche nach dem Wort "März" innerhalb von Absätzen <p> in
HTML-Files der obigen Struktur würde nicht nur die Personen liefern,
die im März geboren sind, sondern auch den Rektor mit dem Namen
Leopold März sowie alle Personen, die in der Märzstraße
wohnen. Eine Suche nach dem Wort "März" innerhalb der in den XML-Files
mit <geburtstag> bezeichneten Elemente würde hingegen wirklich
nur die Personen liefern, die in diesem Monat Geburtstag haben. Außerdem kann man die in den XML-Files beschriebenen
Personen leicht nach den einzelnen Datenfeldern sortieren, also z.B.
nach der Postleitzahl oder nach dem Geburtsjahr, oder das Durchschnittsalter
berechnen oder andere Verarbeitungen der Daten vornehmen.
Start- und End-Tags Die meisten Befehle (Tags) in SGML- und XML-Anwendungen - wie auch
in HTML - treten paarweise als Start- und End-Tags auf und geben an,
welche Bedeutung der dazwischen liegende (eventuell durch weitere Tags
unterteilte) Text hat:
<xxx> ... Text ... </xxx>
oder
<xxx yyy="zzz" ... > ... Text ... </xxx>
In HTML ist der End-Tag in vielen Fällen optional, d.h. er darf
weggelassen werden. Der Web-Browser kann dann auf Grund der in der
HTML-Norm festgelegten Bedeutung der HTML-Tags "erraten", an welcher
Stelle er sich den nicht angegebenen End-Tag "dazudenken" muss.
Beispiel: Der HTML-Tag <p> beginnt einen neuen
Absatz. Der End-Tag </p> muss nicht angegeben
werden, denn immer wenn ein neuer Absatz mit <p> oder
eine Überschrift mit <h1> bis <h6> oder
eine Liste mit <ul> oder <ol> oder <dl> beginnt,
bedeutet das automatisch das Ende des vorherigen
Absatzes. Bei XML-Anwendungen müssen (im Gegensatz
zu HTML) die End-Tags immer angegeben werden
und dürfen niemals weggelassen werden:
Beispiel: Richtig ist
<p> ... Text ... </p><p> ... Text ... </p>
Nicht richtig wäre
<p> ... falsch ... <p> ... falsch ...
Diese "strengere" Regel hat unter anderem die folgenden Gründe:
Im Gegensatz zur festgelegten HTML-Norm soll der Anwender bei XML-Applikationen
die Möglichkeit haben, nachträglich zusätzliche Tags
in der DTD oder im Schema zu definieren, und daher können die
Verarbeitungsprogramme nicht so wie der HTML-Browser immer nach denselben
Regeln die fehlenden End-Tags selbst korrigieren. Außerdem sind
die verarbeitenden Programme viel einfacher zu schreiben und können
viel effizienter ablaufen, wenn sie sich darauf verlassen können,
daß das XML-File syntaktisch richtig ist, und keine automatische
Fehlerkorrektur programmiert werden muss.
Einzelne Elemente ohne End-Tag In HTML gibt es Tags, zu denen
es keinen End-Tag gibt, weil sie nicht die Eigenschaften
eines Textbereiches definieren sondern einzelne,
selbständige Elemente
darstellen. Beispiele sind <br> für einen
Zeilenwechsel, <hr> für eine Trennlinie
oder <img> für ein Bild. Im XML müssen alle Tags der Form <xxx> immer
einen End-Tag der Form </xxx> haben. Die XML-Tags,
zu denen es keinen End-Tag gibt, müssen zur Unterscheidung
davon in der Form
<xxx />
oder
<xxx yyy="zzz" ... />
gechrieben werden. Nicht erlaubt ist also
<p> ... <br> ... falsch ... <br> ... falsch ... </p>
sondern man muss stattdessen richtig
<p> ... <br /> ... <br /> ... </p>
schreiben oder eventuell auch
<p> ... <br></br> ... <br></br> ... </p>
Der Grund für diese "strengere" Regel liegt ebenfalls in einer
Vereinfachung der Programmierung: Das Verarbeitungsprogramm muss nicht
darauf "warten", welche End-Tags eventuell noch kommen werden, sondern
weiß immer sofort, ob es sich um ein fertiges Einzel-Element
oder um den Start-Tag eines längeren Elementes handelt.
Groß- und Kleinschreibung Im Gegensatz zu HTML ist bei
XML die Groß-
und Kleinschreibung nicht egal: <xxx> und <Xxx> und <XXX> sind
voneinander verschiedene Befehle. Wenn ein Befehl als <xxx> definiert ist, dann
darf man nicht stattdessen <XXX> schreiben,
und auch eine Kombination wie
<XXX> ... falsch ... </xxx>
wäre nicht erlaubt.
Parameter (Attribute) Auch die Regeln dafür, wann die Werte von "Attributen" (also
Parametern innerhalb von Befehlen) zwischen Quotes-Zeichen eingeschlossen
werden müssen, sind bei XML strenger als das, was manche Web-Browser
in HTML zulassen. Alle Attribut-Werte sollen immer in
Quotes-Zeichen eingeschlossen werden. Dabei dürfen entweder das
ASCII-Zeichen Double-Quotes " oder das ASCII-Zeichen Apostroph ' verwendet
werden (natürlich nur paarweise, nicht vermischt), aber nicht
die ähnlich aussehenden typographischen Anführungszeichen
oder Akzentzeichen. Richtig sind also nur die folgenden beiden Varianten:
<xxx yyy="zzz" ... >
<xxx yyy='zzz' ... >
Entities Wie in SGML (und daher auch in HTML) kann man auch
in XML Entities definieren, bei denen einem Namen
ein bestimmter Text zugeordnet wird. Diese Entities
kann man dann überall im Text und auch in Parametern
von Befehlen in der Form
&name;
verwenden. Typische Beispiele sind:
< für das Kleiner-Zeichen <
> für das Größer-Zeichen >
& für das Und-Zeichen & Entities können aber nicht nur einzelne Zeichen sondern auch
längere Textteile enthalten, wie die "Abkürzungen" in der
Textverarbeitung.
Schachtelung von Tags In XML müsssen Start- und End-Tags immer richtig
geschachtelt werden.
Beispiel: Richtig sind
<person> <vorname> ... </vorname> ... </person>
<vorname> ... </vorname> <zuname> ... </zuname>
Nicht erlaubt wären
<person> ... <vorname> ... </person> ... falsch ... </vorname>
<vorname> ... <zuname> ... falsch ... </vorname> ... </zuname>
Anmerkung: Diese Regeln
gelten an sich auch für HTML genauso
wie bei XML. Bei HTML können die Web-Browser aber auf Grund der
festgelegten Bedeutung der HTML-Tags versuchen, zu erraten, was der
Autor vermutlich gemeint hat, wenn er gegen diese Regel verstoßen
hat.
Beispiel: Bei einer (nicht erlaubten) Kombination
wie
<p> ... <em> ... </p> <p> ... </em> ... </p>
kann der Web-Browser möglicherweise erraten, welches Layout der
Autor damit erreichen wollte. Und wenn er es nicht richtig errät,
dann erscheint der Text zwar nicht in der richtigen Schriftart, aber
zumindest immer noch vollständig lesbar und in der richtigen Absatz-Struktur. Bei XML darf die Software nicht versuchen,
solche Fehler durch Rateversuche zu korrigieren, sondern muss die
Verarbeitung von fehlerhaften XML-Dokumenten immer
mit einer Fehlermeldung abbrechen. Ein Grund für diese "strengere" Regel ist, daß die
XML-Befehle nicht nur das Layout des Textes (wie in
HTML), sondern die Bedeutung der Textteile definieren,
und falsche Interpretationen der Befehle daher nicht
bloß zu unschönen, sondern zu logisch und
inhaltlich falschen Ergebnissen führen würden.
Beispiele: Wenn
ein Text-Abschnitt irrtümlich
in kursiver statt fetter Schrift dargestellt wird,
ist das für das Verstehen des Textes im allgemeinen
nicht so tragisch wie wenn der Name mit dem Geburtsort
oder der Einkaufspreis mit dem Verkaufspreis verwechselt
wird. Die XML-Tags dienen nicht nur
für die Interpretation
der sichtbar angezeigten Texte durch einen kritisch
denkenden Menschen, sondern auch für die Weiterverarbeitung
der Informationen durch automatisch laufende Computer-Programme.
Deshalb müssen die Syntax-Regeln von XML strenger
eingehalten werden als die von HTML.
Unter XML-Anwendung oder XML-Applikation versteht
man die Festlegung (Normierung) von XML-Befehlen
für eine Klasse von XML-Dokumenten gleicher Struktur,
also für einen bestimmten Zweck. Das Format und die Struktur der
XML-Files sowie die Eigenschaften und die Schachtelung
der darin vorkommenden Elemente (XML-Befehle, Tags,
Entities) werden für
eine XML-Anwendung mit einer DTD oder
einem Schema definiert
- so wie man bei EDI mit UNSM und MIG das Format und die Struktur der Nachrichten
und die Bedeutung der darin enthaltenen Daten für
einen bestimmten Nachrichtentyp definieren kann.
Beispiele für XML-Anwendungen
-
DocBook (für gedruckte Texte und Bücher),
-
WML (für
Online-Informationen auf kleinen Displays wie
z.B. Handys),
-
XHTML (für Online-Informationen
auf großen Displays wie z.B. PCs und Fernsehschirmen),
-
MathML (für
mathematische Formeln),
-
CML (für
chemische Formeln),
-
SVG (für
Vektor-Graphiken),
-
u.v.a.
Definition von XML-Anwendungen
- DTD (Document Type Definition)
-
Eine DTD beschreibt die Struktur einer Klasse
von SGML- oder XML-Dokumenten, also einer SGML- oder XML-Applikation, mit Hilfe eines Text-Files, das alle
Syntax-Regeln in einem von SGML vorgeschriebenen Format enthält. Beispielsweise ist
jede HTML-Version durch eine
DTD definiert. Eine Alternative dazu ist die Definition
mit Hilfe eines Schemas.
- Schema (Mehrzahl: Schemata)
-
Ein Schema beschreibt die Struktur einer Klasse
von XML-Dokumenten, also einer XML-Applikation, ähnlich wie eine DTD, jedoch nicht
in der DTD-Syntax sondern in einer eigenen XML-Syntax.
Verarbeitung von XML-Anwendungen
- XML-Parser
-
Ein XML-Parser ist ein Programm, das ein XML-File liest und den Inhalt in der Form von DOM oder SAX liefert.
Ein validierender Parser überprüft zusätzlich
die Richtigkeit der Daten an Hand der DTD oder
des Schemas.
- DOM (Document Object Model)
-
DOM ist ein Objektmodell, es beschreibt die in
einem Dokument einer bestimmten XML-Anwendung enthaltenen
Elemente als Objekte, für die Verarbeitung
mit einer objekt-orientierten Programmiersprache
wie z.B. Java. DOM liefert
eine komplette Baumstruktur aller Objekte eines
XML-Dokuments und eignet sich daher nicht für
extrem große XML-Files.
- SAX (Simple API for XML)
-
SAX ist eine Programm-Schnittstelle (Application
Programmers Interface API) für die Verarbeitung
einer Klasse von XML-Dokumenten, also einer XML-Applikation, mit Hilfe einer objekt-orientierten
Programmiersprache wie z.B. Java. SAX liefert ein XML-Element nach dem anderen in einem
Eingabestrom und eignet sich daher auch für
sehr große XML-Files.
Style-Sheets
- CSS (Casading Style Sheets)
-
CSS ist ein vom W3-Consortium definiertes,
einfaches Format für Style-Sheets für
die Darstellung von HTML-
und XML-Dokumenten.
- DSSSL (Document Style Semantics
Specification Language)
-
DSSL ist eine sehr mächtige und daher auch
sehr komplexe Sprache für die Spezifikation
der Darstellung von SGML-Dokumenten.
- XSL (Extensible Style Language)
-
Mit XSL wird ein Style-Sheet definiert,
das angibt, wie der in einem XML-Dokument definierte
Inhalt vom Web-Browser oder
von anderen Programmen dargestellt werden soll.
XSL ist mächtiger als CSS und DHTML:
-
Mit XSLT (Transformation)
kann man aus einem XML-File ein anderes
XML-File machen, also z.B. bestimmte Elemente
weglassen, die Elemente in anderen Reihenfolgen
anordnen und zusätzliche Elemente hinzufügen,
-
und mit XSL-FO (Formatierung)
kann man das Layout der Darstellung für
die Elemente festlegen.
Darstellung in Web-Browsern Künftige Web-Browser werden
XML-Files direkt am Bildschirm darstellen und am Drucker
ausdrucken können, wenn mit einem Style-Sheet definiert
ist, wie die einzelnen XML-Elemente dargestellt werden
sollen. Erste Ansätze dafür gibt es im MS
Internet Explorer Version 5 (mit einer Vor-Version
von XSL Style-Sheets oder
mit CSS) sowie in Netscape
Version 5 und Mozilla (mit CSS Style-Sheets).
Zu diesem Zweck werden am Web-Server sowohl
das XML-File mit dem Inhalt der Information als auch
das XSL- oder CSS-File mit den Layout-Angaben abgespeichert
- so ähnlich wie im Textsatzsystem LaTeX, wo
der Inhalt im TEX-File und das Layout im STY-File
definiert werden, und so wie dort hat man auch hier
die Möglichkeit, den selben Inhalt wahlweise
in verschiedenen Layouts darzustellen, z.B. für
große und kleine Bildschirme und für Schwarz-weiß-
und Farb-Drucker. Wenn
man die Informationen für alle Benutzer
verfügbar machen will, also auch für diejenigen,
die noch ältere Web-Browser verwenden, muss man
sie am Web-Server (zusätzlich) im normalen HTML-Format
zur Verfügung stellen - am besten mit einem Umwandlungsprogramm,
das die XML-Files mit der Hilfe der Style-Files automatisch
in Standard-HTML umwandelt. Und wenn die Informationen
auch mit Handy-Telefonen und dergleichen erreichbar
sein sollen, dann gleich auch noch im WML-Format. Es gibt auch Umwandlungsprogramme,
die "lockere" HTML-Files
in "strenge" XHTML-Files umwandeln, damit diese mit XML-Software weiter
verarbeitet oder auch durch zusätzliche Tags zu speziellen
XML-Anwendungen erweitert werden können.

|