1. Einführung


[ XML und Haskell Seminar ] ... [ Thema XML Verarbeitung mit Haskell ] ... [ 2. Funktionale Programmierung ]

XML (Extensible Markup Language) ist eine Auszeichnungssprache (Markup Language) für strukturierte Dokumente und dient der sequentiellen Speicherung und Übermittlung strukturierter Daten.
Ein Grundbaustein einer Software zur Verarbeitung von XML-Dokumenten ist ein XML-Parser. Der Parser liest ein Dokument in XML-Syntax ein und stellt es als Dokumentbaum der eigentlich verarbeitenden Anwendung zur Verfügung. Das XML-Dokument wird also von einer sequentiellen Darstellung in eine hierachische Darstellung (Baum) überführt.
Die Verarbeitung von XML-Dokumenten wird dann im wesentlichen die Manipulation baumartiger Datenstrukturen sein. Für die Implementierungssprache eines solchen Parsers wird folglich eine Sprache benötigt, die die Verarbeitung von baumstrukturierten Daten gut unterstützt.
Funktionale Programmiersprachen wie Haskell unterstützen Bäume als Basis-Daten-typen und bieten Konzepte wie benutzerdefinierte Datentypen und Pattern-Matching, und sind daher besonders gut für die Implementierung von Dokumentverarbeitungssysteme geeignet.

Funktionale Programmiersprachen haben leider nicht den besten Ruf und gelten oft als reine Experimentiersprachen, die nur für die Forschung und Ausbildung bestimmt sind. Des weiteren hält die Meinung an, dass sie ineffizient und ungeeignet für die Realisierung grösserer Anwendungen sind. Auch Haskell kann sich diesem Vorurteil nur bedingt entziehen, denn das I/O Handling gehört nicht zu den effizientesten. Dennoch stehen funktionale Lösungen den imperativen (z.B. Java) mit nichts nach. Gerade bei der eigentlichen Verarbeitung, der Manipulation der Baumstrukturen, zeigt sich ihre Stärke deutlich.
Eine der wichtigsten Aufgaben ist die Lokalisierung von Teildokumenten, die eine angegebene Strukturbedingung erfüllen und in einem bestimmten Kontext stehen.
XML stellt Daten als Bäume dar. Baum-Knoten werden hierbei als Elemente bezeichnet und sind ggf. durch Attribute annotiert. Auch Textelemente sind möglich. Durch Document Type Definitions (DTDs) lässt sich die Struktur von XML-Dokumenten beschreiben.

Im Vergleich zu C, C++ oder Java ist das Haskell-Typ-System sehr streng.
Allgemein wird das Haskell-Typ-System als gut verständlich, gut dokumentiert und gut implementiert bezeichnet. Diese Attribute lassen es Ideal erscheinen einen verständlichen Haskell Datentyp zu entwickeln, welcher der XML Baumstruktur gerecht wird.
[ XML und Haskell Seminar ] ... [ Thema XML Verarbeitung mit Haskell ] ... [ 2. Funktionale Programmierung ]