XML-basierte Technologien Sommersemester 2004-04-29
Inhaltsverzeichnis:
1. XML-Grundlagen
1.1. Was heißt XML?
1.2. Der Grundgedanke von XML
1.3. Der Aufbau von XML
1.4. Das Erstellen und Abspeichern von XML-Dokumenten
1.5. Die Syntax von XML
1.5.1. Die Grammatik von XML
1.5.2. Reservierte Zeichen und Kommentare
1.5.3. Tags und Elemente
1.5.4. Attribute
1.6. Wohlgeformtheit
1.7. Literaturhinweise
1.8. Impressum
1. XML-Grundlagen
1.1. Was heißt XML?
XML bedeutet Extensible Markup Language (Übersetzt: Erweiterbare Auszeichnungssprache).
1. 2. Der Grundgedanke von
XML
1985 wurde die Metaauszeichnungssprache SGML (Standard Generalized Markup Language) für die Inhaltsstruktur von Dokumenten in der ISO-Norm 8879 als Standard fest gelegt. Diese Sprache ist sehr umfangreich mit 500 Seiten Dokumentation und daher für eine einfache Verwendung nicht geeignet. Das W3C (World Wide Web Consortium, ein Zusammenschluss von Industrie- und Dienstleistungsunternehmen, Forschungseinrichtungen, Bildungseinrichtungen usw.) verabschiedete im Februar 1998 darauf hin den Standard XML in der Version 1.0 als eine stark vereinfachte Teilmenge von SGML mit einer Dokumentation von nur 35 Seiten. Seit 2004 gibt es die nächste Version 1.1.
XML dient hauptsächlich zum universellen Datenaustausch.
Von XML wurden für spezielle Anwendungen weitere spezielle Sprachen abgeleitet: z. B.
- XHTML: Extensible Hypertext Markup Language (Neuformulierung von HTML 4.0 auf der Basis von XML)
- MathML: Mathematikal Markup Language (Sprache zur Darstellung mathematischer Strukturen)
- SVG: Scalable Vector Graphics (Sprache zur Definition von Grafikobjekten)
- WML: Wireless Markup Language (Sprache zum Übertragen von Daten über das WAP (z. B. für portable Hochfrequenzfernsprechgeräte))
- CML: Chemical Markup Language (Informationen über chemische Strukturen)
- XDNL: Dokumentennavigationssprache
1. 3. Der Aufbau von XML
In XML werden die Informationen über den Inhalt eines Dokumentes und über die Darstellung eines Dokumentes getrennt abgespeichert. XSL (Extensible Stylesheet Language, Übersetzt: Erweiterbare Seitenbeschreibungssprache) beschreibt, wie die XML-Daten dem Benutzer angezeigt werden sollen. Weiterhin enthält XSL die Transformationsstandards XSLT, XPath und XSL-FO mit welchen z. B. XML-Dokumente in andere XML-Dokumente oder in andere Textformate transformiert werden können. Der Inhalt des XML-Dokumentes ist eine Baumstruktur mit genau einem Wurzelelement und stellt die interne Struktur des Dokumentes dar. Mit XML erstellte Datenbanken lassen sich vielseitig verwenden. Mit den selben Daten (nur einmal ist deren Eingabe erforderlich) können z. B. Firmendaten verwaltet, diese auf eine monatlich erscheinende Informations-DVD gepresst, in Form von über das Internet oder über MHP basierende Onlineshops zur Verfügung gestellt oder auch die Erstellung eines Kataloges in Papierform oder als PDF-Datei, welche über das Internet herunter geladen oder als DVD-ROM zur Verfügung gestellt werden kann, heraus gebracht werden. Mit XSL-FO (Formatting Objects) kann beschrieben werden, wie die Daten gefiltert und auf dem entsprechenden Ausgabeformat ausgegeben werden sollen. Eine Webseite oder MHP-Applikation kann mit XML automatisiert gefüllt und aktualisiert werden.
1.4. Das Erstellen und
Abspeichern von XML-Dokumenten
XML-Dateien sind Klartextdateien und können mit jedem beliebigen Texteditor erstellt und mit beliebigen Programmen angezeigft werden. Einige Programme z. B. Programme für die Wiedergabe von Internetseiten haben zusätzlich einen XSLT-Prozessor, der es durch entsprechende Transformationen eine semantisch sinnvolle Anzeige ermöglicht, sofern ein Stylesheet (Übersetzt: Stildefinition) vorhanden ist. Programme ohne eingebauten XSLT-Processor zeigen den XML-Quelltext nur farbig an. Programme können ihre Daten auch als XML-Dokument ausgeben. Ein Parser ist eine Bibliothek, die der Anwendung hinzugefügt werden kann, um XML-Dateien leichter bearbeiten zu können. Es steht dem Programmierer frei, eine XML-Datei zeichenweise zu lesen und die Interpretation von Tags und Text selbst vorzunehmen. Die Abspeicherung von XML-Dokumenten erfolgt mit dem Suffix .xml, von XHTML-Dateien mit dem Suffix .html, von SVG-Dateien mit dem Suffix .svg und von XLST-Dateien mit dem Suffix .xsl.
1. 5. Die Syntax von XML
1. 5. 1. Die Grammatik von
XML
XML ist eine Dokumentenbeschreibungssprache. Es müssen die grammatischen Regeln exakt befolgt werden. Bei der Erstellung eines XML-Dokuments muss immer in der 1. Zeile
<?xml
version=1.1 encoding=ISO-8859-15 standalone=yes?>
stehen. Wir befassen uns nun zunächst mit dieser Zeile ausführlicher. Beim Schreiben dieser und auch aller weiterer Zeilen in XML muss exakt auf die Groß- und Kleinschreibung geachtet werden. Die Fragezeichen am Anfang und Ende der Zeile (hier handelt es sich um Trennzeichen) weisen das das XML-Dokument verarbeitende System an, dass es sich hier um eine PI (Processing Instruktion) handelt. Die Processing Instruction weist am Anfang der Zeile auf die gerade verwendete XML-Version (hier ist es die XML-Version 1.1) hin. Der mittlere Teil (hier encoding=ISO-8859-15 ) weist auf den im XML-Dokument verwendeten Zeichensatz hin. Hier ist es der Zeichensatz für Westeuropa und Latainamerika (Latein 9). Die Angabe des verwendeten Zeichensatzes ist unbedingt notwendig, damit im XML-Dokument auch die Umlaute und Sonderzeichen wie z. B. Ä, Ö, Ü, ä, ö, ü, ß und korrekt dargestellt werden. Fehlt diese Angabe, werden die Umlaute falsch oder gar nicht dargestellt. Für die verschiedenen Sprachen mit verschiedenen Umlauten oder gar anderen Zeichensätzen gibt es verschiedene ISO-Normen:
Tabelle 1:
|
Standart |
Zeichensatz |
|
ISO-8859-1 |
Westeuropa, Lateinamerika (Latein 1) |
|
ISO-8859-2 |
Osteuropa (Latein 2) |
|
ISO-8859-3 |
Südeuropa (Latein 3) |
|
ISO-8859-4 |
Skandinavien, Baltikum (Latein 4) |
|
ISO-8859-5 |
Kyrillisch |
|
ISO-8859-6 |
Arabisch |
|
ISO-8859-7 |
Griechisch |
|
ISO-8859-8 |
Hebräisch |
|
ISO-8859-9 |
Türkisch |
|
ISO-8859-10 |
Lappland, Eskimo |
|
ISO-8859-15 |
Westeuropa, Lateinamerika (Latin 9) |
|
EUC_JP |
Japanisch 1 |
|
Shift_JIS |
Japanisch 2 |
|
ISO-2022_JP |
Japanisch 3 |
Der dritte Teil der ersten Zeile zeigt an, ob bei der Wiedergabe des XML-Dokumentes auf eine andere außerhalb des XML-Dokuments liegende Datei mit zugegriffen werden muss oder nicht. Bei standalone=no muss auf eine ausgelagerte Datei z. B. eine DTD (Dokumententypdefinition) zu gegriffen werden. Diese wird dann in der Entity in der 2. Programmzeile genannt. Bei standalone=yes muss auf keine externe Datei zugegriffen werden. Alles was man für die vollständige Wiedergabe des XML-Dokumentes benötigt steht in diesem XML-Dokument. Die drei Teile der ersten Programmzeile müssen mit einem Leerzeichen voneinander getrennt werden. Diese 1. Programmzeile wird auch als Prolog bezeichnet.
1. 5. 2. Reservierte Zeichen
und Kommentare
Reservierte Zeichen dürfen nicht im Text oder als Elementnamen verwendet werden, da diese zur Abgrenzung von Element und Inhalt sowie Attribut und Wert verwendet werden. Diese Zeichen müssen daher als Entities eingegeben werden:
Tabelle 2:
|
Zeichen |
Entity |
Erklärung |
|
< |
< |
kleiner als |
|
> |
> |
größer als |
|
|
" |
Anführungszeichen |
|
|
' |
Apostrohp |
|
& |
& |
kaufmännisches Und |
Kommentare beginnen mit <!-- und enden mit -->. Diese können zur Hinzufügung von zusätzlichen Informationen dienen, die nur im Quelltext sichtbar sein sollen oder auch zur (versuchsweisen) Außerbetriebnahme von Befehlen bei der Erstellung und Bearbeitung von XML-Dokumenten verwendet werden.
1. 5. 3. Tags und Elemente
Die Elemente beschreiben die Struktur eines XML-Dokumentes und sind nicht für die Ausgabe am Bildschirm zuständig. Das oberste Element kann sich in weitere Unterelemente verzweigen und auch die Unterelemente können sich in weitere Unterelemente verzweigen (Baumstruktur). Alle Elemente bestehen aus einem Anfangs- und einem Endtag.
Jedes Element wird mit einem oder mehreren Start- und Endtags umschlossen. Ein Tag ist durch die Klammern < am Anfang und > am Ende gekennzeichnet. Die erste Programmzeile ist ein Sonderfall, sie ist auch ein Tag, muss aber nicht durch ein Endtag am Ende des Programmes abgeschlossen werden, da Processing Instructions grundsätzlich kein Endtag haben. Das Endtag muss genau so wie das Starttag geschrieben werden (Groß- und Kleinschreibung beachten). Es hat im Gegensatz zum Starttag unmittelbar hinter der ersten Klammer < ein /. Zwischen dem / und dem Endtag darf kein Leerzeichen stehen! In der obersten Ebene ist nur ein Element zulässig und muss eindeutig gekennzeichnet werden.
Hier ein Beispiel für ein XML-Dokument: Das Hauptelement heißt hier buch.
<?xml
version=1.1 encoding=ISO-8859-15 standalone=yes?>
<buch>
<Nummer>ISBN 0-0000-0000-0</Nummer>
<Titel></Titel>
<Gruppe></Gruppe>
<Preis>0,00</Preis>
</buch>
Elemente können auch wie im vorliegenden Beispiel auch leer sein. Man kann dann auch um Speicherplatz zu sparen anstatt z. B. <Titel></Titel> auch <Titel/> schreiben. Tags können beliebig benannt werden. Es ist sinnvoll, das XML-Dokument bis zum kleinstmöglichen Element auf zu teilen, das diese Daten später besser ermittelt und verarbeitet werden können.
Elemente dürfen nicht ineinander verschachtelt werden. Falsch wäre beispielsweise:
<autor><vorname><nachname></vorname></nachname></autor>.
Richtig ist:
<autor><vorname></vorname><nachname></nachname></autor>.
1. 5. 4. Attribute
Attribute beschreiben ein Element näher und können auch Einfluss auf die Gestaltung des Elementes haben. Das Element <IMG> ist ein Tag und besitzt ein Attribut, mit dem der Name einer Grafikdatei bestimmt wird z. B. dass ein Bild angezeigt wird und SRC, ein Attribut, gibt den Namen und die Quelle (das Bildes) an. Attribute werden am Anfang und Ende mit Anführungszeichen eingeschlossen. Unmittelbar davor steht der Attributname mit anschließenden =. Zwischen Attributname und =, zwischen = und sowie zwischen den und dem darin eingeschlossenen Attribut darf kein Leerzeichen stehen. Am Ende des Attributes muss vor dem > noch ein / stehen (kein Leerzeichen zwischen dem letzten und dem / als auch zwischen dem / und dem >) . Das Attribut <[x] xml:lang=de> liefert dem interpretierenden Programm lediglich die Information, um welche Spreche es sich bei dem eingeschlossenen Text handeln soll. Ob es dann wirklich diese Sprache ist, ist nicht garantiert. Als Tag kann hier ein beliebiger Buchstabe oder Wort vergeben werden und es steht anstelle dem [x] im vorherigen Satz. Bei schließenden Tags werden die Attribute nicht noch einmal mit angegeben, sonst es syntaktisch falsch.
Ein Beispieldokument:
<?xml version=1.1 encoding=ISO-8859-15 standalone=yes?>
<Beispiel>
<Englisch>
<Titel
xml:lang=en>This is one English book.</Titel>
</Englisch>
<Deutsch>
<Titel xml:lang=de>Die neue deutsche Rechtschreibung</Titel>
</Deutsch>
</Beispiel>
Eine kleine Auswahlliste des ISO-639-Sprachcodes:
Tabelle 3:
|
Code |
Sprache |
Code |
Sprache |
Code |
Sprache |
|
ar |
Arabisch |
fr |
Französisch |
nl |
Holländisch |
|
ch |
Chinesisch |
gr |
Griechisch |
no |
Norwegisch |
|
cs |
Tschechisch |
hr |
Kroatisch |
pl |
Polnisch |
|
da |
Dänisch |
hu |
Ungarisch |
pt |
Portugiesisch |
|
de |
Deutsch |
is |
Isländisch |
ro |
Rumänisch |
|
en |
Englisch |
it |
Italienisch |
ru |
Russisch |
|
es |
Spanisch |
ja |
Japanisch |
sv |
Schwedisch |
|
fi |
Finnisch |
la |
Lateinisch |
tr |
Türkisch |
Attribute können auch Elemente näher beschreiben:
<?xml
version=1.1 encoding=ISO-8859-15 standalone=yes?>
<Buch>
<buch Kategorie=Koch- und Backbuch>Südamerikanische Küche</buch0>
<buch Kategorie=EDV>Berechnungen in Excel</buch1>
<buch Kategorie=Telefonbuch>Gelbe Seiten</buch2>
</Buch>
Attribute brauchen weniger Speicherplatz als einzelne mit Tags:
Ohne Attribute:
<?xml
version=1.1 encoding=ISO-8859-15 standalone=yes?>
<Buch>
<Titel>Visio 2000</Titel>
<Autor>Rena Martin</Autor>
<Verlag>Addison Wesley</Verlag>
<ISBN>3-38273-1626-X</ISBN>
</Buch>
Mit Attributen:
<?xml
version=1.1 encoding=ISO-8859-15 standalone=yes?>
<Buch>
<buch Titel=Visio 2000 Autor=Rene Martin Verlag=Addison Wesley ISBN=3-8273-1626-X/>
</Buch>
Ein weiteres Beispiel zeigt die Anwendung von Attributen:
Hier besitzt das Element IMG die 3 Attribute Quelle, Höhe und Breite und bezeichnet dabei die näheren Eigenschaften eines Bildes oder Grafik.
<?xml
version=1.1 encoding=ISO-8859-15 standalone=yes?>
<document>
<autor>
<vorname></vorname>
<nachname></nachname>
<img quelle=bild.bmp höhe=200 breite=100/>
</autor>
</dokument>
Attribute können wie die Elementnamen selbst definiert werden. In der Dokumententypdefinition können die zulässigen Werte für Attribute eingeschränkt werden und auch fest gelegt werden, welche Attribute angegeben werden müssen.
1. 6. Wohlgeformtheit
Das XML-Dokument ist wohlgeformt (Englisch: well formed oder well formed document)
wenn es folgende Eigenschaften besitzt:
- Prolog
- nur 1 Hauptelement als Wurzelelement (Englisch auch: root element)
- Attribute sind an der richtigen Stelle definiert
- alle Attributwerte stehen in Anführungszeichen
- ein Element darf nicht 2 Attribute mit dem selben Namen besitzen
- Kommentare dürfen nicht direkt in Elemente eingefügt werden
- Reservierte Zeichen müssen als Entity eingegeben werden
- alle angegebenen Elemente müssen ein Anfangs- und Endtag besitzen auch wenn sie leer
sind
- die Elementnamen dürfen Sonderzeichen enthalten, wenn im Prolog der entsprechende
Zeichensatz vereinbart worden ist
1.7. Literaturhinweise
[1] Rene Martin: XML und VBA lernen, Verlag Addison-Wesley, ISBN 3-8273-1952-8, 2002
[2] Daniel Freitag, Andreas Wombacher: Von der XML-Datenbasis zur nutzergerecht strukturierten Webseite, Möglichkeiten und Grenzen von XDNL für das Content Management am Beispiel einer BBC-Nachrichtensammlung, Forschungszentrum Informationstechnik GmbH, Schloss Birlinghoven, D-53754 Sankt Augustin, ISSN 1435-2702, 2001
[3] Dipl.-Math. Wilhelm Noack: XML Version 1.1 Grundlagen Regionales Rechenzentrum für Niedersachsen/Universität Hannover, Schlosswender Straße 5, 30159 Hannover
1.8. Impressum
Technische Universität Chemnitz, Straße der Nationen 62, 09107 Chemnitz, Fakultät Informatik, Chris Hübsch
Autor: Ulrich Neef
Erstellt im Rahmen des Proseminares XML-basierte Technologien im Sommersemester 2004.