Pitner [Main]
Einzelaufgabe A4: XPath
Termin: Fr 5.12.
Aufgabenstellung
Teil 1. Formulieren Sie für Ihre XML-DTD Abgabe drei sinnvolle Abfragen und zwar sowohl natürlichsprachlich als auch mittels XPath. (Beispiel für eine sinnvolle Abfrage: "Die Namen aller Finanzminister der letzten zwei Jahre". Beispiel für sinnlose Abfragen: "Anzahl der Knoten unter dem Wurzelelement" oder "Alle Geburtsdaten")
Teil 2. Erstellen Sie auf Basis unten stehender DTD eine gültige XML Datei mit sinnvollen Datensätzen, und erstellen Sie anschließend drei sinnvolle Abfragen und zwar sowohl natürlichsprachlich als auch mittels XPath. Die DTD beschreibt eine Struktur, in der Regierungen gespeichert sind. Einerseits werden Personen gespeichert, andererseits mehrere Legislaturperioden. In jeder Legislaturperiode sind mehrere Minister im Amt. Die Minister referenzieren über das Attribut person_id eine unter dem Knoten personen gespeicherte person (bzw. deren id).
Abgabe
Schreiben Sie Ihr XML Dokument und Ihre XPath Abfragen in Textdokument und laden Sie dieses als PDF im Abgabebereich hoch.
Hinweise:
- Dies ist eine Einzelaufgabe
- Sie können die DTD und Ihr XML Beispieldokument in der XML Umgebung speichern und dort auch XPath Abfragen testen. Als das "Abgabemedium" ist aber das obige PDF Dokument vorausgesetzt und nicht die "Abgabe" Sektion der XML Umgebung!
- Formulieren Sie die Abgaben nicht zu simpel, d.h. folgende Konstrukte müssen in den Abfragen vorkommen: Attributabfragen, Elementabfragen, Textknotenabfragen, Funktionen, Navigation über Achsen, Prädikate (Bedingungen) mit Attributen und Elementen.
- In mindestens einer Abfrage soll es auch eine Verbindung zwischen Personen und Minister geben – also z.B. "gib mir die Partei des Bundeskanzlers von der Legislaturperiode, die im Jahr 2000 begonnen hat".
<!ELEMENT regierungen (personen,legislaturperioden)>
<!ELEMENT personen (person*)>
<!ELEMENT person EMPTY>
<!ATTLIST person
id ID #REQUIRED
name CDATA #REQUIRED
partei CDATA #REQUIRED>
<!ELEMENT legislaturperioden (legislaturperiode*)>
<!ELEMENT legislaturperiode (minister+)>
<!ATTLIST legislaturperiode
beginn_jahr CDATA #REQUIRED
end_jahr CDATA #IMPLIED
vorzeitige_neuwahlen (ja|nein) "nein">
<!ELEMENT minister EMPTY>
<!ATTLIST minister
person_id IDREF #REQUIRED
ressort (finanz|verkehr|bildung|sozial) #REQUIRED
durchgehalten (ja|nein) "ja"
bundeskanzler (ja|nein) "nein"
vizekanzler (ja|nein) "nein">
Letzte Änderung: 18.11.2008, 17:35 | 330 Worte