Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung IT-Zertifikat der Phil.-Fak.: Advanced Markup & Metadata Jan G. Wieners, MA / www.hki.uni-koeln.de/wieners
1/2
DTD - Document Type Definition / Dokumenttypdefinition – Das Wichtigste auf einen Blick
1. XML-Dokument mit externer Dokumenttypdefinition verknüpfen:
<?xml version=”1.0” encoding=”iso-8859-1” standalone=”no” ?>
<!DOCTYPE wurzelelement SYSTEM ”dateiname.dtd”>
<filmdatenbank>
<film>
<titel></titel>
<jahr></jahr>
<regie></regie>
</film>
<film>[…]</film>
</filmdatenbank>
2. XML-Elemente (Tags) in DTD definieren:
a. Verschachtelung abbilden:
<!ELEMENT filmdatenbank (film+)>
<!ELEMENT film (titel, jahr, regie)>
b. Inhalt der Elemente spezifizieren (immer #PCDATA):
<!ELEMENT titel (#PCDATA)>
<!ELEMENT jahr (#PCDATA)>
<!ELEMENT regie (#PCDATA)>
Grundregeln:
Jedes in einer Datei zu verwendende Tag muss durch eine <!ELEMENT ...> Deklaration explizit
eingeführt werden. In dieser Deklaration folgt zunächst der Name des Tags, in exakt der gleichen
Schreibung (!), in der er in den Daten verwendet werden soll.
Dahinter folgt in einem Klammerpaar ein Inhaltsmodell.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung IT-Zertifikat der Phil.-Fak.: Advanced Markup & Metadata Jan G. Wieners, MA / www.hki.uni-koeln.de/wieners
2/2
Spezifika Inhaltsmodell:
In Form einer geordneten Liste werden alle Tags, die in dem betroffenen enthalten sein dürfen, in der
Reihenfolge angegeben, in der sie im XML-Code vorkommen müssen:
<!ELEMENT bild (titel, url, abstract, person+, bauwerk+)>
Steht hinter dem Namen kein Sonderzeichen, so muss das Tag genau einmal vorkommen.
+ Steht hinter dem Namen ein Pluszeichen, bedeutet dies, dass das Tag mindestens einmal
vorkommen muss, aber auch öfter vorkommen kann.
? Steht hinter dem Namen ein Fragezeichen (kein Beispiel in den Daten), bedeutet dies, dass das
Tag einmal vorkommen darf, aber nicht muss.
* Steht hinter dem Namen ein Sternchen - '*' (kein Beispiel in den Daten), bedeutet
dies, dass das Tag mehrmals vorkommen darf, aber auch ganz fehlen darf.
#PCDATA Die spezielle Konstruktion #PCDATA (PCDATA = "Parseable Character Data") teilt mit,
dass an dieser Stelle beliebige Daten stehen dürfen. Attribute codieren
<!ATTLIST tagname
attributname CDATA #IMPLIED>
#REQUIRED Jedes Element mit dem Namen „tagname“ muss das Attribut „attributname“
enthalten.
#IMPLIED Das Attribut kann angegeben werden, muss jedoch nicht angegeben werden.
Attributwerte voraussetzen:
<!ATTLIST abstract
language (german | english) #REQUIRED >
Hierbei wird die Voraussetzung formuliert, dass das Attribut „language” des Tags „abstract“ entweder den
Wert „german“ oder („|“) „english“ tragen muss:
<abstract language="german">
oder
<abstract language="english">
Top Related