Universität Karlsruhe Fakultät für Informatik Universität Karlsruhe

Proseminar Rund ums Internet

XML

Ingo Beutler

Inhaltsverzeichnis

        1 Einleitung in XML
                1.1 Was ist XML?
                1.2 Zusammenhang SGML, XML, HTML
                        1.2.1 SGML
                        1.2.2 HTML
                        1.2.3 XHTML
        2 XML Grundlagen
                2.1 Beispiel
                2.2 Baumstruktur einer XML Datei
                2.3 Aufbau
                        Elemente
                        Attribute
                        Kommentar
                        XML Prozessor Informationen
                2.4 Kodierung
                2.5 Namensräume
                2.6 Wohlgeformtheit und Gültigkeit
        3 Form und Inhalt in XML
                3.1 Document Type Definition (DTD)
                3.2 XML Schema
                3.3 XML Anwendungen
                        3.3.1 Extensible Stylesheet Language (XSL)
                                3.3.1.1 XSL Transformations (XSLT)
                                3.3.1.2 XSL Formating Objects (XSLFO)
                        3.3.2 Extensible Linking Language (XLL)
                                3.3.2.1 XML Linking Language (Xlink)
                                3.3.2.2 XML Pointer Language (Xpointer)
        4 XML Schnittstellen
                4.1 SAX
                4.2 DOM
        5 XML in der Praxis
        Abkürzungsverzeichnis
        Literatur

1 Einleitung in XML

Einleitung

Das Internet wächst unaufhaltsam. Immer mehr Menschen haben Zugriff auf dieses Medium, mit seinem annähernd unendlichen Informationsgehalt.

Die Standardsprache des Internet, die Hypertext Markup Language (HTML), wurde hauptsächlich zur Darstellung von Daten entwickelt. Da das Internet immer interaktiver und automatisierter wird, reicht HTML nicht mehr aus. Genau hier setzt XML an.

1.1 Was ist XML?

Die Extensible Markup Language (XML) ist eine Metasprache, d.h. XML gibt Regeln vor, wie Sprachen beschrieben werden können.

Der Begriff XML beinhaltet mehr als nur die Metasprache. Es ist eine Art XML-Umgebung gemeint, zu der noch andere Ideen und Sprachen gehören.

Entwickelt wurde XML vom World Wide Web Consortium (W3C). [WIL], [THO]

1.2 Zusammenhang SGML, XML, HTML

Die nachfolgenden 2 Graphiken (Abb. 1, 2) geben einen Üerblick über den Zusammenhang der drei wichtigsten Markup-Sprachen:


Abbildung 1: SGML, XML, HTML


Abbildung 2: Geschichte

1.2.1 SGML

XML ist eine Teilmenge der Standard Generalized Markup Language (SGML). SGML ist eine sehr mächtige und dadurch auch sehr komplexe Metasprache. Wegen ihrer Komplexität können SGML-Dokumente nicht schnell erstellt und verarbeitet werden. Das macht sie unbrauchbar für das Internet.

1.2.2 HTML

HTML ist eine reine SGML-Anwendung. Sie enthält Sprachelemente, die in XML verboten sind: In HTML ist es erlaubt gegen die Wohlgeformtheit (siehe unten) von XML zu verstoßen. Deshalb ist HTML inkompatibel zu XML.

1.2.3 XHTML

Um diesem Umstand Abhilfe zu schaffen wurde XHTML entwickelt. Diese HTML Version wurde mit XML "strenger" definiert. [WIL], [THO]

2 XML Grundlagen

Der Aufbau eines XML-Dokuments ist dem Aufbau eines HTML Dokuments sehr ähnlich.

2.1 Beispiel

Abbildung 3 zeigt ein kleines Beispiel, wie ein XML-Dokument über das Proseminar "Rund ums Internet" aussehen könnte:


Abbildung 3: XML-Beispiel

In der ersten Zeile stehen XML Prozessor-Informationen, die die Versionskennzeichnung des XML-Dokuments und die Kodierung enthalten. Das Attribut "standalone" besagt, dass bei diesem XML-Dokument nur die Wohlgeformtheit (siehe unten) überprüft werden kann.

Das Wurzelelement heißt "Proseminar". Es enthält 3 Elemente (Name, Teilnehmer, Treffen) und einen Kommentar.

"Name" enthält den Namen des Proseminars: "Rund ums Internet".

Das Element "Teilnehmer" enthält ein weiteres Element "Anzahl". In diesem steht die Anzahl der Teilnehmer.

"Treffen" ist das letzte Element und besitzt die beiden Attribute "Ort" und "Tag".

Der Kommentar enthält eine kurze Erläuterung zu der Teilnehmeranzahl.

2.2 Baumstruktur einer XML Datei

Jedes XML-Dokument kann als Baumstruktur dargestellt werden (siehe Abb.4). Jeder Knoten in diesem Baum entspricht einem Objekt im XML-Dokument.


Abbildung 4: Baum Beispiel

2.3 Aufbau

Eigentlich ist ein XML-Dokument nichts anderes als eine Textdatei. Hält die Textdatei zusälich folgende Grammatik-Regeln ein, wird sie zum XML-Dokument:


Abbildung 5: Wichtige Teile eines XML Dokuments

Elemente

Elemente beginnen mit dem Starttag, gefolgt von dem Inhalt und am Ende das Endtag (Bsp.5 1. + 2.Punkt). Falls das Element keinen Inhalt besitzt, kann es auch abgekürzt werden (Bsp.5 3.Punkt). Elementnamen sind "case sensitive", d.h. Groß- und Kleinschreibung werden unterschieden. Erlaubt sind alle Namen die mit Buchstaben oder Unterstrich "_" beginnen, auß allen Variationen der Groß- oder Kleinschreibung von "xml".

Eine Besonderheit des Inhalts von Elementen ist, dass bestimmte Zeichen (<, >, &, ', und ") nur an Stellen stehen dürfen an denen sie nicht mit strukturierenden Zeichen verwechselt werden und so die Form des Dokuments zerstören können. [W3S]

Attribute

Attribute werden immer im Start-Tag deklariert und spezifizieren Elemente näher (Bsp.5 4.Punkt). [W3S]

Kommentar

Ein Kommentar beginnt mit "<!--" und endet mit "-->"(Bsp.5 5.Punkt). Dazwischen dürfen alle Zeichen stehen, solange diese den Beginn oder das Ende des Kommentars nicht verändern: z.B. darf "-" nicht letztes Zeichen sein. [W3S]

XML Prozessor Informationen

Anweisungen an den XML Prozessor beginnen immer mit "<?" und enden mit "?>"(Bsp.5 6.Punkt). Bei jedem XML-Dokument muss in der ersten Zeile eine XML Prozessor-Information stehen, die die Versionskennzeichnung des XML-Dokuments enthält.[ W3S]

2.4 Kodierung

Da das Internet weltweit erreichbar ist, wird für eine Kodierung benötigt, die alle Zeichen kennt. Die Kodierung eines XML-Dokumentes wird direkt in den XML Prozessor Informationen im Attribut "encoding" angegeben:

<?xml version="1.0" encoding="US-ASCII" ?>

oder separat

<?xml encoding="US-ASCII" ?>

Werden keine Angaben zur Kodierung gemacht, nimmt der XML-Prozessor an, dass UTF-8 verwendet wurde. UTF-8 ist eine komprimierte Version von Unicode. Eigentlich kann jede beliebige Kodierung genommen werden, vorausgesetzt der XML-Prozessor kennt sie. Jeder XML-Prozessor muss mindestens 2 Kodierungen kennen: UTF-8 und Unicode.

Im Folgenden ein kurzer Überblick über die gebrächlichsten Kodierungen:

ASCII: American Standard Code for Information Interchange; in 7 bit werden 128 Zeichen kodiert, für amerikanisches Englisch
ISO Zeichensätze: International Standards Organisation hat Zeichensätze für verschiedene Länder definiert.

Die ersten 128 Zeichen (7Bit) sind ASCII gleich, die restlichen 128 Zeichen (+1 Bit) stehen für landesspezifische Zeichen.ASCII und ISO Zeichensätze benötigen ein Byte zur Darstellung von einem Zeichen, enthalten aber nur landesspezifische Zeichen.

Um weltweit XML Daten austauschen zu können, werden Kodierungen benötigt, die möglichst alle gänigen Zeichen enthalten, zum Beispiel:[SKE]

Unicode: Unicode enthält fast alle Zeichen fast aller Schriften der Welt.
UTF-8: Unicodekodierung, die 1 Byte für ASCII-Zeichen und bis zu 6 Byte für exotische Zeichen benutzt
UTF-16: kodiert alle bekannten Zeichen, wobei 2 Byte für häufigere und 4 Byte für exotischere benutzt werden.

2.5 Namensräume

Jeder kann in XML-Dokumenten Elemente und Attribute nach Belieben benennen. Das führt bei mehreren XML-Dokumenten leicht zum Mehrfachgebrauch von Namen, was zu Verwirrung und Fehlern führen kann.

Auf der anderen Seite sollten Elemente und Attribute eindeutig zu einer XML-Anwendung zugeordnet werden können, damit die Anwendung sie erkennen und verarbeiten kann.

Namensräume weisen Elementen und Attributen URIs zu. So können Elemente und Attribute eindeutig identifiziert werden und die oben genannten Forderungen werden erfüllt. Abbildung 6 zeigt eine Möglichkeit, wie Namensräume bei der XML-Datei zum Proseminar Rund ums Internet genutzt werden können.[W3S]


Abbildung 6: Namensräume in XML

2.6 Wohlgeformtheit und Gültigkeit

Wohlgeformt sind XML-Dokumente, wenn sie alle "Grammatik"-Regeln einhalten, d.h. wenn sie formal korrekt sind.

Gütig sind sie, wenn es eine Document Type Definition oder ein Schema gibt, nach deren Regeln sie aufgebaut sind (siehe unten).[W3S]

3 Form und Inhalt in XML


Abbildung 7: XML im Internet

Abbildung 7 zeigt, wie XML im Internet eingesetzt werden kann. Das darzustellende Dokument wird in drei Einheiten aufgeteilt, die der Browser verarbeiten muss:

3.1 Document Type Definition (DTD)

Eine DTD beschreibt den strukturellen Aufbau und die logischen Elemente einer Klasse von Dokumenten. Sie dient zur Überprüfung der "Gültigkeit" einer XML-Datei. In der DTD wird festgelegt, welche Elemente und Attribute in welcher Reihenfolge zugelassen sind.

Es gibt zwei Arten von DTD`s:

  1. die externe DTD steht in einer separaten Datei, auf die verwiesen wird.
  2. die interne DTD ist direkter Bestandteil des XML-Dokuments
In Abbildung 8 ein Beispiel, wie eine DTD für XML-Dokument für Proseminar "Rund ums Internet" aussehen könnte.


Abbildung 8: DTD Beispiel

Jedes definierte Element einer DTD beginnt mit "<!ELEMENT". Danach folgt der Name des Elements und sein Inhalt. Die Definition wird abgeschlossen mit ">".

Attributdefinitionen beginnen mit "<!ATTLIST". Durch ein Leerzeichen getrennt, folgt dann der Name des Elements, in dem das Attribut vorkommt. Dann der Attributname und sein Wert. Auch Attributdefinitionen werden mit ">" abgeschlossen.

Abbildung 9 erläutert noch weitere Deklarationssymbole, die regulären Ausdrücken sehr ähnlich sind.


Abbildung 9: Deklarationssymbole in einer DTD

PARSED CHARACTER DATA meint alle in der Kodierung definierten Zeichen.

Die Nachteile einer DTD sind: [DEV]

  1. Eine DTD besitzt eine eigene Syntax (kein XML).
  2. Das Verfahren der Namensräume wird nicht unterstützt
  3. Eine genauere Definition von Datentypen (nur #PCDATA) ist nicht möglich.

3.2 XML Schema

XML Schema (XSD) ist der mächtigere Nachfolger von DTD, der alle Nachteile von DTD verbessert.

In XSD gibt es 3 verschiedene Datentypen:

Abbildung 10 enthält ein Beispiel, wie eine Schema-Datei fürProseminar "Rund ums Internet" aussehen könnte.


Abbildung 10: XSD Beispiel

Man sieht, dass XML-Schema Dokumente genauer, aber auch größer werden, als DTD`s.

Jedes Element in einem XSD-Dokument besitzt das Präfix "xsd:" was zeigt, dass sich alle Elemente im gleichen Namensraum befinden. Der Namensraum muss im äußerstenersten Element des Dokuments zugewiesen werden:

<xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema>

Wie in Abbildung 10 gezeigt, werden die einzelnen Elemente des XML-Dokuments beschrieben. Die Bedeutung einzelner Elemente wird in der Spezifikation des W3C genauer erklärt [W3C].

Das Element "Proseminar" muss als komplexer Datentyp definiert werden. Die enthaltenen Elemente werden entweder direkt definiert (Element "Name" als vordefinierter Datentyp) oder referenziert (Element "Teilnehmer"). Das Element "Teilnehmer" wird im selben Dokument als einfacher Datentyp definiert.[W3C]

3.3 XML Anwendungen

Es gibt zu XML eine Menge von Anwendungen. Hier werden nur einige universell einsetzbare kurz erklärt.

3.3.1 Extensible Stylesheet Language (XSL)

XSL besteht aus 2 Teilen: XSLT für die Transformation und XSL-FO für die Formatierung von XML-Dokumenten.
3.3.1.1 XSL Transformations (XSLT)
XML-Dokumente können mit XSLT in andere XML-Dokumente gewandelt werden. Dabei wird die Struktur oder der Inhalt des XML-Dokuments verändert. Beispiele hierfü sind die Äderung der Reihenfolge, Sortieren und Umbenennen von Knoten und Attributen. Abbildung 11 gibt einen schematischen Überblick über den Transformationsprozess.[DEV]


Abbildung 11: XSLT

3.3.1.2 XSL Formating Objects (XSLFO)
XSLFO beschreibt das Layout der Darstellung für die Elemente eines XML-Dokuments. [DEV]

3.3.2 Extensible Linking Language (XLL)

3.3.2.1 XML Linking Language (Xlink)
Xlink gibt einen Mechanismus vor, mit dem in XML-Dokumenten Links zu anderen XML-Dokumenten erzeugt werden können.

Es gibt 3 verschiedene Arten von Verweise zwischen Dokumenten: [WIL]

  1. einfache Verweise: Jeder Verweis zeigt auf ein einzelnes Dokument (wie in HTML)
  2. erweiterte Verweise: Ein Verweise besitzt mehreren Ziele (Mehrfachverweise)
  3. Gruppen erweiterter Verweise: Mehrere Mehrfachverweise werden in Gruppen zusammengefasst.
3.3.2.2 XML Pointer Language (Xpointer)
Mit Xpointer können Verweise innerhalb von Dokumenten definiert werden. Dabei wird die Baumstruktur genutzt, um gesuchte Elemente zu lokalisieren.

Auch hier gibt es mehrere Möglichkeiten:

  1. Absolute Lokalisierung: Es wird nach dem eindeutigen Attribut "id" gesucht
  2. Relative Lokalisierung: Von einem gewählten Knoten aus werden z.B. die Eltern, Kinder, Vorfahren betrachtet
  3. Attribut Lokalisierung: Der Zielknoten wird durch bestimmte Attribute identifiziert
  4. String Lokalisierung: Hier wird wie in einer normalen Textdatei nach einer Zeichenkette gesucht
Alle Lokalisierungsarten sind kombinierbar.[WIL]

4 XML Schnittstellen

Mit dem Begriff Schnittstelle sind hier Schnittstellen für Anwendungsprogramme, so genannte XML-Prozessoren, gemeint.

Die am Weitesten verbreiteten Schnittstellen sind SAX und DOM.

4.1 SAX

Simple API for XML (SAX) geht sequentiell durch das XML-Dokument und reagiert auf dessen Elemente, wenn es sie antrifft. Dieses Konzept basiert auf Ereignissen. Es ist besonderst geeignet fü große Dateien oder bei schnellen Zugriffen.[SUN], [DEV]

4.2 DOM

Bei dem Document Object Model (DOM) wird das komplette XML-Dokument als Baumstruktur im Arbeitspeicher zur Verarbeitung bereitgestellt. Es eignet sich besonderst bei Transformationen.

Allgemeines DOM Beispiel:


Abbildung 12: DOM

Wie in Abbildung 12 zu sehen ist, besitzt jedes DOM eine Wurzel namens "Document". Für jeden Teil des XML-Dokuments wird ein eigener Knoten eingefürt z.B. für Kommentare, Attribute. Der Inhalt eines solchen Elements wird zusätzlich als Kindknoten gespeichert.[SUN], [DEV]

5 XML in der Praxis

Hier sind ein paar Beispiele, wo in der Praxis XML genutzt wird: [THO]
  1. Verbreitete Browser (z.B. von Microsoft, Netscape) können in ihren aktuellen Versionen XML-Dateien auf Wohlgeformtheit überprüfen und lesen
  2. Wireless Markup Language (WML): Beschreibungssprache für Displayinhalte auf Handys oder anderen internetfähigen Kleinstgeräten
  3. Mathematical Markup Language (MathML): einfache Darstellung von Formeln in Browsern
  4. Chemical Markup Language (CML): graphische Darstellung der Moleküstrukturen in speziellen Browsern
  5. Astronomical Instrument Markup Language (AIML): Bedienung von Teleskopen und zukünftig vielleicht Satelliten
  6. Biosequence Markup Language (BSML): Format zur Speicherung von Genkantierungen und -sequenzierungen
  7. Scalable Vector Graphics (SVG): Beschreibung von 2-dimensionalen Vektorgrafiken
  8. Synchronized Multimedia Integration Language (SMIL): Drehbücher für verschiedene Medienelemente wie Text, Bilder, Video und Audio
  9. Resource Description Framework (RDF): Sprache zur Beschreibung von Metadaten (Suchmaschinen, Bibliothekskataloge)

Abkürzungsverzeichnis

Literatur

  [Universität Karlsruhe] [Institut für Technische Informatik] [E-Mail an Autor]  
Letzte Änderung: 2003-02-05 15:54:52