« Start: DTD

DTD: Leere Elemente

../../_images/hochsitz.jpg

Lernziel

Leere Elemente sind solche, die keinen Inhalt haben, jedoch Attribute besitzen können. Sie lernen, wie Sie diese in einer DTD erstellen können.

Handlungsanweisungen

Aufgaben
  1. Jeder CD und jedem Buch soll ein Bild hinzugefügt werden. Ändern Sie die DTD und den Inhalt des jeweiligen XML-Dokumentes.

  2. Ein Bild soll für die Transformation zu HTML auch eine kurze Beschreibung erhalten. Fügen Sie das Attribut „beschreibung“ als optionales Angabe hinzu.

  3. Das Beispiel in Kapitel 2 enthält einen Fehler. Finden Sie den Fehler und schicken Sie dem Tutor einen Bug-Report. Benutzen Sie dazu das interne Mail-System der Lernplattform.

Definition leerer Elemente:

Sie kennen Sie vom HTML, einige Beispiele:

<hr />
<br />
<img src="bild.png" />

Allen ist gemein, dass sie kein schließendes Element-Teil benötigen. Der Slash (/) kennzeichnet, dass es sich um ein leeres Element handelt. Elemente können auch Attribute enthalten, siehe auch src=“bild.png“.

Wie definieren Sie nun leere Elemente in einer DTD?

<!ELEMENT Name_des_Elements EMPTY>

Bei „Name_des_Elements“ notieren Sie Ihren Elementnamen. Durch EMPTY wird gekennzeichnet, dass es keine Inhalte aufnehmen, sondern nur Attribut-Werte-Paare enthalten soll.

Ein Beispiel

Betrachten Sie nun folgendes Beispiel, in dem ein Element für ein Bild definiert wird (Zeile 14-15)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE adressensammlung [
<!ELEMENT adressensammlung (adresse)+>
  <!ELEMENT adresse (anrede, name, strasse, postanschrift, email*, bild)>
  <!ELEMENT anrede (#PCDATA)>
  <!ELEMENT name (nachname, vorname)>
  <!ELEMENT postanschrift (plz, wohnort)>
  <!ELEMENT nachname (#PCDATA)>
  <!ELEMENT vorname (#PCDATA)>
  <!ELEMENT plz (#PCDATA)>
  <!ELEMENT wohnort (#PCDATA)>
  <!ELEMENT strasse (#PCDATA)>
  <!ELEMENT email (#PCDATA)>
  <!ELEMENT bild EMPTY>
  <!ATTLIST bild bezeichnung CDATA #REQUIRED>
  <!ATTLIST postanschrift
            land (Brandenburg | Mecklenburg | Sachsen) #REQUIRED>
]>
<adressensammlung>
  <adresse>
    <anrede/>
    <name>
      <nachname/>
      <vorname/>
    </name>
    <strasse/>
    <postanschrift land="Deutschland">
      <plz/>
      <wohnort/>
    </postanschrift>
    <email/>
    <bild bezeichnung="../testbild.png"/>
  </adresse>
</adressensammlung>
Erklärung

Wir definieren ein Element bild, das keinen Inhalt hat, aber ein Attribut bezeichnung, das eine beliebige Zeichenfolge enthalten kann (z.B. den Pfad zu einem Bild) und Pflicht ist.