Zum Inhalt springen

  • Beiträge
    72
  • Kommentare
    239
  • Aufrufe
    12.695

Modulbericht: XML


kurtchen

908 Aufrufe

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

Sehr gute Erläuterungen zu XML. Vielen Dank.

 

Wobei das menschenlesbar ja nur eingeschränkt gilt bzw. je nach Anzahl der Tags etc. zumindest sehr mühsam ist. Aber ist schon klar, wie es gemeint ist.

 

Zitat

Lehrbuch "XML - DTD, XML-Schema, XPath, XQuery, XSLT, XSL-FO, SAX, DOM"

 

Das ist der Buchtitel? - Schon etwas außergewöhnlich ;).

Link zu diesem Kommentar

Das ist natürlich relativ. Meine Partnerin würde XML nicht als menschenlesbar beschreiben. Aber es ist schon möglich, eine Konfigurationsdatei in XML direkt in einem einfachen Texteditor zu bearbeiten.

 

XML ist der Haupttitel, der Rest ist der Untertitel. Den habe ich hier ausnahmsweise genannt, weil er gut zusammenfasst, welche Inhalte im Modul behandelt werden.

Link zu diesem Kommentar

Heute kam auch das Ergebnis der Präsenzklausur im Modul XML: Mit den Inhalten des Moduls bin ich gut zurecht gekommen. Anscheinend konnte ich das auch in der Klausur umsetzen. Das Ergebnis ist erfreulich. Im Gegensatz zum Modul BWL1 wäre es hier auch ohne Bonuspunkte eine respektable Note geworden. Ich bin zufrieden.

 

Anderen Studierenden des Moduls würde ich empfehlen, möglichst viel mit dem XML-Editor zu spielen. Macht nicht nur die Einsendeaufgaben sondern probiert auch die freiwilligen Aufgaben im Lehrtext aus! Insbesondere würde ich empfehlen, Codebeispiele aus dem Lehrbuch abzutippen und selbst laufen zu lassen. Und dann ein bisschen zu modifizieren oder versuchen, etwas ähnliches aber eigenes praktisch umzusetzen. Erst über die Fehler, die dann passieren, bekommt man nach und nach ein Gefühl für die Sache. Um in der Klausur schnell genug zu sein, halte ich es für wichtig, die Kursthemen nicht nur zu verstehen sondern das Denken instinktiv gleich in ergiebige Richtungen zu lenken und Sackgassen zu vermeiden.

 

Letztes Pflichtmodul im Bereich Web-Technologien ist nun Multimedia. In der Präsenzklausur dieses Moduls sind keine Hilfsmittel zugelassen, wohl aber ein Taschenrechner. Außerdem wird eine Formelsammlung zur Verfügung gestellt. Ich erwarte also, dass das Auswendiglernen von Fakten in diesem Modul eine wichtige Rolle spielen wird, ähnlich vielleicht wie im Modul "Computernetze". Der Taschenrechner lässt darauf schließen, dass man gelerntes Faktenwissen anwenden muss, um Probleme zu lösen. So etwas gefällt mir grundsätzlich gut. Ich rechne aber damit, bei diesem Modul etwas mehr Zeit in die Wiederholung des Stoffes stecken zu müssen. Ich schiebe das noch eine Weile vor mir her.

 

Letztes Wahlpflichtmodul im Bereich Webtechnologien ist "Aktuelle Webtechniken", eine Einführung in Java Server Faces (JSF), eine javabasiertes serverseitiges Framework für Web-Anwendungen. Dieses Modul könnte ich nun belegen, weil ich seit dem Abschluss des Moduls XML alle inhaltlichen Voraussetzungen erfülle. In diesem Modul soll praktisches Programmieren wieder eine größere Rolle spielen. Ich glaube, dass mir das großen Spaß machen wird. Leider ist es eines der wenigen Module mit Programmieranteil, die nun noch übrig sind. Das schiebe ich nicht vor mir her, sondern ich spare es mir auf. Für Zeiten, in denen ich einen Motivationsschub brauche.

 

Nächste Schritte im Studium sollen nun die Module Geschäftsprozessmanagement und BWL2 sein.

Link zu diesem Kommentar

Hallo Kurtchen,

zunächst einmal Danke für deinen sehr informativen Blog!

Ich möchte bzw. werde ab Januar ebenfalls diesen Studiengang bei Springer Campus absolvieren (teilw. auch auf Grund deiner Ausführungen hier).

Während des durchlesens kam mir nur folgende Frage:

Eigentlich sind doch nur drei Wahlmodule zu belegen. Aber hier im Blog sind bereits mehr als abgeschlossen erwähnt oder sind in Planung?

Es interessiert mich deshalb, weil ich auch evtl. an mehr als drei Wahlmodulen  teilnehmen möchte.

 

Viele Grüße 

Link zu diesem Kommentar

Aktuell sitze ich an meiner Projektarbeit und brauche eine Möglichkeit, einen Objektgraphen als Datei zu speichern. Weil es wünschenswert ist, dass diese Datei menschenlesbar ist, möchte ich gerne ein XML-Format verwenden. Java bietet dazu eine relativ einfache Möglichkeit mit JAXB, die ich auch schon häufiger genutzt habe. Dazu werden die Klassen, die als XML serialisiert werden sollen, mit Annotationen versehen. Dann geht der Rest fast automatisch. Leider setzt das voraus, dass die Klassen einen parameterlosen Standard-Konstruktor und Setter für alle Attribute haben. Mein Graph enthält aber Objekte, die immutable sind. Setter und einen parameterlosen Standardkonstruktor kann es somit nicht geben.

 

Darum musste ich noch einmal auf dieses Modul zurückkommen. Im letzten Kapitel wird die Verarbeitung von XML mit Java thematisiert. Das Kapitel ist wirklich sehr knapp und stellt lediglich kurz SAX und DOM vor. Zu meiner Überraschung konnte ich aber mit den Vorkenntnissen aus dem Modul relativ fix einen XML-Kodierer und -Dekodierer implementieren. Der Dekodierer ist validierend und arbeitet mit SAX.

 

Beim Schreiben des XML-Schemas habe ich gemerkt, dass ich ein paar Sachen nachschlagen musste. Ich kam aber schnell wieder rein ins Thema. Schön, dass ich eine Gelegenheit hatte, die Inhalte aus dem Modul einmal praktisch anzuwenden.

 

Möglicherweise werde ich auch die Inhalte zu XSLT noch nutzen. Damit könnte ich die erzeugten Dateien z.B. in HTML wandeln und in übersichtlicherer Form im Browser anzeigen. Das ist zwar keine Priorität, aber vielleicht komme ich noch darauf zurück.

Link zu diesem Kommentar

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


×
  • Neu erstellen...