Question

Utilisation de la DTD validateur , je suis informé que la DTD suivante est invalide.

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

Le message d'erreur est: " "" A '(' caractère ou un type d'élément est requis dans la déclaration de type d'élément" H à la ligne 2, colonne 22

Quelqu'un peut-il s'il vous plaît indiquer pourquoi il est invalide? Et comment puis-je le rendre valide? Le message d'erreur est pas exactement très sympathique pour moi. Merci.

Était-ce utile?

La solution

Vous ne pouvez pas appliquer qu'un élément avec un contenu mixte doit avoir au moins un nœud enfant. Votre DTD devient

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

lorsque l'entité est étendu. La seule forme autorisée pour les éléments dont le contenu est mélangé

(#PCDATA | A | B | C)*

où A, B et C sont des éléments enfants possibles. #PCDATA doit être le premier choix et l'ensemble doivent être autorisés à répéter 0 fois-infini, à savoir l'astérisque est nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top