problem mit dtd
peter M
- xml
0 Rouven
Ich muss in einer dtd Datei eine Defintion mehrere Male in verschiedenen Verschachtelungsebenen anfuehren.
Zb wie im folgenden die Name Definition:
<!ELEMENT Brief (Type,Name)>
<!ELEMENT Type (#PCDATA)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Test (Name, Run, Parameter)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Start (#PCDATA)>
<!ELEMENT Settings (time)>
Wenn ich dann das dazugehoerige xml Dokument validiere, wird gemeckert:
"The 'Name' element has already been declared."
Was kann ich dagegen tun?
Evlt Entities? Wenn ja, wie muesste ich die einsetzen?
Besten Dank
Hello,
<!ELEMENT Brief (Type,Name)>
<!ELEMENT Name (#PCDATA)><!ELEMENT Test (Name, Run, Parameter)>
<!ELEMENT Name (#PCDATA)>
Na ja, bis zu diesem Zeitpunkt - und in einer DTD dürfte das in Anbetracht der minimalen Auswahl an Datentypen ja häufiger der Fall sein - sind Name #1 und Name #2 vollkommen identisch. Die von dir geschriebene "Verschachtelung" existiert faktisch nicht.
Nachfolgendes ist äquivalent zur obigen Schreibweise:
<!ELEMENT Brief (Type,Name)>
<!ELEMENT Test (Name, Run, Parameter)>
<!ELEMENT Name (#PCDATA)>
Sollte es hingegen einmal vorkommen, dass du Name einmal als #PCDATA und einmal als komplexes Element benötigst, dann stößt deine DTD an ihre Grenzen und man muss sich nach anderen Lösungen umschauen, z.B. den feineren aber komplexeren XML-Schemata, mit der Möglichkeit anonymer Typen.
MfG
Rouven