【问题标题】:Validate XML over XSD in C# with access to invalid element在 C# 中通过 XSD 验证 XML 并访问无效元素
【发布时间】:2012-01-27 08:29:25
【问题描述】:

我想验证我的 XML 文件是否包含 XSD 架构。我用:

var settings = new XmlReaderSettings();
settings.ValidationFlags = XmlSchemaValidationFlags.AllowXmlAttributes
    | XmlSchemaValidationFlags.ProcessIdentityConstraints
    | XmlSchemaValidationFlags.ProcessInlineSchema        
    | XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationType = ValidationType.Schema;
settings.ValidationEventHandler += new ValidationEventHandler(settings_ValidationEventHandler);
settings.Schemas.Add(xsc);
var vreader = XmlReader.Create(stream, settings);
while (vreader.Read());

如果发生了一些错误,那么我的处理程序中有漂亮的人类可读信息。但我想知道导致错误的节点。无法访问像 XmlElement 这样的对象或类似的东西。有什么办法吗?

【问题讨论】:

    标签: c# xml validation xsd


    【解决方案1】:

    我不知道如何执行此操作的简单方法...我将从查看与节点关联的SchemaInfo 属性开始;直观上看,根据错误,你可能根本没有得到它......

    它们之间唯一的其他“键”可能是行/列号,然后可以交叉索引(您需要 read this 然后使用 Xml.Linq)。

    【讨论】:

      猜你喜欢
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      相关资源
      最近更新 更多