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

< 

&lt;

kleiner als

> 

&gt;

größer als

„

&quot;

Anführungszeichen

‚

&apos;

Apostrohp

&

&amp;

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.