Hallo,
Müssen wir das jetzt stunden lang ausdiskutieren, oder glaubst du mir einfach, dass wie du es gemacht hast zu einer ungültigen XML-Datei führt?
Du hast Recht und ich hab meine Ruhe ;-)
So geht das natürlich auch. ;-)
Du kannst so schreiben und machen wie du möchtest. Ich möchte nur ,dass du weisst, dass dein XML ist dann ungültig.
Aber muss man denn statt #CDATA wirklich #PCDATA nehmen?
Ja.
Was dich in diesem Fall interessieren könnte kannst du ein wenig unter http://edition-w3c.de/TR/2000/REC-xml-20001006/#sec-mixed-content nachlesen.
Und wie muss das Ganze dann nach meiner Lösung - also mit Entities - aussehen, und ist das dann auch Validator-konform?
<!-- some entities for use within the DTD -->
<!ENTITY % LanguageCode "NMTOKEN">
<!-- a language code -->
<!ENTITY % Version "CDATA">
<!-- a version number, like "0.01" -->
<!ENTITY % URI "(#PCDATA)">
<!-- a Uniform Resource Identifier -->
<!ENTITY % EText "(#PCDATA)">
<!-- a simple text in elements -->
<!ENTITY % AText "CDATA">
<!-- a simple text in attributes -->
<!ENTITY % Ed2klink "(#PCDATA)">
<!-- an ed2klink -->
<!ENTITY % special "br">
<!-- allow to create new line characters -->
<!ENTITY % Description "(#PCDATA | %special;)*">
<!-- content within descriptions -->
<!-- following the definition for the opened2kdb -->
<!ELEMENT opened2kdb (basicsettings, data)>
<!ATTLIST opened2kdb version %Version; #REQUIRED>
<!ELEMENT basicsettings (categories)>
<!ELEMENT categories (category+)>
<!ELEMENT category (translate+, category*)>
<!ATTLIST category short %AText; #REQUIRED>
<!ELEMENT translate %EText;>
<!ATTLIST translate lang %LanguageCode; #REQUIRED>
<!ELEMENT data (ed2kelement+)>
<!ELEMENT ed2kelement (langsection+)>
<!ATTLIST ed2kelement category %AText; #REQUIRED>
<!ELEMENT langsection (title, desc, url?, img?, ed2k+)>
<!ATTLIST langsection lang %LanguageCode; #REQUIRED>
<!ELEMENT title %EText;>
<!ELEMENT desc %Description;>
<!ELEMENT br EMPTY>
<!ELEMENT url %URI;>
<!ELEMENT img %URI;>
<!ELEMENT ed2k %Ed2klink;>
<!ATTLIST ed2k title %AText; #REQUIRED>
Grüße
Thomas