Informatik Informatik III TU München
Personen Lehre Lehrstuhl Forschung Suche
DAs&SEPs Praktika <- SS1999 WS1999 SS2000 WS2000 SS2001 WS2001 ->

Proseminar Datenmodellierung
Vortrag über XML

Eugen Dück, 16.01.2001


Inhaltsverzeichnis

1. Einleitung
1.1. Was ist XML?
1.2. Einsatzmöglichkeiten
1.3. XML und SGML
1.4. XML und HTML

2. Die Elemente von XML
2.1. Tags, Entities und Dokumentstrukturen
2.2. Wohlgeformte XML-Dokumente
2.3. DTD, Validierung

3. Anwendungsgebiete und -beispiele
3.1. Webbrowser
3.2. Webserver
3.3. Standalone-Produkte
3.4. Beispiel-DTDs
3.4.1. XHTML
3.4.2. MathML
3.4.3. GuiDef

4. Parser
4.1. Tree based parser, DOM
4.2. Event based parser, SAX

5. Verwandte Technologien
5.1. XSL, DSSSL, CSS, XSLT
5.2. XLink, XPointer

6. Zusammenfassung

Quellen


1. Einleitung

Dieses Dokument setzt Grundkenntnisse der Sprache HTML voraus. Sind diese nicht vorhanden, kann man bei einzelnen Fragen z.B. in der sehr guten HTML-Referenz SelfHTML von Stefan Münz nachschlagen.

1.1. Was ist XML?

XML (Extensible Markup Language) ist eine Sprache zur Beschreibung von Dokumenttypen, also Klassen von Dokumenten. Mittels XML kann man festlegen, in welcher Form welche Daten gespeichert werden. Eine Datei zur Speicherung von Adressen könnte in XML z.B. so aussehen:

<?XML version="1.0"?>
<!DOCTYPE adressdatei SYSTEM "adressdatei.dtd">
<adressen>
	<adresse>
		<vorname>Bill</vorname>
		<nachname>Gates</nachname>
		<email type="privat">bill.gates@microsoft.com</email>
	</adresse>
	<adresse>
		<vorname>Larry</vorname>
		<nachname>Ellison</nachname>
		<email type="firma">larry.ellison@oracle.com</email>
	</adresse>
</adressen>

XML ist eines von vielen Werken des W3C-Konsortiums (www.w3c.org). Das W3C ist eine Organisation, die sich u.a. der Standardisierung von Dokumenten v.a. für das Internet verschrieben hat. Dadurch, daß sie mehr als 400 Mitgliedsorganisationen zählt, kann sie mit starker Unterstützung und relativ schneller Umsetzung der Standards rechnen.

1.2. Einsatzmöglichkeiten

Die Einsatzmöglichkeiten von XML sind unüberschaubar groß: Fast jedes Programm muß Daten speichern und mit XML muß man sich "nur" noch eine DTD (Document Type Definition) überlegen. In  einer DTD wird definiert, welche Art von Daten in welcher Form in einer XML-Datei stehen; eine nähere Erklärung dazu finden Sie im Kapitel über DTDs. Die Daten lassen sich dann mit jedem XML-Editor, und von denen gibt es schon einige, bearbeiten (wenn diese auch oft zu allgemein sind, um speziellere DTDs komfortabel zu bearbeiten).

Wenn einmal eine DTD vorhanden ist, lassen sich XML-Dokumente dieser DTD sehr einfach in andere Anwendungen integrieren, da es sich bei XML um eine bekannte, standardisierte und sehr ausgereifte Sprache handelt (der "Vorfahre" von XML, SGML, existiert schon seit Ende der 80er Jahre).

XML läßt sich also in fast jede Anwendung sinnvoll integrieren und fast alle Zweige der Informatikindustrie sind schon auf den Zug aufgesprungen oder gerade dabei. Das könnte endlich ein Ende der zahlreichen proprietären Formate und die damit verbunden Austauschschwierigkeiten mit anderen Anwendungen und anderen Plattformen bedeuten. Spätestens seit Beginn des Internetzeitalters ist diese Notwendigkeit und Möglichkeit des anwendungs- und plattformübergreifenden Datenaustausches am Beispiel von HTML sichtbar geworden. Auf der anderen Seite sind durch das Internet viele dieser Notwendigkeiten erst entstanden (ohne das Internet, welches die Entwicklung von Open Source Software stark vorangetrieben hat, würde Microsoft bei seinen Produkten wohl auch jetzt noch ziemlich konkurrenzlos dastehen und dann wäre die Notwendigkeit des Datenaustausches über Anwendungs- und Plattformgrenzen hinaus für die meisten Anwender eher gering).

1.3. XML und SGML

XML ist eine vereinfachte Form von SGML (Standard Generalized Markup Language), einer Sprache, die ebenfalls zur Beschreibung von Dokumenttypen dient. Sie existiert schon seit Ende der 80er Jahre und ist um einiges mächtiger als XML. Die Komplexität von SGML ist auch der Grund dafür, daß sie sich nicht als Beschreibungssprache für das Internet durchgesetzt hat, sie wird jedoch in einigen Bereichen, vor allem an Hochschulen, eingesetzt. XML ist von nicht unbedingt notwendigen Merkmalen der Sprache SGML befreit worden, so daß sich XML leichter in Browser und andere Anwendungen implementieren läßt. Ein XML-Dokument ist aber trotzdem absolut SGML-konform, bereits bestehende SGML-Programme können also auch mit XML-Daten umgehen.

1.4. XML und HTML

Im Gegensatz zu HTML werden in einer XML-Datei lediglich die Daten gehalten. Angaben zur Darstellung dieser Daten müssen in einer anderen Datei (XSL und CSS, s.u.) gemacht werden.

Vorteil: Wenn man z.B. eine Tabelle auf einer Webseite neu sortieren will, muß man keine weiteren Daten aus dem Internet holen, da die Daten in der bereits geladenen XML-Datei liegen und nur anders dargestellt werden müssen. Im Gegensatz dazu kann der Browser aus einer HTML-Datei nicht einfach die Daten herausholen, da diese mit den Informationen zur Darstellung und evtl. noch Programmcode (JavaScript) vermischt sind.

XML kann aber auch für andere Zwecke genutzt werden, z.B. zur Speicherung oder zum Austausch von Adressen, Produktinformationen usw.

 

 

2. Die Elemente von XML

2.1. Tags, Entities und Dokumentstrukturen

Die Struktur einer XML-Datei ist für jeden Dokumenttyp anders. Eine Adressdatei muß anders aussehen als eine Datei zur Verwaltung von Büchern in einer Bibliothek. Für jeden Dokumenttyp kann man deshalb eigene Tags definieren. Tags geben einer XML-Datei ihre Struktur und werden, wie auch in HTML-Dateien, in spitze Klammern gestellt. Sie fassen Daten gleichen Typs zusammen, ein <email>-Tag enthält z.B. immer eine e-mail-Adresse.

Achtung: In XML wird im Gegensatz zu HTML zwischen Groß- und Kleinschreibung strikt unterschieden, <name> ist also nicht gleich <Name>!

Tags können auch Attribute enthalten. Attribute beschreiben ein Tag näher und werden innerhalb der Klammern des öffnenden Tags definiert. Beispiel: <email type="privat">bill@microsoft</email>. type ist der Name des Attributs und privat der Wert.

Zu jedem öffnenden Tag <name> gehört auch ein entsprechendes schließendes Tag </name>. Alles, was dazwischen steht, sind Unterelemente dieses Tags. Als Unterelemente kommen entweder normaler Text oder weitere Tags in Frage. Durch diese Schachtelung bekommen XML-Dateien eine hierarchische, baumartige Struktur.

Mit den sogennanten Entities kann man u.a. in einer XML-Datei Daten definieren und diesen einen Namen geben. Immer, wenn dieser Name in der XML-Datei auftaucht, wird er durch die einmal definierten Daten ersetzt. Das erspart in einigen Fällen viel Arbeit. Mehr zu Entities im Kapitel über DTDs.

2.2. Wohlgeformte XML-Dokumente

Eine XML-Datei sollte mit einer XML-Deklaration beginnen, damit klar ist, daß es sich um XML handelt, z.B: <?XML version="1.0"?>

In XML muß jedes geöffnete Tag auch wieder geschlossen werden. Außerdem dürfen sich die Tags nicht überlappen, wie im folgenden Beispiel zu sehen ist:

<adresse> <name>
</adresse>
</name>

Der Wert aller Attribute muß in doppelte Anführungszeichen eingeschlossen werden. Beispiel: <email type="privat">. Und so darf man es nicht machen: <email type=privat>.

Wenn diese Regeln erfüllt sind, spricht man von einem wohlgeformten XML-Dokument (wellformed XML document).

Wenn zwischen einem öffnenden und schließenden Tag kein Text und keine Tags enthalten sind, kann man abkürzen: <tag></tag> kann man auch schreiben als <tag/>.

2.3. DTD, Validierung

Die Beschreibung der XML-Tags eines Dokumenttyps wird in einer DTD-Datei (Document Type Definition) festgehalten. In dieser Datei steht, welche Tags in welcher Reihenfolge, wie oft und mit welchen Attributen in einer XML-Datei des entsprechenden Typs enthalten sein dürfen bzw. müssen.

In einer XML-Datei kann festgelegt werden, welche DTD verwendet werden soll (oder besser: zu welcher DTD die XML-Datei konform sein soll):

<!DOCTYPE adressdatei SYSTEM "adressdatei.dtd">

Das XML-Dokument soll in diesem Fall die DTD mit dem Namen adressdatei verwenden, die in der Datei adressdatei.dtd gespeichert ist.

Wenn eine wohlgeformte XML-Datei den Anforderungen der angegebenen DTD genügt, handelt es sich um ein gültiges XML-Dokument (valid XML document).

Wenn keine DTD verwendet wird, spricht man von einer DTD-losen Datei. Dies wird in der XML-Deklaration mit dem "standalone"-Attribut angegeben. <?XML version="1.0" standalone="yes">

Beispiel adressdatei.dtd:

<!ENTITY kde "K Desktop Environment">
<!ELEMENT adressen (adresse*)>
<!ELEMENT adresse (vorname, nachname, mail*)>
<!ELEMENT vorname (#PCDATA)> <!ELEMENT nachname (#PCDATA)>
<!ELEMENT mail (#PCDATA)>
<!ATTLIST mail type (privat | firma) #REQUIRED>

Eine kurze Erklärung der einzelnen Zeilen:

Zeile 1: Wir definieren eine Entity mit dem Namen "kde". Überall, wo in einer XML-Datei der Klasse adressdatei die Zeichenfolge &kde; ('&' + entityname + ';') auftaucht, wird sie ersetzt durch die Daten der Entity, in unserem Fall die Zeichenkette "K Desktop Environment".

Zeile 2: Jede XML-Datei der Klasse adressdatei muß genau ein <adressen>-Tag haben, welches wiederum beliebig viele <adresse>-Untertags enthalten kann (oder auch keines).

Zeile 3: Jedes <adresse>-Tag enthält genau ein <vorname>-, genau ein <nachname>- und 0-beliebig viele <mail>-Tags

Zeilen 4-6: Die Tags <vorname>, <nachname> und <mail> können Text enthalten, d.h. zwischen dem öffnenden und schließenden Tag können Zeichen stehen, z.B. <vorname>Bill</vorname>. #PCDATA steht für parsed character data. Das bedeutet, daß der Text auf Entities hin untersucht wird, die ersetzt werden müssen. Wenn also das Zeichen '&' in einem solchen Text stehen soll, muß es kodiert werden als &amp; (auch in HTML möglich). Es gibt auch noch andere vordefinierte, sogenannte interne Entites, die wichtigsten sind &lt; ('<') und &gt; ('>') um eine Verwechselung dieser Zeichen mit den Tag-Metasymbolen zu vermeiden. Entities müssen aber nicht unbedingt Text enthalten, sie können auch für andere Daten stehen, z.B. Bilddaten.

Zeile 7: Jedes <mail>-Tag muß (#REQUIRED) das Attribut type haben, welches entweder den Wert 'privat' oder 'firma' haben muß, z.B. <mail type="privat">mail@mail.de</mail>

Nähere Informationen zum Thema DTD, und auch ganz allgemein zu XML, finden sich in der offiziellen XML-Spezifikation [1].

 

 

3. Anwendungsgebiete und -beispiele

3.1. Webbrowser

Die aktuellen Versionen des Internet Explorer und Netscape Navigator können mit XML-Dateien (mehr oder weniger gut) umgehen. Noch sind aber lange nicht alle Nutzer mit diesen Browsern ausgestattet und daher gibt es im Web, zumindest auf der Clientseite, noch fast gar keine XML-Dokumente.

3.2. Webserver

Auf der Serverseite wird schon oft mit XML gearbeitet. Bevor die Daten an die Browser geschickt werden, werden sie aber (meist mit Hilfe von XSL, s.u.) in HTML umgewandelt, so daß sie in allen Browsern angezeigt werden können.

Der Vorteil: Sobald der Großteil der eingesetzten Browser XML unterstützt, fällt die "Umstellung" dieser Server auf XML sehr einfach: Es muß nur der XSLT-Layer entfernt werden.

3.3. Standalone-Produkte

Auch viele Programme außerhalb der Welt des Internets verwenden schon XML zur Speicherung und zum Austausch von Daten. Beispiele: Microsoft Word und die Programme der KOffice-Suite. Auch die Programme der Firma belenus AG, in der ich arbeite, machen Gebrauch von XML, beispielsweise, um die Oberfläche von Anwendungen zu konfigurieren (s. GuiDef), aber auch zum Speichern von Daten.

3.4. Beispiel-DTDs

In diesem Kapitel werden einige exemplarische DTDs zusammenfassend vorgestellt, um die Möglichkeiten von XML und den aktuellen Stand der Entwicklung in diesem Bereich zu zeigen. Es existieren darüber hinaus unzählige weitere DTDs, die so verschiedene Gebiete wie Vektorgrafiken, Planzenbeschreibungen und Rezeptdaten abdecken.

3.4.1. XHTML

XHTML (Extensible HyperText Markup Language) ist eine Reformulierung von HTML 4.0 in XML. Heutige Browser können XHTML anzeigen, reine XHTML-Browser werden aber (die meisten) HTML-Dokumente nicht anzeigen können, weil sie nicht wohlgeformt sind (das <br>-Tag beispielsweise besitzt kein schließendes Äquivalent, welches aber in XML unbedingt erforderlich ist).

Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<title>Homepage</title>
	</head>
	<body>
		<p>Text</p>
	</body>
</html>

Hier ist schön zu sehen, daß XHTML die Anforderungen von HTML erfüllt. Es enthält ein paar zusätzliche für XML-fähige Browser brauchbare Tags und Attribute. Reine HTML-Browser, welche XML nicht beherrschen, ignorieren diese Tags, wie sie es auch mit den (proprietären) Tags anderer Hersteller tun.

3.4.2. MathML

MathML (Mathematical Markup Language) ist eine XML-Sprache, mit der mathematische Formeln und Texte definiert werden können. MathML ist, da es ebenfalls vom W3C kommt, ein Standard, welcher wahrscheinlich in Zukunft eine große Bedeutung im Bereich Mathemaik bekommen wird

Beispiel:

Die Gleichung  x2 - 4 = 0   kann mit folgender XML-Datei erzeugt werden:

<mrow>
	<mrow>
		<msup>
			<mi>x</mi>
			<mn>2</mn>
		</msup>
		<mo>-</mo>
		<mn>4</mn>
	</mrow>
	<mo>=</mo>
	<mn>0</mn>
</mrow>

Die Tags im einzelnen:

<mrow> Mit diesem Tag kann man mehrere Elemente gruppieren. Diese Elemente werden alle nebeneinander dargestellt (also in einer Zeile)
<msup> Mit diesem Tag kann man ein Zeichen höherstellen (superscript), wichtig für Potenzen. Dieses Tag hat immer zwei Unterelemnte, s. Beispiel
<mi> Innerhalb dieses Tags stehen Bezeichner (identifier), also z.B. die Variable x oder auch Funktionsnamen wie sin, cos usw.
<mn> In dieses Tag setzt man eine Zahl (number)
<mo> Hier gehören Operatoren hinein, also z.B. '+'

In MathML existieren mehr als 1800 Entities zur Beschreibung von mathematischen Symbolen, wie z.B. &alpha; (steht für den ersten griechischen Buchstaben Alpha).

Mittlerweile existieren einige Plug-Ins für die gängigen Browser, die MathML darstellen können und es existieren auch Tools zum komfortablen Erstellen und Bearbeiten von MathML-Dokumenten (z.B. MathType). Ein Anwendungsbeispiel für MathML ist Snippet, ein Hausaufgaben-System der "Diskrete Strukturen"-Fakultät. Mit Hilfe von Snippet können Studenten im Browser über das Internet ihre mit mathematischen Formeln versehenen Aufgaben ansehen und die Lösungen eingeben. Die Bewertung erledigt das Programm automatischund verschickt die Ergebnisse automatisch per e-mail an die Studenten.

3.4.3. GuiDef

GuiDef ist eine XML-Sprache zur Definition des Aussehens von Programmen der Firma belenus. In einer GuiDef-Datei gibt man an, welche Komponenten des Programmes dargestellt werden. Sie können auch mit Parametern konfiguriert werden. Dabei kann man beliebig viele Komponenten und Container, welche wiederum Unterkomponenten und -container enthalten können, hinzufügen und beliebig anordnen. Durch dieses Verfahren kann man das Programm an viele verschiedene Bedürfnisse der Nutzer anpassen, ohne den Programmcode verändern oder neu kompilieren zu müssen.

Beispiel:

<?xml version="1.0"?>
<!DOCTYPE guidef SYSTEM "guidef.dtd">
<guidef>
	<container name="HauptContainer" class="SplitPane">
		<component name="Baum" class="BTree">
		</component>
		<container name="ViewTableSplitPane" class="BSplitPane">
			<component name="ImageView" class="ImageView"> </component>
			<component name="Table" class="BTable"> </component>
		</container>
	</container>
</guidef>

Dieses Beispiel wurde aus Gründen der Übersichtlichkeit um einige Parameter, die für die Komponenten in der Realität wichtig sind, erleichtert. Der Aufbau und die Grundlogik dieses Prinzips bleiben davon jedoch unberührt.

Und so zeigt der Browser des symbian Netbooks die Beispieldatei (von einem Applet verarbeitet) an:

Auf der linken Seite sieht man die Baumkomponente, rechts daneben ist einmal oben die Bildkomponente und unten die Tabelle zu sehen, genau so wie in der GuiDef-Datei definiert (in der Beispiel-Datei fehlen die Parameter für die Komponenten; in diesen wird u.a. eingestellt, ob die Splitpanes die Unterkomponenten horizontal oder vertikal anordnen sollen).

Die identischen Javaklassen werden auf einem Palm Pilot mit einer entsprechend veränderten guidef.xml so dargestellt:

Die einzelnen Komponenten sind hierbei wegen des kleines Displays nicht nebeneinander, sondern "hintereinander" angeordnet, d.h. sie lassen sich über Symbole in der oberen Leiste erreichen.

 

 

4. Parser

Es gibt grundsätzlich 2 Möglichkeiten, XML-Dokumente zu parsen, d.h. von einem Programm aus die gespeicherten XML-Daten in für das Programm sinnvolle Strukturen umzuwandeln.

4.1. Tree based parser, DOM

Tree based parser lesen das komplette XML-Dokument ein, validieren es und bauen daraus eine baumartige Struktur (z.B. DOM) zusammen. Dieser Baum kann dann vom Programm benutzt werden. Umgekehrt gibt es auch XML-Schreiber, welche eine Baumstruktur in ein XML-Dokument umwandeln.

DOM (Document Object Model) 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. DOM wird z.B. benutzt, um die Dokumentstruktur von Internet-Dokumenten (HTML und XML) zu beschreiben. Mit Hilfe von DOM können dann beispielsweise "JavaScripter" einheitich auf die einzelnen Elemente eines Dokuments zugreifen. Bisher haben viele Webdesigner große Probleme mit JavaScript, da die Browser-Hersteller bei der Objekt-Struktur unterschiedliche Lösungen benutzen.

4.2. Event based parser, SAX

Event based parser arbeiten asynchron. Sie werden einmal gestartet und erzugen dann für jedes Tag einen Event. Das Programm kann dann schon, bevor das komplette Dokument eingelesen wurde, erste Daten darstellen. Event based parsing macht also vor allem im Bereich von WAN Sinn ;-), beispielsweise im Internet, wo die Daten relativ langsam über die Leitungen gehen.

SAX (Simple API for XML) ist eine Programm-Schnittstelle (Application Programmers Interface API) für die Verarbeitung einer Klasse von XML-Dokumenten mit Hilfe einer Programmiersprache. SAX liefert ein XML-Element nach dem anderen (event based parsing) in einem Eingabestrom und eignet sich daher auch für sehr große XML-Files.

 

 

5. Verwandte Technologien

5.1. XSL, DSSSL, CSS, XSLT

Mit XSL (XML Stylesheet Language) läßt sich definieren, wie XML-Dateien einer bestimmten Dokumentklasse dargestellt werden sollen (z.B. in einem Browser). Es existierten zwar auch vor XSL schon Sprachen für genau diesen Zweck, doch waren sie entweder zu komplex, wie DSSSL (Document Style Semantics and Specification Language), welche für SGML benutzt wird, oder zu eingeschränkt, wie CSS (Cascading Style Sheets), welches vor allem in Verbindung mit HTML eingesetzt wird.

Webserver, die intern mit XML arbeiten und die üblichen Browser bedienen sollen, übersetzen die XML-Dokumente mit einem XSL Processor in HTML und CSS, bevor sie an die Clients geschickt werden.

Da XSL noch nicht verabschiedet ist und die Spezifikation noch geändert werden kann, benutzen die Browser von Netscape und Microsoft zur Formatierung der XML-Dateien noch nicht XSL, sondern das von HTML her bekannte CSS. CSS ist aber bei weitem nicht so mächtig wie XSL und sobald die XSL-Spezifikation verabschiedet ist, werden die Browser-Hersteller dann (hoffentlich schnell) auf dieses Format umstellen.

XSL kann alle CSS-Befehle verwenden, allerdings in einer XML-Syntax. Statt  em {font-weight:bold}  heißt es in XML (etwas umständlicher): 

<style-rule>
	<target-element type="emph"/>
	<apply font-weight="bold"/>
</style-rule>

XSL kann Elemente aber auch in Bezug auf ihre Position auswählen und formatieren, z.B. erster Paragraph des dritten Abschnittes, übergeordnetes Element des letzten Absatzes etc. Außerdem kann man mit XSL auf Element-Inhalte (lesend) zugreifen, also zum Beispiel jeden Absatz, der das Wort "Warnung" enthält, hervorheben.

So kann man mit XSL einfach nützliche, mit HTML und CSS sehr schwierige bis unmögliche Aufgaben lösen, wie z.B. Zeilen einer Tabellen abwechselnd mit verschiedenen Hintergrundfarben zu versehen. Wer das einmal mit HTML und CSS probiert hat, wird sich beim Einfügen einer Zeile in den oberen Teil einer großen Tabelle sehr geärgert haben. In diesem Fall müssen alle darunter liegenden Zeilen neu bearbeitet werden. Dieses Problem läßt sich, sofern man auf seinem Webserver Skripte einsetzen kann, auch per dynamischer Seitengenerierung lösen, ist aber nicht so elegant wie eine Lösung mit XSL.

Eine gute Einführung und etwas detailliertere Erklärung von XSL findet sich unter www.heise.de/ix/artikel/1998/05/138/.

Hier noch eine kurze Erklärung des Begriffs XSLT: XSLT (XSL Transformations) ist eine Sprache zur Umwandlung von XML-Sprachen (auch unabhängig von XSL) und wird von XSL auch zu diesem Zweck (XML => HTML) benutzt.

5.2. XLink, XPointer

Dieses Kapitel soll nur einen groben Überblick über Verweise in XML geben. Nähere Informationen zu den Themen XLink und XPointer sind in den entsprechenden Dokumenten des W3C-Konsortiums zu finden.

XML verfolgt ein anderes Konzept für Verweise als HTML. In HTML versteht man unter einem Link (Verweis) einen Zeiger auf eine Adresse im Internet. In XML ist mit Links jedoch viel mehr möglich. Man kann ganze Listen von Links in externe Dateien auslagern und diese dann in XML-Dokumente einbinden; das kann die Wartung von gleichen Links in mehreren Dokumenten erheblich vereinfachen. Desweiteren kann man externe Dokumente in XML-Dateien einbetten (vergleichbar mit, aber viel flexibler als, IFrames in HTML).

Mit XLink (XML Linking Language) werden Links zwischen verschiedenen Dokumenten definiert. Ziel von XLink ist es, eine einheitliche, möglichst umfassende Lösung eines Link-Konzeptes zu schaffen, das von allen XML-Dokumenten benutzt werden kann.

Beispiel eines einfachen Links:

<xlink:simple
	href = "http://www.w3c.org"
	role = "extern"
	show = "new"
	actuate = "user">Zur W3C Homepage
</xlink:simple>

Die Erklärung der einzelnen Attribute des <xlink:simple>-Tags:

href wie bei HTML
role sagt der Anwendung, wie der Link behandelt werden soll (ein Verweis auf ein Inhaltsverzeichnis könnte beispielsweise so dargestellt werden, daß es unabhängig von der Position des Benutzers im Dokument immer sichtbar ist)
show gibt an, wie das referenzierte Dokument angezeigt werden soll (new: in einem neuen Fenster; embed: eingebettet; replace: aktuelles Dokument mit dem referenzierten ersetzen)
actuate gibt an, wann der Verweis ausgeführt werden soll (user: bei Benutzerinteraktion, z.B. bei Mausklick; auto: sofort, wenn der Verweis von der Anwendung verarbeitet wird)

Es gibt auch sogenannte erweiterte Verweise, in denen man u.a. mehrere Zieladressen angeben kann, sinnvoll z.B. bei stark frequentierten Servern, deren Dokumente auch auf andere Server gespiegelt werden. Dann kann der Nutzer aus einer Liste auswählen oder das Programm sucht sich selbst den schnellsten heraus.

Mit Hilfe von XPointer (XML Pointer Language) kann man auf Elemente innerhalb von XML-Dokumenten zuzugreifen (ähnlich wie bei HTML mit <a href="#anchor">).

 

 

6. Zusammenfassung

XML hat ein enorm großes Einsatzgebiet und könnte in der Lage sein, den sowohl in Informatik und Wirtschaft sowie in vielen anderen Bereichen (Politik, Wissensbildung etc.) bestehenden Bedarf an einfachem und effizientem Datenaustausch zu decken.

Bereits jetzt wird XML in vielen Anwendungen eingesetzt und in Zukunft vielleicht die Sprache des Internets werden. Durch die Standardisierung von XML und die große Akzeptanz dieser Sprache sogar von Monopolisten und Marktbeherrschern, denen bisher der anwendungs- und plattformübergreifende Datenaustausch nicht geschäftsfördernd erschien, wird XML in der nahen Zukunft eine große Rolle spielen.

Ein Problem ist der noch fehlende Abschluß einiger wichtiger Spezifikationen wie XSL, der die Entwicklung entsprechender Anwendungen erschwert oder unmöglich macht. In diesem Jahr (2001) werden aber voraussichtlich neben XSL auch einige weitere wichtige Spezifikationen fertiggestellt, sodaß in nicht allzu langer Zeit weitere Anwendungsgebiete von XML erschlossen werden können.

Ein weiteres großes Problem könnten verschiedene Vorstellungen der Firmen zur Erstellung von DTDs sein: Wenn verschiedene Hersteller für die gleiche Art von Daten (z.B. Text/Textverarbeitung) jeweils eigene DTDs definieren, gibt es wieder ähnliche Probleme wie bisher. Zwar ist das grundlegende Format der verschiedenen DTDs gleich und auch die Dokumente selbst entsprechen dem XML-Standard, es müssen aber wieder Im- und Export-Filter bzw. Konverter geschrieben werden. In einigen Fällen wird dies sicher so sein, hier müssen das W3C-Konsortium bei allgemeinen DTDs, aber auch die Firmen selbst bei speziellen DTDs schnell genug sein, zu allseits anerkannten DTDs zu finden. Ob das in den meisten Bereichen gelingt, besonders in Anbetracht der Geschäftsstrategien gerade vieler großer Firmen, ist fraglich. Aber selbst wenn das nicht in allen Bereichen gelingt, in vielen Anwendungsgebieten wird es in Zukunft ganz sicher firmenübergreifende DTDs und damit beliebig austauschbare XML-Dokumente geben.


Quellen

[01] XML 1.0 http://www.w3.org/TR/REC-xml
[02] About the W3C http://ww.w3.org/Consortium/
[03] XML Tutorial http://indi.wu-wien.ac.at/~student/xml/intro.htm
[04] Extensible Markup Language (XML) http://members.aol.com/xmldoku/f_und_a.htm
[05] Referat: XML http://seanizer.de/xml/referat
[06] tecChannel: Zukunft XML http://www.tecchannel.de/internet/452/6.html
[07] Kleines Lexikon zu WWW und HTML http://www.boku.ac.at/htmleinf/heinwas.html
[08] Investing In Knowledge http://www.oneworld.org/thinktank/iktools/xml/what.html
[09] A Gentle Introduction to MathML http://www.mathtype.com/support/tutorials/mathml/default.stm
[10] XSL http://stio1.sari.fh-wuerzburg.de/student/i199/xsl/frame_index.html
[11] XML Linking Language (XLink) http://www.fh-wedel.de/~si/seminare/ws00/Ausarbeitung/3.xlink/xlink1.htm
[12] Verweise in XML - XLink und XPointer http://i44www.info.uni-karlsruhe.de/~i44www/lehre/ XML-WS-99-00/vortraege/verweise/verweise_v3_document.htm
DAs&SEPs Praktika <- SS1999 WS1999 SS2000 WS2000 SS2001 WS2001 ->
Personen Lehre Lehrstuhl Forschung Suche