Bitte warten
Bitte installieren Sie den Flash Player, wenn kein E-Book erscheint.
Autor: Stefan Heß
Fach: Informatik - Programmierung
Details
Institution/Hochschule: Westfälische Wilhelms-Universität Münster (Institut für Wirtschaftsinformatik)
Tags: XML-Verarbeitung, Java, Seminar, Softwaretechnik
Jahr: 2004
Seiten: 29
Note: 1,3
Literaturverzeichnis: ~ 21 Einträge
Sprache: Deutsch
Dateigröße: 274 KB
ISBN (E-Book): 978-3-638-34775-4
Textauszug (computergeneriert)
XML-Verarbeitung mit Java
von: Stefan Heß
Inhaltsverzeichnis
1 Einleitung 1
2 Die Extensible Markup Language (XML) 1
2.1 Grammatiken für XML-Dokumente 2
2.2 XPath 3
2.3 XML Stylesheet Language 3
2.4 Namensräume 4
2.5 Processing Instructions 5
2.6 Whitespaces 5
3 XML-Verarbeitung mit SAX 5
3.1 SAX-Interfaces 6
3.1.1 Das Interface XMLReader 7
3.1.2 Das Interface ContentHandler 7
3.1.3 Weitere Interfaces 10
3.2 Weitere hilfreiche Möglichkeiten von SAX 11
4 XML-Verarbeitung mit DOM 12
4.1 Einlesen der XML-Daten 13
4.2 Manipulieren von XML-Dokumenten 15
5 XML-Verarbeitung mit Stylesheets 17
6 XML-Verarbeitung mit JDOM 18
6.1 Einlesen und Ausgeben der XML-Daten 18
6.2 Manipulieren von XML-Dokumenten 18
7 Fazit und Ausblick 19
Ergänzende Literatur 20
Anhang 21
1 Einleitung
In den vergangenen Jahren hat die Verwendung der Extensible Markup Language („XML“) als Datenformat für die Speicherung und Weitergabe von Informationen zune hmend an Bedeutung gewonnen. Vor allem die Plattformunabhängigkeit verhalf XML zu seiner großen Bedeutung. Um die XML-Dateien auch automatisiert erstellen, manipulieren, auswerten und speichern zu können, wurden Schnittstellen und APIs entwickelt, standardisiert und implementiert. Insbesondere zeichnet sich Java durch einen Vielzahl von Möglichkeiten für die Behandlung von XML-Dokumenten aus. Zunächst sollen die Grundlagen von XML aufgezeigt werden, um ein Verständnis für das Konzept dieser Sprache zu entwickelt. Danach soll die Arbeitsweise von SAX und DOM als derzeit populärste APIs für die XML-Verarbeitung vorgestellt werden, sowie anscha uliche Beispiele für die Umsetzung dieser Ansätze in Java gegeben werden. 1 Anschließend wird noch kurz auf die XML-eigene Transformationssprache XSL und deren Verwendung in Java sowie einen neueren, Java-speziellen Ansatz für die XML-Verarbeitung (JDOM) eingegangen.
2 Die Extensible Markup Language (XML)
Die Extensible Markup Language („XML“) ist eine Metasprache.2 Durch sie sollen Sprachelemente einer anderen Sprache definiert werden. Dieses geschieht mit Hilfe von Auszeichnungselementen („Tags“), welche die Struktur eines XML-Dokuments bestimmen. Da jedes geöffnete Tag auch wieder geschlossen werden muss und das bei Verschachtelungen genau in der umgekehrten Reihenfolge des Öffnens, entsteht in jedem XML-Dokument eine Baumstruktur. Ein XML-Dokument besteht aus einer Menge von Elementen. Ein Element besteht immer aus einem Anfangs- und einem End-Tag sowie sämtlichen Daten zwischen diesen beiden Tags. Diese Daten können einfacher Text (konkrete Daten) oder wiederum weitere Unterelemente („Kindelemente“) sein. Darüber hinaus kann ein Element auch mit Attributen (definiert im Anfangs-Tag) versehen werden. Im Kopf eines XML-Dokuments können formale Angaben über ein Dokument (z.B. Versionsnummer, Kodierung etc.) angegeben werden. 3
XML hat sich als das führende Format für den Datenaustausch etabliert. Dies liegt zunächst einmal daran, dass XML so gut wie keine Einschränkungen an die Struktur und den Inhalt eines Dokumentes definiert. So können alle zu transportierenden Daten in der am besten für den Austausch geeigneten Struktur formatiert werden. Da des Weiteren jedes XML-Dokument ein reines Textdokument ist, können XML-Dateien hervorragend über unterschiedlichste Übertragungswege transportiert werden. Zudem ist XML dadurch vollkommen plattformunabhängig.
2.1 Grammatiken für XML-Dokumente
Um XML-Dateien sinnvoll und effektiv verarbeiten können, ist es notwendig, dass die Struktur der Datei bekannt ist (z.B. für den Datenaustausch zwischen 2 Unternehmen). Hierzu besteht die Möglichkeit, eine Grammatik für ein XML-Dokument zu definieren. Die zuvor herausgestellte Freiheit bei der Gestaltung von XML-Dokumenten leidet keineswegs darunter, da auch bei der Festlegung der Grammatik nahezu uneingeschränkte Gestaltungsfreiheit für den Anwender besteht. Die Document Type Definition („DTD“) ist eine einfache und die derzeit noch die verbreitetste Möglichkeit, eine solche Grammatik zu definieren. In ihr können die Struktur des Dokuments (z.B. die Verschachtelung der Elemente) sowie die erlaubten Elemente und deren Eigenschaften (z.B. Attribute, Art der Daten etc.) festgelegt werden. Anhand seiner DTD kann man das XML-Dokument auf seine Gültigkeit überprüfen. 4 Die DTD wird entweder als externe Datei bereitgestellt und über ein DOCTYPE-Element in die XML-Datei eingebunden oder direkt in das Dokument integriert, was sich allerdings der Übersichtlichkeit wegen weniger empfiehlt.5
DTDs bieten also eine sehr einfache und schnelle Möglichkeit, eine Grammatik für XMLDokumente festzulegen. Diese Einfachheit bringt aber auch einige Nachteile mit sich. So verwenden DTDs selbst keine XML-Syntax und passen daher schlecht zu dem Ziel, eine plattformunabhängige und hochportable Spezifikation zu schaffen. Zum anderen können DTDs nur sehr einfache Datenstrukturen definieren und nutzen so die Möglichkeiten von XML bei weitem nicht aus (z.B. exakte Datentypisierung, Definition von Namensräumen6 u.v.m.). Als weit mächtigere Möglichkeit, eine Grammatik zu definieren, wurden daher die XML-Schemata entwickelt. Diese sind sehr viel komplexer als DTDs und daher auch weniger einfach zu erstellen und zu verstehen. Dafür können XML-Dokumente aber auch viel exakter definiert werden. XML-Schemata sind selbst gültige XML-Dokumente und daher sind sämtliche verfügbare XML-Techniken auf diese anwendbar. Auf eine detaillierte Betrachtung von XML-Schemata wird an dieser Stelle jedoch verzichtet, da derzeit DTDs noch weit häufiger zur Definition einer Grammatik benutzt werden und daher noch besser unterstützt werden.
2.2 XPath
Mit Hilfe der XML Path Language („XPath“7) wird es möglich, innerhalb eines XMLDokuments zu navigieren oder auf Daten (also Elemente, Attribute oder konkrete Datensätze) zuzugreifen. Dies geschieht durch die Angabe eines Pfades, welcher durch die Baumstruktur führt. Dies kann sowohl ausgehend vom Wurzelelement des Dokuments als auch relativ zum „aktuellen Standort“ im Dokument geschehen. Die Syntax von XPath ähnelt der für Pfadangaben in Unix/Linux. Es ist außerdem möglich, Beschränkungen („Constraints“) für die Elementauswahl festzulegen, z.B. über den Wert von Attributen oder die geforderte Existenz von Kindelementen. Beispiele:
[...]
1 Die Beispiele sind einfach strukturiert, um die Verständlichkeit zu sichern, z.B. wurde auf eine ausführliche Exception-Behandlung verzichtet.
2 Derzeit aktuelle Version ist XML 1.1, vgl. http://www.w3.org/TR/REC-xml/
3 Ein beispielhaftes XML-Dokument findet sich in Anhang A („dvdsammlung.xml“). Dieses wird auch für die Verarbeitung durch die später folgenden Programmbeispiele herangezogen.
4 Ein zu seiner DTD konformes XML-Dokument bezeichnet man somit als „gültiges Dokument“. Dies ist eine Steigerung zu einem lediglich syntaktisch korrekten Dokument, welches als „wohlgeformt“ bezeichnet wird.
5 Als Beispiel findet sich in Anhang B eine mögliche DTD („dvdsammlung.dtd“) für das XMLDokument aus Anhang A.
6 zum Begriff Namensräume siehe Kapitel 2.4.
7 Derzeit aktuelle Version ist XPath 1.0, vgl. http://www.w3.org/TR/xpath
Kommentare
Dieser Text kann über folgende URL aufgerufen und zitiert werden: