3 Stimmen

Warum ist dies keine gültige XML DTD? (Parameter-Entität und #PCDATA)

Verwendung des DTD-Validators aquí wird mir mitgeteilt, dass die folgende DTD ungültig ist.

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

Die Fehlermeldung lautet: "Ein '('-Zeichen oder ein Elementtyp ist innerhalb der Deklaration des Elementtyps "H" erforderlich." in Zeile 2, Spalte 22.

Kann mir jemand sagen, warum sie ungültig ist? Und wie kann ich sie gültig machen? Die Fehlermeldung ist nicht gerade sehr freundlich zu mir. Danke!

8voto

jasso Punkte 13386

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

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

wenn die Entität erweitert wird. Die einzige zulässige Form für Elemente mit gemischtem Inhalt ist

(#PCDATA | A | B | C)*

wobei A, B und C mögliche untergeordnete Elemente sind. #PCDATA muss die erste Wahl sein und die Menge muss sich 0- bis unendlich oft wiederholen dürfen, d. h. das Sternchen ist erforderlich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X