C#使用不带DOCTYPE字符串的DTD文件验证XML文件

时间:2017-05-04 18:15:56

标签: c# xml validation dtd xml-dtd

我正在尝试编写一个C#类,它使用位于另一个不在DOCTYPE字符串相对位置的文件夹中的DTD文件来验证xml文件,到目前为止,我的代码是这样的:

var settings = new XmlReaderSettings();
            settings.DtdProcessing = DtdProcessing.Parse;
            settings.ValidationType = ValidationType.DTD;
            settings.XmlResolver = new XmlUrlResolver();
            settings.ValidationEventHandler += new ValidationEventHandler(IsLoaded);

            using (var reader = XmlReader.Create(new StringReader(xmlString), settings))
            {
                while (reader.Read()) { }
                reader.Close();
            }

到目前为止,这可以很好地从xml文件中包含的DOCTYPE字符串加载DTD文件,但是DTD文件本身必须保存在与程序被执行的位置相关的文件夹中。有没有办法与XmlResolver类混合,我可以要求它从我的硬盘驱动器上的另一个位置获取DTD文件,就像在查找DTD文件而不是使用DOCTYPE字符串时传递的absoute路径一样?

0 个答案:

没有答案