Hallo Michael,
Außerdem würde ich gern wissen, wie man ein Attribut als "Default" setzen kann, in dem Fall bei Telefonnummer das Attribut privat.
Das sieht in der DTD richtig aus.
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE Uebung2Aufgabe3dtd SYSTEM "Uebung3 Aufgabe 2.dtd">
^^^ Hier gehört das Wurzelelement hin, also:
<!DOCTYPE Personeninformationen SYSTEM "Uebung3 Aufgabe 2.dtd">
<Personeninformationen> <Person matrNr="000001">
000001 ist kein gültiger ID-Wert, soll dieser beibehalten werden ggf. in der DTD den Typ auf CDATA ändern.
<Name> Peter </Name> <Vorname> Hans </Vorname> <PLZ> 01234 </PLZ> <Ort> Buxtehude </Ort> <Straße> Kartoffelecke 5 </Straße> <Telefonnummer> 0015456833 </Telefonnummer> <Hochschule> &HL; </Hochschule>
Hochschule ist hier lt. DTD nicht erlaubt, also ergänzen:
<!ELEMENT Person (Name,Vorname?,PLZ,Ort,(Straße|Postfach),Telefonnummer*,Hochschule)+>
</Person>
...
<!ENTITY HL SYSTEM "Hochschule Lausitz (FH) − University of Applied Sciences"> <!ENTITY BTU SYSTEM "Brandenburgische Technische Universität Cottbus − Brandenburg University of Technology">
SYSTEM bedeutet Verweis auf eine externe Datei, etwa:
<!ENTITY HL SYSTEM "text1.txt"> <!ENTITY BTU SYSTEM "text2.txt">
und in den Textdateien dann am besten UTF-8-kodiert speichern:
Hochschule Lausitz (FH) − University of Applied Sciences
bzw.
Brandenburgische Technische Universität Cottbus − Brandenburg University of Technology
Allerdings braucht man zur Anzeige der Inhalte auch validierende Parser, welche in aktuellen Browsern nicht verfügbar sind. Firefox sagt dazu: "XML-Verarbeitungsfehler: Nicht definierte Entität".
Neuere IEs können das nur noch im Kompatibilitätsmodus (F12 --> IE8 auswählen).
Grüße, Thomas