.NET : Comment valider le fichier XML avec DTD sans déclaration DOCTYPE
J'ai un fichier XML avec aucune déclaration DOCTYPE que je voudrais valider avec une DTD externe à la lecture.
Dim x_set As Xml.XmlReaderSettings = New Xml.XmlReaderSettings()
x_set.XmlResolver = Nothing
x_set.CheckCharacters = False
x_set.ProhibitDtd = False
x = XmlTextReader.Create(sChemin, x_set)
Comment définissez-vous le chemin pour que la DTD externe? Comment validez-vous?
return false; 😉
OriginalL'auteur Vincent | 2009-01-22
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé la fonction suivante avec succès avant, ce qui devrait être facile à adapter. Comment cela s'appuie sur la création d'un XmlDocument comme magnifico mentionné. Ceci peut être réalisé par:
Vraiment utile de répondre. Pour ceux qui lisent ceci, la version la plus récente de .NET framework préfère les paramètres.DtdProcessing = DtdProcessing.Analyser la place de paramètres.ProhibidDtd = false.
Donc, la solution est toujours que nous avons à ajouter le DOCTYPE de la chaîne au début? Est-il un moyen pour que le code de pointer vers un emplacement externe n'est pas spécifié dans la DÉCLARATION de la chaîne?
"ProhibitDtd" est une méchante bombe que seul MS aurait pu inventer. Plus honnête, plus de nommage pour ce paramètre aurait été LetsGetRidAllAllStandardCompliancesoastomakeyourlifemiserable, dont la longueur et l'expressivité est sur le pair avec .NET du style.
OriginalL'auteur bstoney
Pourriez-vous créer un fichier Xml.XmlDocument avec la DTD que vous voulez, puis ajouter le fichier XML de données dans la mémoire Xml.XmlDocument, puis valider que?
OriginalL'auteur Jim Counts
Je ne pouvais pas trouver un moyen pour xml être validé par rapport à une DTD externe document. Dans mon cas, je suis la réception de données XML à partir d'un socket tcp/ip et je veux valider cela contre un fichier DTD. L'exemple ci-dessus montre comment vous pouvez combiner une DTD et XML dans le même cours d'eau avant d'utiliser l'objet XmlReader pour faire de la validation DTD.
OriginalL'auteur Matt