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 03/2017: EFFIZIENTES BÜRO

Digitale Ausgabe: Preis € 5,95
(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 der Maus
Thomas Roch, 21.02.2017 13:43, 1 Antworten
Nach 20 Jahren Windows habe ich mich zu Linux Ubuntu probeweise durchgerungen!!! Installation - k...
KWin stürzt ab seit Suse Leap 42.2
Wimpy *, 21.02.2017 09:47, 3 Antworten
OpenSuse 42.2 KDE 5.8.3 Framework 5.26.0 QT 5.6.1 Kernel 4.4.46-11-default 64-bit Open-GL 2....
Shell-Befehl zur Installation von Scanner-Treiber
Achim Zerrer, 15.02.2017 12:13, 10 Antworten
Hallo, ich habe Einen Brother Drucker mit Scanner. Nachdem ich mit Hilfe der Community den Druck...
kiwix öffnet ZIM Datei nicht
Adrian Meyer, 13.02.2017 18:23, 1 Antworten
Hi, ich nutze Zim Desktop für mein privates Wiki. Fürs Handy habe ich mir kiwix heruntergelade...
registration
Brain Stuff, 10.02.2017 16:39, 1 Antworten
Hallo, Das Capatcha auf der Registrierungsseite von linux-community ist derartig schlecht gema...