我正在尝试验证 XML 文件。我正在使用此代码
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();
但在“reader.Settings.Schemas.Add(null, lblDTDPath.Text);”这一行 Visual Studio 向我显示错误“出于安全原因,此 XML 文档中禁止 DTD。要启用 DTD 处理,请将 XmlReaderSettings 上的 ProhibitDtd 属性设置为 false 并将设置传递给 XmlReader.Create 方法”
正如您在代码中看到的,ProhibitDtd 设置为 false(我也在调试期间进行了验证)。我还尝试在调用 XmlReader.Create() 之前添加架构,但没有成功。