IT-Zertifikat: Advanced Markup & Metadata - Handout DTD

2
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.

Transcript of IT-Zertifikat: Advanced Markup & Metadata - Handout DTD

Page 1: IT-Zertifikat: Advanced Markup & Metadata - Handout DTD

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.

Page 2: IT-Zertifikat: Advanced Markup & Metadata - Handout DTD

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">