Übungen

Aufgabe 1

Die folgende DTD soll Graphen beschreiben, u. a. solche, die ein Straßennetz darstellen.

<!ELEMENT graph (node+, edge+)>
<!ATTLIST graph 
  id CDATA #IMPLIED
>
<!ELEMENT node EMPTY>
<!ATTLIST node 
  id CDATA #REQUIRED
>
<!ELEMENT edge (data)>
<!ATTLIST edge 
  source CDATA #REQUIRED
  target CDATA #REQUIRED
>
<!ELEMENT data (#PCDATA)>

Entwickle (und teste) ein bzgl. dieser DTD gültiges XML-Dokument, das das unten abgebildete Straßennetz beschreibt.

Straßennetz in RLP

Aufgabe 2

Entwickle eine DTD zur Beschreibung von Schachspielzuständen.

Version 1:

<?xml version="1.0" encoding="iso-8859-1"?>
<Schach-Spielzustand>
  <schwarz>
    <Bauer>b7</Bauer>
    <Bauer>e7</Bauer>
    <Bauer>d6</Bauer>
    <Bauer>b5</Bauer>
    <Bauer>f4</Bauer>
    <Springer>c6</Springer>
    <Laeufer>e5</Laeufer>
    <Dame>c4</Dame>
    <Koenig>d7</Koenig>
  </schwarz>
  <weiss>
    <Bauer>h5</Bauer>
    <Bauer>f2</Bauer>
    <Bauer>g2</Bauer>
    <Turm>f1</Turm>
    <Laeufer>f5</Laeufer>
    <Dame>f7</Dame>
    <Koenig>g1</Koenig>
    <amZug/>
  </weiss>
</Schach-Spielzustand>

Version 2:

<?xml version="1.0" encoding="iso-8859-1"?>
<Schach-Spielzustand>
  <schwarz amZug="nein">
    <Bauer Spalte="b" Zeile="7"/>
    <Bauer Spalte="e" Zeile="7"/>
    <Bauer Spalte="d" Zeile="6"/>
    <Bauer Spalte="b" Zeile="5"/>
    <Bauer Spalte="f" Zeile="4"/>
    <Springer Spalte="c" Zeile="6"/>
    <Laeufer Spalte="e" Zeile="5"/>
    <Dame Spalte="c" Zeile="4"/>
    <Koenig Spalte="d" Zeile="7"/>
  </schwarz>
  <weiss amZug="ja">
    <Bauer Spalte="h" Zeile="5"/>
    <Bauer Spalte="f" Zeile="2"/>
    <Bauer Spalte="g" Zeile="2"/>
    <Turm Spalte="f" Zeile="1"/>
    <Laeufer Spalte="f" Zeile="5"/>
    <Dame Spalte="f" Zeile="7"/>
    <Koenig Spalte="g" Zeile="1"/>
  </weiss>
</Schach-Spielzustand>

Überprüfe die Ergebnisse mit einem Validator.

Inwieweit können reguläre Schachspielzustände tatsächlich mit einer DTD exakt beschrieben werden? Wo siehst du Schwierigkeiten?

Aufgabe 4

Ziel ist es, eine DTD zum Zitieren von Büchern zu erstellen. Die folgende Abbildung zeigt, wie die Literatur zum Thema Schach bei Wikipedia zitiert wird.

Literaturliste zum Thema Schach
Quelle: Wikipedia - Schach

Das folgende XML-Dokument zeigt, wie Buch-Daten mit XML strukturiert werden können.

<?xml version="1.0" encoding="iso-8859-1"?>
<Buch>
  <Autor>
    <Name>Borik</Name>
    <Vorname>Otto</Vorname>
    <Hrsg/>
  </Autor>
  <Titel>
    Meyers Schachlexikon
  </Titel>
  <Verlag>
    Meyers Lexikonverlag
  </Verlag>
  <Erscheinungsort>
    Mannheim
  </Erscheinungsort>
  <Erscheinungsjahr>
    1993
  </Erscheinungsjahr>
  <ISBN>
    3-411-08811-7
  </ISBN>
</Buch>

Entwickle eine DTD zur Beschreibung von Buch-Daten. Orientiere dich zunächst am gezeigten XML-Dokument.

Beachte auch folgende Sonderfälle: Ein Buch kann auch mehrere Autoren haben. Ein Buch kann auch einen Untertitel haben.

Aufgabe 5

Um eine E-Mail zu verschicken, musst du verschiedenen Daten angeben: U.a. den Absender, Empfänger, Betreffzeile und den E-Mail-Text an sich.
Das folgende XML-Dokument ist eine Möglichkeit, die Daten einer E-Mail zu speichern:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE EMail SYSTEM "EMail.dtd" >
<EMail date="2016-11-07">
  <From>inf-schule@gmx.de</From>
  <SendTo type="TO">g.lenk@domain.com</SendTo>
  <SendTo type="CC">k.zundklein@domain.de</SendTo>
  <Subject>
     Infos zum Abitur
  </Subject>
  <Data>
     Hallo Herr Zundklein,
     hier schicke ich Ihnen...
  </Data>
</EMail>
  1. In Zeile 2 ist schon ein Verweis auf eine DTD Email.dtd vorhanden. Schreibe diese DTD, dass sie das XML-Dokument gültig validiert.
  2. Verändere XML-Dokument und DTD so, dass die Absender- und Empfänger-Adresse in Zeile 4-6 als Attribute gespeichert werden - getrennt nach Domain und Adressat.
X

Fehler melden

X

Suche