我正在创建一个控制台应用程序来验证C#中的xml。当我打开文件时,根据模式验证它,当它在节点中遇到错误时,它会从节点出来并验证文件中的下一个节点。但不知何故,我似乎无法在节点中收到错误后验证所有元素。
XmlDocument asset = new XmlDocument();
XmlTextReader schemaReader = new XmlTextReader("relativeSchemaPath");
XmlSchema schema = XmlSchema.Read(schemaReader, SchemaValidationHandler);
asset.Schemas.Add(schema);
asset.Load(filename);
asset.Validate(DocumentValidationHandler);
我使用了验证方法,但它只给出了不给出所有错误。我引用了我所遵循的链接。
https://msdn.microsoft.com/en-us/library/Bb387037.aspx
https://msdn.microsoft.com/en-us/library/3740e0b5%28v=vs.110%29.aspx
Need help validating XML against XSD in C#
我需要验证文件中的所有元素,即使在节点中获取错误后我需要验证节点中的剩余元素。我需要列出缺少以下元素的错误,区分大小写和序列。
答案 0 :(得分:0)
如果验证程序遇到格式错误的XML,它通常会停止运行,但应继续读取过去缺少的/其他XML元素。但是,它可能最终会跳过剩下的兄弟姐妹,因为它可能无法弄清楚应该给出的错误。
我通常在XmlReaderSettings类中设置所有设置并将其传递给阅读器,有一件事可能会给你带来更多你想要的错误是XmlSchemaValidationFlags.ReportValidationWarnings。 使用此处的设置会对如何应用验证产生重大影响,尤其是ValidationType属性。
看看
如果您仍然遇到问题发布样本XSD / XML文件,并指出您希望看到的错误