Frage

Mit dem DTD-Validator hier , ich bin darüber informiert, dass die folgende DTD ungültig ist.

<!ENTITY % text "(#PCDATA|L)*">
<!ELEMENT H         (%text;)+>
<!ELEMENT L         (#PCDATA)>

Die Fehlermeldung ist: „‚‘A‚(‘Zeichen oder ein Elementtyp innerhalb Erklärung Elementtyp erforderlich sind,“ H in Zeile 2, Spalte 22

Kann jemand bitte darauf hinweisen, warum es ungültig ist? Und wie kann ich es gültig zu machen? Die Fehlermeldung ist nicht gerade sehr freundlich zu mir. Danke.

War es hilfreich?

Lösung

Sie können nicht erzwingen, dass ein Element mit gemischtem Inhalt mindestens ein Kind Knoten haben muss. Ihre DTD wird

<!ELEMENT H         ((#PCDATA|L)*)+>

, wenn das Unternehmen expandiert wird. Die einzige erlaubte Form für Elemente mit gemischtem Inhalt ist

(#PCDATA | A | B | C)*

wobei A, B und C sind möglich untergeordnete Elemente. #PCDATA muss werden die erste Wahl und die Menge muss erlaubt sein 0-unendlich-mal zu wiederholen, das heißt das Sternchen erforderlich ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top