Bonjour,

J'ai un petit problème, Je n'arrive pas valider un document XML à l'aide d'une DTD (externe au fichier XML) avec XmlReader.

J'ai l'erreur suivante :

"For security reasons DTD is prohibited in this XML document. To enable DTD processing set the DtdProcessing property on XmlReaderSettings to Parse and pass the settings into XmlReader.Create method."

Info: je suis sous VB 2010 Express


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
public partial class Default2 : System.Web.UI.Page
{
    private StringBuilder _builder = new StringBuilder();
        protected void Page_Load(object sender, EventArgs e)
        {
            string xmlPath = Server.MapPath("~/App_Data/Product.xml");
            XmlReader reader = null;
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.ValidationEventHandler += new ValidationEventHandler(this.ValidationEventHandler);
            settings.DtdProcessing = DtdProcessing.Parse;
            settings.ValidationType = ValidationType.DTD;
            settings.Schemas.Add(null, Server.MapPath("~/App_Data/Product.dtd")); //ligne du XmlException
            reader = XmlReader.Create(xmlPath, settings);
            while (reader.Read())
                while (reader.Read())
                {
                }
                if (_builder.ToString() == String.Empty)
                    Response.Write("DTD Validation completed successfully.");
                else
                    Response.Write("DTD Validation Failed. <br>" + _builder.ToString());
                reader.Close();
           }
    void ValidationEventHandler(object sender, ValidationEventArgs e)
    {
        _builder.Append("Validation error: " + e.Message + "<br>");
    }
}
Avez vous des idées ?

Merci d'avance.