Modulbericht: XML
Welche Bedeutung hat das Modul XML im Studiengang?
Das Modul XML ist Pflicht für Studierende im Studiengang Web- und Medieninformatik. Es ist zugleich Baustein für die Hochschulzertifikate "Web-Entwickler" und "Software-Architekt" und wird als sinnvolle Vorbereitung für das Modul "Aktuelle Webtechniken" genannt, bei dem es um Java Server Faces geht. Die inhaltlichen Voraussetzungen für XML sind überschaubar; lediglich "Grundlagen der Informatik 1" sollte man belegt haben. Im Prinzip könnte man XML also schon im ersten Semester belegen.
Für Studierende der Wirtschaftsinformatik ist dieses Modul nicht vorgesehen. Sie erwerben Grundkenntnisse in XML im Pflichtmodul "Web-Programmierung". Dort ist XML aber nur ein Thema unter vielen.
Grundlage für das Modul ist das Lehrbuch "XML - DTD, XML-Schema, XPath, XQuery, XSLT, XSL-FO, SAX, DOM" von Margit Becher. Die Autorin war zugleich auch meine Tutorin, was bei Fragen zum Lehrtext immer praktisch ist. Das Lehrbuch hat an die 300 Seiten; der Umfang ist also für Springer Campus leicht unterdurchschnittlich. Die Stofffülle ist dennoch nicht zu unterschätzen.
Was ist XML?
Worum geht es nun? XML ist eine Auszeichnungssprache, d.h. Text oder andere Inhalte werden mit sogenannten Tags eingeschlossen. Die Tags spezifizieren z.B., um was für eine Art Inhalt es sich handelt, etwa einen Namen, ein Datum oder auch einen komplexen, zusammengesetzten Inhalt wie eine Adresse oder eine komplette Bestellung. Die Auszeichnung erleichtert es Maschinen, die Inhalte zu verarbeiten.
Im Gegensatz zu HTML sind in XML die Tags nicht vordefiniert. Der Autor eines XML-Dokumentes kann selbst nach Bedarf Tags definieren und verwenden. XML ist also erweiterbar - engl. extensible - und das Kürzel XML steht für Extensible Markup Language. Zu beachten ist lediglich, dass geöffnete Tags wieder geschlossen werden und dass Tags sich nicht überlappen dürfen. Sie können lediglich ineinander geschachtelt werden. Dies nennt man Wohlgeformtheit. Tags können auch Attribute aufweisen. Man kann sich vorstellen, dass dem Element Eigenschaften hinzugefügt werden.
Ein XML-Dokument kann man als Baumstruktur visualisieren. XML-Dateien sind maschinenlesbar und zugleich menschenlesbar. Aus diesem Grund eignen sie sich z.B. gut für Konfigurationsdateien. Man kann XML aber auch gut verwenden, um strukturierte Daten systemübergreifend oder über das Internet auszutauschen.
XML-Dateien können mit CSS-Stylesheets verknüpft werden. Die Tags stehen dann für die Struktur der Daten, innerhalb der Tags stehen die eigentlichen Daten und das Stylesheet gibt an, wie die Daten darzustellen oder zu präsentieren sind.
Mit DTD oder XML-Schema definiert man die Struktur einer XML-Datei
Interessant ist zunächst die Möglichkeit, die Struktur der Daten in einer XML-Datei in allgemeiner Form zu beschreiben. Man kann z.B. festlegen, dass eine Adresskartei aus Adressen besteht, die wiederum aus Name, Straße, Hausnummer, Postleitzahl und Ort in genau dieser Reihenfolge bestehen müssen. Ein XML-Dokument ist dann eine Instanz oder eine konkrete Ausprägung dieser allgemeinen Struktur. XML-Dateien können gegen eine solche Strukturdefinition gecheckt werden, d.h. ein Algorithmus prüft, ob die Datei der festgelegten Struktur entspricht. Ist dies der Fall, sagt man, die Datei sei valide. Das ist nützlich für Software, die Daten in XML-Form automatisiert verarbeiten soll. Man kann so Fehler in der Verarbeitung der Datei vermeiden.
Es gibt 2 Möglichkeiten, die Struktur einer XML-Datei zu definieren. Die ältere ist die DTD (Document Type Definition). Die neuere ist XML-Schema. Letzteres ist komplexer, hat aber viele Vorteile. Besonders nützlich ist die Möglichkeit, viele verschiedene Datentypen zu unterscheiden, z.B. nummerische Werte, Datumswerte, Uhrzeiten und dergleichen. Man kann auch eigene Datentypen definieren, z.B. durch Werteinschränkung oder Kombination vordefinierter Typen. So kann die Struktur der zu verarbeitenden Daten viel präziser beschreiben als mit der DTD. Im Kurs werden beide Möglichkeiten ausführlich behandelt. Im Gegensatz zum Modul "Web-Programmierung" werden auch viele Detailfragen geklärt und seltener auftretende Anwendungsfälle vorgestellt. Einsendeaufgaben hier bestehen üblicherweise darin, in natürlicher Sprache spezifizierte Anforderungen an eine Datenstruktur als DTD oder XML-Schema präzise zu beschreiben.
Wir können nun strukturierte Daten in einer Textdatei ablegen, die für Maschine wie Mensch zu lesen ist. Wir können die Struktur der Daten präzise beschreiben und eine Maschine prüfen lassen, ob Daten die für eine automatisierte Verarbeitung nötige Struktur haben.
Mit XPath und XQuery extrahiert man Informationen aus einer XML-Datei
XML-Dokumente können sehr lang und umfangreich werden. Nun gibt es Anwendungsfälle, bei denen man bestimmte Informationen aus einem XML-Dokument extrahieren möchte. Dazu werden im Kurs 2 Möglichkeiten behandelt: XPath und XQuery. XPath bietet die Möglichkeit, durch die Baumstruktur des Dokumentes zu navigieren und Elementeinhalte und Attribute zu testen, um bestimmte Elemente und Attribute herauszufiltern. Aus einer umfangreichen Vorlesungsliste in XML-Form kann man so z.B. alle Lehrveranstaltungen eines bestimmten Professors im Sommersemester eines bestimmten Jahres mit mehr als 2 SWS herausfiltern. XQuery bietet noch weitergehende Möglichkeiten, z.B. durch Schleifen. XQuery wird manchmal auch "SQL des 21. Jahrhunderts" genannt. Ganz so elegant und deklarativ wie SQL ist es aber - zumindest in der im Kurs behandelten Version - noch nicht. So müssen z.B. Joins noch von Hand ausprogrammiert werden. Bei Einsendeaufgaben in diesem Kursabschnitt geht es in der Regel darum, aus einer gegebenen XML-Datei bestimmte Informationen per XPath oder XQuery zu extrahieren.
Mit XSLT kann man XML-Dokumente automatisch in andere Dokumente transformieren
Im nächsten großen Kursabschnitt geht es um XSLT. Diese Technik ermöglicht, ein XML-Dokument in ein anderes Dokument zu transformieren, z.B. ein neues XML-Dokument aber auch in eine HTML-Datei. In XSLT können XPath-Ausdrücke verwendet werden. Man kann XSLT also z.B. benutzen, um aus einer XML-Datenbasis bestimmte Informationen zu extrahieren und daraus automatisch HTML-Seiten oder Fragmente von HTML-Seiten zu bauen. Dazu werden Schablonen definiert, die auf bestimmte Elemente des XML-Dokumentes angewendet werden. Bei Einsendeaufgaben in diesem Kursabschnitt ist üblicherweise ein XML-Dokument vorgegeben, das per XSLT in HTML-Dokument transformiert werden soll, das ausgewählte Inhalte des ursprünglichen Dokumentes in bestimmter Form präsentiert. In einem eigenen Kapitel wird noch XSL-FO vorgestellt. Das kann z.B. benutzen, um aus XML-Dateien automatisch PDFs zu erzeugen.
Der Abschluss des Kurses bildet ein Kapitel über die Verarbeitung von XML in Java mit SAX und DOM. Dieses durchaus interessante Kapitel ist allerdings nicht mehr prüfungsrelevant.
Ein gutes Modul, wenn man die richtigen Werkzeuge nutzt
Der Lehrtext ist gut strukturiert und die Aufgaben sinnvoll darauf abgestimmt. Die Rückmeldungen durch meine Tutorin waren präzise, hilfreich und kamen meist schnell. Zu Beginn des Kurses habe ich leider viel Zeit vergeudet, indem ich versucht habe, ohne den empfohlenen XML-Editor OxygenXML auszukommen. Der ist proprietär und leider nicht billig. Studierende können ihn allerdings für 30 Tage kostenlos testen, nachdem sie sich registriert haben. 30 Tage erschienen mir etwas knapp für die Bearbeitung des Kurses. Darum hatte ich zunächst versucht, mit OpenSource-Tools auszukommen. Den Kursteil zur DTD und zu XML-Schema konnte ich so noch gut bearbeiten, auch wenn es müsam voran ging. Spätestens für XPath ist es von enormem Vorteil, einen professionellen XML-Editor zu Verfügung zu haben. Als ich mich schließlich doch wiederwillig für OxygenXML registrierte, musste ich nach wenigen Minuten einsehen, dass das besser von Anfang an hätte machen sollen. Man kann damit viel komfortabler und vor allem schneller arbeiten. Eiert also nicht rum wie ich sondern besorgt euch von Anfang an das richtige Werkzeug.
Online- und Präsenz-Klausur
Online-Klausur und Präsenzklausur fand ich vom Schwierigkeitsgrad vergleichbar. Der Zeitdruck in der Online-Klausur erschien mir höher. Möglicherweise wurde hier in Anschlag gebracht, dass man in der Präsenzklausur keine Entwicklungsumgebung zur Verfügung hat, während der Online-Klausur aber schon.
In der Präsenzklausur war EIN XML-Dokument gegeben. Auf der Grundlage dieses Dokumentes wurden ALLE wesentlichen Themen des Kurses abgeprüft: DTD, XML-Schema, XPath, XQuery und XSLT. Das erscheint mir vernünftig. Indem sich alle Aufgaben auf EIN Dokument beziehen, muss man sich nicht ständig neu einlesen und die Prüfer können den Stoff breiter abdecken. Mein Eindruck war, dass die Aufgabenstellungen sich auf häufig verwendete Anwendungsfälle konzentrieren, hier also nicht die exotischsten Spezialfälle abgefragt werden. Ein Klausurergebnis liegt mir aber noch nicht vor.
Fazit
XML hat mir Spaß gemacht. Man braucht nicht viel Phantasie, um sich vorzustellen, welchen Nutzen diese Sprache für einen Web-Informatiker haben könnte. Wünsche, was ich gerne NOCH gelernt hätte, sind bei mir diesmal nicht offen geblieben; das Modul ist aus meiner Sicht inhaltlich vollständig.
Es würde mich nun reizen, auch noch das Modul "Aktuelle Webtechniken" im Wahlbereich zu belegen, bei dem es um Java Server Faces geht. XML wird dafür als inhaltliche Voraussetzung genannt. Kommilitonen, dieses Modul schon belegt haben, berichten mir, dass XML hierfür durchaus sehr nützlich ist. Da ich diese Voraussetzung nun erfülle und mir die Kurse zur serverseitigen Programmierung mit Java gut gefallen haben, bin ich schon sehr gespannt auf diese Einführung in JSF. Allerdings wird es wohl Herbst werden, bevor ich dazu komme. Das größte Chaos meines Umzuges ist zwar überstanden und ich habe nun wieder einen Arbeitsplatz und einen Internetanschluss; trotzdem hängt am Umzug ein Rattenschwanz zu Kleinigkeiten, die noch erledigt werden müssen; und die mir Tag für Tag Zeit rauben, die eigentlich gerne ins Studium stecken würde. Mal sehen, wie lange dieses Stadium noch dauert.
5 Kommentare
Empfohlene Kommentare
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden