Certains guides sur Internet affirment que ANY
signifie l'arrêt du processus de validation pour cet élément, mais ce n'est pas une information correcte. Le modèle de contenu ANY
dans DTD ne signifie pas réellement "autoriser tout contenu XML bien formé dans cet élément". Au lieu de cela, cela signifie "autoriser tout contenu défini dans cette DTD". Cela signifie que vous obtiendrez une erreur pour chaque élément dont le modèle de contenu n'a pas été défini (ou que vous ne pouvez pas définir). Conceptuellement, cela signifie la même chose que d'être incapable d'autoriser le contenu d'un autre espace de noms. Malheureusement, pour le moment, je ne me souviens d'aucun moyen de le faire avec la DTD. Cependant, cela est possible avec XML schemas:
<xs:complexType>
<xs:sequence>
<xs:any namespace="##any" processContents="skip"/>
</xs:sequence>
</xs:complexType>
Cela permettrait à tous les éléments de tout espace de noms et ignorer la validation pour cet élément. Si vous pouvez passer des DTD aux schémas XML, cela résoudra votre problème.
Remarque sur une simple erreur lors de l'utilisation ANY
(Affiche originale n'a pas eu cette erreur mais je suis juste mentionner ici depuis que je suis déjà écrit sur ce sujet.)
C'est un simple faute de frappe à faire, mais ces deux ne veut pas dire la même chose:
<!ELEMENT X ANY >
<!ELEMENT X (ANY) >
le premier fait référence à mot-clé modèle de contenu ANY
mais le second, un élément avec le nom « ANY », et il est la parenthèse qui causent cette différence .
Donc, votre réponse est qu'il n'y a pas de solution dans la DTD. Il n'y a pas de solution de contournement intead? – Spiderman
@ Spiderman Ma réponse est que "pour le moment, je ne me souviens d'aucun moyen de le faire avec DTD". Il y a une petite chance que cela soit possible, mais je ne le pense pas et je n'ai pas trouvé de solution. :(La solution consiste à utiliser autre chose que la DTD pour valider, si l'utilisation de la DTD n'est pas obligatoire – jasso
Finalement, je suis passé au monde XSD et j'ai utilisé solution. Donc, merci –
Spiderman