DTD: Leere Elemente¶
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
Jeder CD und jedem Buch soll ein Bild hinzugefügt werden. Ändern Sie die DTD und den Inhalt des jeweiligen XML-Dokumentes.
Ein Bild soll für die Transformation zu HTML auch eine kurze Beschreibung erhalten. Fügen Sie das Attribut “beschreibung” als optionales Angabe hinzu.
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 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.
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 und Pflicht ist.