XML

Typenfrage

Zu einer gültigen XML-Datei gehört stets eine Definition der verwendeten Tags. Wir zeigen, wie solch eine "Document Type Definition" (DTD) entsteht.

Im LinuxUser 11/2001 haben wir das Programm KXMLEditor vorgestellt und gezeigt, wie damit XML-Dateien erstellt werden. Gültige XML-Dokumente kann dieser XML-Editor jedoch nicht schreiben, da es keine Möglichkeit gibt, eine DTD, eine Document Type Definition, aufzusetzen, in der die verwendeten Tags festgelegt werden. Diese Lücke gilt es nun, mit einfachen Mitteln zu schließen.

DTD – wozu?

In XML sind Inhalt, Struktur und Layout der Daten strikt voneinander getrennt. Eine DTD definiert die Tags, die in einem Dokument Verwendung finden dürfen, beschreibt, wie diese Elemente ineinander geschachtelt werden können und legt schließlich die Attribute der einzelnen Tags fest [1]. Zum Erstellen dieser Definitionen benötigen Sie nichts weiter als einen beliebigen Editor, der Text unformatiert speichert, z. B. Kate oder (X)Emacs.

Mit Hilfe einer DTD kann ein XML-Parser feststellen, ob das XML-Dokument gültig ist, sich also an die in der DTD aufgestellten Regeln hält. Autoren von XML-Dokumenten schätzen DTDs, da sie darin auf einen Blick sehen, welche Tags auf welche Art verwendet werden.

Intern und extern

Es gibt zwei Möglichkeiten, eine DTD mit einem XML-Dokument zu verbinden: Interne DTDs stehen im Prolog, dem Dateikopf der XML-Datei, gleich hinter der <?xml>-Zeile:

<?xml version="1.0">
 <!DOCTYPE Name_der_Definition [[Hier folgt die DTD…]
    ]>[… und hier stehen die Text-Daten]

Externe DTDs befinden sich in einer separaten Datei, auf die das XML-Dokument verweist. Dieser Eintrag steht ebenfalls im Prolog und sieht für eine in der Datei adressen.dtd enthaltene DTD namens adressen, die im selben Verzeichnis wie das XML-Dokument liegt, so aus:

<?xml version="1.0">
 <!DOCTYPE adressen SYSTEM "adressen.dtd">[…]

Das Schlüsselwort SYSTEM besagt, dass es sich um eine private DTD handelt, die nicht öffentlich zugänglich ist. Mit PUBLIC werden hingegen "öffentliche" DTDs gekennzeichnet, die z. B. auf einem Web-Server liegen. So ist etwa die DTD für HTML 4.0 (XHTML) öffentlich und wird folgendermaßen in ein HTML-Dokument eingebunden:

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">

Sie können eine beliebige URL als DTD-Quelle eingeben und dabei relative und absolute Pfade verwenden.

Externe DTDs sind genauso aufgebaut wie interne, allerdings fehlt ihnen das Schlüsselwort <!DOCTYPE>, da es schon in der XML-Datei steht. Ihr Vorteil: Sie können von mehreren Dateien verwendet werden und sind leichter zu warten. Zudem sorgen sie dafür, dass Daten und Definition des XML-Dokuments sauber getrennt bleiben.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • XML und XSLT
    XML gut und schön – doch ohne formatierte Darstellung ist es nur die Hälfte wert. Der dritte Teil unserer Miniserie beschäftigt sich mit der Ausgabe von XML-Daten mit Hilfe von XSLT.
  • XML-Editor KXMLEditor
    XML wird immer wichtiger – KXMLEditor erleichtert den Umgang mit diesem Datenformat.
  • XML unter KDE
    Seit ihrer ersten Vorstellung wurde die Extensible Markup Language (XML) als Revolution in der IT-Landschaft gefeiert. Visionäre sahen gar schon das Ende von HTML und des konventionellen Web-Designs gekommen. Zwar hat sich XML inzwischen als wichtiges Datenformat etabliert, doch der Rausch ist vorbei. Es ist ruhiger geworden um XML. Wir zeigen Ihnen, wie Sie unter KDE selbst XML-Dateien erzeugen und bearbeiten können.
  • XML-Plugin für Kate
    XML von Hand zu schreiben ist fehlerträchtig: Das Kate-XML-Plugin sorgt für Abhilfe und unterstützt die Benutzerin bei der Eingabe von XML-Daten.
Kommentare

Infos zur Publikation

LU 10/2016: Kryptographie

Digitale Ausgabe: Preis € 0,00
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Probleme mit MPC/MPD
Matthias Göhlen, 27.09.2016 13:39, 0 Antworten
Habe gerade mein erstes Raspi Projekt angefangen, typisches Einsteigerding: Vom Raspi 3B zum Radi...
Soundkarte wird erkannt, aber kein Ton
H A, 25.09.2016 01:37, 6 Antworten
Hallo, Ich weiß, dass es zu diesem Thema sehr oft Fragen gestellt wurden. Aber da ich ein Linu...
Scannen nur schwarz-weiß möglich
Werner Hahn, 20.09.2016 13:21, 2 Antworten
Canon Pixma MG5450S, Dell Latitude E6510, Betriebssyteme Ubuntu 16.04 und Windows 7. Der Canon-D...
Meteorit NB-7 startet nicht
Thomas Helbig, 13.09.2016 02:03, 4 Antworten
Verehrte Community Ich habe vor Kurzem einen Netbook-Oldie geschenkt bekommen. Beim Start ersch...
windows bootloader bei instalation gelöscht
markus Schneider, 12.09.2016 23:03, 1 Antworten
Hallo alle zusammen, ich habe neben meinem Windows 10 ein SL 7.2 Linux installiert und musste...