~Java4Beginners~
~Java4Beginners~

Einführung

Beschäftigen wir uns als Erstes mit den Grundlagen von XML, bevor wir uns um die verschiedensten Möglichkeiten der Verarbeitung anschauen.
Es handelt sich hierbei nur um einen groben Anriss von XML.

Dokumentenstruktur

Am Anfang eines XML-Dokumentes steht die XML-Deklaration.


Insgesamt stehen uns 3 Attribute in der Deklaration zur Verfügung.
Attribut Beschreibung
version="1.0" Hier wird angegeben, um welche XML-Version es sich handelt. Zur Zeit ist dies 1.0, wobei davon ausgegangen werden kann, dass dies auch in Zukunft so sein wird.
encoding="UTF-8" Dieses Attribut gibt an, welche Zeichenkodierung verwendet wird. Sollten Sie eine XML-Deklaration ohne encoding-Attribut sehen, so ist die Standart-Zeichenkodierung UTF-8
standalone="yes" Dieses Attribut kann nur die Werte yes oder no besitzen. Wenn standalone auf yes gesetzt ist, bedeuted dies, dass keine DTD-Datei benötigt, oder diese im XML-Document integriert ist. Wenn das Attribut nicht gesetzt ist, wird standalone als no angenommen.

XML-Struktur

Jedes XML-Element wird mit einem öffnenden und einem schließenden Tag definiert. Einem Element können Attribute zugewiesen werden.

Bei den Tags gilt es zu beachten, dass in XML im Gegensatz zu HTML explizit zwischen Klein- und Großschreibung unterschieden wird. <Person> und <person> sind unterschiedliche Elemente. Hier nun eine einfache XML, die im weiteren Verlauf als Grundlage für unsere Java-Zugriffe auf XML-Dateien dienen wird.

Beschreibungssprachen

Um unsere Tags und den Inhalt zu definieren, haben wir 2 Möglichkeiten.
  • DTD - Document Type Definition
  • XSD - XML Schema Definition

DTD

Eine DTD definiert die Struktur einer XML, indem Sie die Elemente und die Attribute beschreibt.

Self-HTML DTD - Attribute und Wertzuweisungen

XSD

Ein Schema beschreibt wie DTD die Struktur einer XML-Datei, und ist selber wie eine XML-Datei aufgebaut. Im Gegensatz zu DTD können die Elemente und Attribute viel detailierter beschrieben werden.

Tutorial XSD

Java-API's für XML

In Java haben wir 4 API's zur Verfügung, um XML zu ver- und bearbeiten.
API Kurzbeschreibung
DOM (Document Objekt Model) Das Standard-DOM ist so konzipiert, dass es unabhängig von einer Programmiersprache ist und eine strikte Hierarchie erzeugt.
SAX (Simple API for XML Parsing) SAX ist schneller als DOM, da es auf einem Ereignismodell beruht. Nachteilig ist, dass wahlfreier Zugriff auf Inhalt nur über Zwischenspeicherung möglich ist.
PULL API StAX Dieses etwas aufwendigere Bearbeitung ist an dem Iterator - Design - Pattern angelehnt.
JDOM (Java Document Object Model) Diese API wurde speziell für Java entwickelt und nutzt somit im Gegensatz zu DOM die Collection-API von Java.
Alle Quelltexte und XML-Dateien sind auch unter GitHub einsehbar. GitHub
nach oben Java4Beginners -- Seitenversion 1.01 -- Stand: 2017-05-30