Je triying pour valider un fichier XML. J'utilise ce codevalidation de problème un fichier XML avec un fichier DTD local C#
XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.DTD;
settings.ValidationEventHandler += new ValidationEventHandler(validationError);
XmlSchemaSet schemas = new XmlSchemaSet();
settings.Schemas = schemas;
XmlReader reader = XmlReader.Create(lblXmlPath.Text, settings);
reader.Settings.Schemas.Add(null, lblDTDPath.Text);
while (reader.Read())
{
// empty by now
}
reader.Close();
Mais dans la ligne "reader.Settings.Schemas.Add (null, lblDTDPath.Text);" Visual Studio me montre cette erreur "Pour des raisons de sécurité DTD est interdite dans ce document XML Pour activer le traitement DTD, définissez la propriété ProhibitDtd sur XmlReaderSettings sur false et transmettez les paramètres dans la méthode XmlReader.Create"
Comme vous pouvez le voir dans le code, ProhibitDtd est défini sur false (j'ai vérifié pendant le débogage aussi). J'ai également essayé d'ajouter le schéma avant l'appel à XmlReader.Create() sans succès.
mais je veux l'utilisateur pour sélectionner à partir du HD les deux fichiers, le XML et le dtd, et lui dire si le XML est valide ou non. Je suis assez sûr que cela peut être fait, mais je ne sais pas comment: – Jonathan
Mis à jour mon aswer avec une solution possible pour charger la DTD à partir d'un fichier local – Geoff