Thomas J.S.: Riesen Dank

Beitrag lesen

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