Fachkonzept - Validierung von XML-Dokumenten
XML-Dokumenttypdefinitionen
Eine XML-Dokumenttypdefinition (kurz DTD) legt einen Dokumenttyp präzise fest. Die folgende DTD beschreibt genau, wie ein XML-Dokument zur Beschreibung eines Oberstufenkurses strukturiert sein muss.
<!ELEMENT Kurs (Fach, Typ, Stufe, Bezeichner, Unterricht, Lehrer, Schüler*)>
<!ELEMENT Fach (#PCDATA)>
<!ELEMENT Typ (#PCDATA)>
<!ELEMENT Stufe (#PCDATA)>
<!ELEMENT Bezeichner (#PCDATA)>
<!ELEMENT Unterricht (Einheit+)>
<!ELEMENT Einheit (Tag, Stunde, Raum?)>
<!ELEMENT Tag (#PCDATA)>
<!ELEMENT Stunde (#PCDATA)>
<!ELEMENT Raum (#PCDATA)>
<!ELEMENT Lehrer (Name, Vorname)>
<!ATTLIST Lehrer
kürzel CDATA #REQUIRED
geschlecht CDATA #REQUIRED
>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Vorname (#PCDATA)>
<!ELEMENT Schüler (Name, Vorname, Kurssprecher?)>
<!ATTLIST Schüler
geschlecht CDATA #REQUIRED
>
<!ELEMENT Kurssprecher EMPTY>
Eine solche DTD speichert man am besten in einer eigenen Datei ab (z. B. mit dem Namen kurs.dtd
).
Im XML-Dokument wird dann auf die DTD in dieser Datei verwiesen.
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE Kurs SYSTEM "kurs.dtd">
<Kurs>
<!-- Organisation -->
<Fach>Informatik</Fach>
<Typ>Grundkurs</Typ>
<Stufe>11</Stufe>
<Bezeichner>11-in-1</Bezeichner>
<Unterricht>
<Einheit>
<Tag>Montag</Tag>
<Stunde>7</Stunde>
<Raum>B04</Raum>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>3</Stunde>
</Einheit>
<Einheit>
<Tag>Mittwoch</Tag>
<Stunde>4</Stunde>
</Einheit>
</Unterricht>
<!-- Personen -->
<Lehrer kürzel="SU" geschlecht="w">
<Name>Schuster</Name>
<Vorname>Christiane</Vorname>
</Lehrer>
<Schüler geschlecht="m">
<Name>Schwarz</Name>
<Vorname>Tobias</Vorname>
</Schüler>
<Schüler geschlecht="w">
<Name>Baum</Name>
<Vorname>Nina</Vorname>
</Schüler>
<Schüler geschlecht="w">
<Name>Müller</Name>
<Vorname>Katrin</Vorname>
<Kurssprecher/>
</Schüler>
<Schüler geschlecht="m">
<Name>Roth</Name>
<Vorname>Andreas</Vorname>
</Schüler>
<!-- ... -->
</Kurs>
Validierung von XML-Dokumenten
Ein XML-Dokument, das alle Festlegungen einer DTD erfüllt, heißt gültig bzw. valide bzgl. dieser DTD.
Gültigkeit bzgl. einer DTD wird von Browsern (noch) nicht angezeigt. Man kann die Gültigkeit aber mit Hilfe spezieller Validierer überprüfen lassen. So stellen spezielle XML-Editoren meist Validierer zur Überprüfung des Dokumententyps bereit. Zudem gibt es Webseiten wie XML-Validation, die einen Validierungsservice bereit stellen.