Aufgabe 1: XML sowie DTD schreiben und XML einlesen
Gegeben sei die folgende DTD Stundenplan.dtd für
Stundenplandateien:
<!ELEMENT Stundenplan (Tag*)> <!ELEMENT Tag (Fach*)> <!ELEMENT Fach (Name, Ort, Zeit)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Ort (#PCDATA)> <!ELEMENT Zeit EMPTY> <!ATTLIST Tag Wochentag (Mo|Di|Mi|Do|Fr) #REQUIRED> <!ATTLIST Zeit Beginn CDATA #REQUIRED> <!ATTLIST Zeit Ende CDATA #REQUIRED>
-
Schreiben Sie eine XML-Datei
Stundenplan.xml, die die oben angegebene DTD erfüllt und die Daten zu den folgenden Fächern enthält:Fach: Prog, Ort: W1303, Tag: Mi, Beginn: 9:50, Ende: 13:00 Fach: Wahlfach, Ort: W0303, Tag: Mi, Beginn: 14:00, Ende: 17:15
Validieren Sie danach die Korrektheit Ihrer XML-Daten. Dies können Sie online mit Truugo oder XML Validation durchführen.
Zu diesem Zweck müssen Sie die DTD-Regeln zusammen mit dem XML-Code im Eingabefenster von z. B. Truugo wie folgt eingeben:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Stundenplan [ <!ELEMENT Stundenplan (Tag*)> <!ELEMENT Tag (Fach*)> <!ELEMENT Fach (Name, Ort, Zeit)> <!ELEMENT Name (#PCDATA)> <!ELEMENT Ort (#PCDATA)> <!ELEMENT Zeit EMPTY> <!ATTLIST Tag Wochentag (Mo|Di|Mi|Do|Fr) #REQUIRED> <!ATTLIST Zeit Beginn CDATA #REQUIRED> <!ATTLIST Zeit Ende CDATA #REQUIRED> ]> <Stundenplan> ...XML-Elemente </Stundenplan>
An Stelle der eingebundenen DTD-Datei wird hier also unter der DOCTYPE-Anweisung direkt der DTD-Code eingefügt, was eine Alternative zum Einbinden einer externen DTD-Datei darstellt. Sie können den in der oben dargestellten Weise erstellten Code direkt über Copy-Paste in das Texteingabefeld von Truugo einfügen. Geprüft werden die XML-Daten unter Truugo durch Drücken auf Validate. Fehler werden auf der rechten Seite unter "Validation result" angezeigt. Unter XML Validation ist der Vorgang entsprechend durchzuführen.
-
Schreiben Sie JavaScript-Code, in dem die Daten aus der Datei
Stundenplan.xmlausgewertet und im Browserfenster in der oben angegebenen Form aufgelistet werden. Es ist nicht erforderlich, hierfür die DateiStundenplan.xmlmittelsXMLHttpRequesteinzulesen. Es reicht, wenn dieXML-Daten in der HTML-Datei zur Aufgabe alsXML-Element gespeichert sind. Für die Kundendaten würde ein entsprechendesXML-Element wie folgt aussehen:<xml style="display:none"> <Kundendaten> <Kunde> <Nachname>Mustermann</Nachname> <Vorname>Markus</Vorname> <Strasse>Musterstr. 12</Strasse> <PLZ>78101</PLZ> <Ort>Musterstadt</Ort> <Alter>32</Alter> </Kunde> </Kundendaten> </xml>Damit sind die
XML-Elemente im DOM verfügbar und können mit der MethodegetElementsByTagNameausgelesen werden. Durchstyle="display:none"wird verhindert, dass dasXML-Wurzelelement mit seinen Kindelementen zur Darstellung kommt.-
Lesen Sie die Daten aus dem
XML-Element mit Hilfe des jeweiligen Elementnamens und den FunktionengetElementsByTagName()undgetAttribute()aus. -
Programmieren Sie eine modifizierte Form Ihrer Lösung dergestalt, dass nun der Zugriff auf die Elemente
Name,OrtundZeitmit Hilfe deschildNodes-Felds und das Auslesen von Elementattributen mit Hilfe des Feldsattributesgeschieht.
-
-
Schreiben Sie eine neue DTD
Stundenplan2.dtd, die durch die folgende XML-Datei erfüllt wird:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Stundenplan2 SYSTEM "Stundenplan2.dtd"> <Stundenplan2> <Fach Name="Prog"> <Ort>O104</Ort> <Zeit Tag="Mi" Beginn="9:50" Ende="13:00" /> </Fach> </Stundenplan2>
Orientieren Sie sich dabei an den Vorgaben hinsichtlich #REQUIRED
etc. aus Stundenplan.dtd.
Die Korrektheit Ihres Ergebnisses können Sie z. B. wieder mit Truugo prüfen.