我正在尝试针对 ONIX 2.1 dtd 验证 XML 提要。当我将生成的 XML 文件加载到 XMLSpy 并根据 DTD 进行验证时,它告诉我提要是有效的。
当我尝试使用 C# 和 XmlReader 验证同一个文件时,我收到了错误,即子节点无效,尽管之前已由第 3 方工具验证。为了确保使用 XmlReader 的代码正确读取 dtd 并进行适当验证,我需要做什么?
这是我的代码...
XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.DTD;
settings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationEventHandler += new ValidationEventHandler(delegate(object sender, ValidationEventArgs args)
{
isXmlValid = false;
xmlValMsg.AppendLine(args.Message);
});