如何在 C#2.0 中验证 XML 文件

Posted

技术标签:

【中文标题】如何在 C#2.0 中验证 XML 文件【英文标题】:How to validate XML file in C#2.0 【发布时间】:2010-11-22 02:08:04 【问题描述】:

我需要有关如何简单地验证 Xml 文件的帮助?

我用谷歌搜索,发现一些教程说开发人员可以根据现有的 XSD 模式文件验证 XML 文件。(如下面的 snppet)。

就我而言,我没有 Xsd 文件。我能做些什么?我必须使用 XSD.exe 之类的工具生成 Xsd 文件吗?

    XmlReaderSettings settings = new XmlReaderSettings();
    settings.ValidationType = ValidationType.Schema;
    settings.Schemas.Add("", "c:\mySchema.xsd");
    settings.ValidationEventHandler += new ValidationEventHandler(OnValidationError);
    XmlReader reader = XmlReader.Create("", settings);
    XPathDocument doc = new XPathDocument(reader);
    XPathNavigator navigatore = doc.CreateNavigator();

实际上我需要的验证是一个非常简单的用法。只需确保所有 xml 列出的项目/内部子项目都配对。我将打开并编写我的 XML,但由于某些原因,我的 XML 有时无法成功编写。然后当我下次加载我的 XML 时,我的应用程序将抛出异​​常。这就是为什么我需要在加载之前验证我的 xml 文件。

感谢您的 cmets 和建议。

【问题讨论】:

即使您在阅读 XML 时可能仍然可以很好地验证它,但如果您修复了它无法写入的部分,您会不会更好? 【参考方案1】:

如果您没有 xsd,您应该创建一个。如果您尝试验证任何特定结构,这是您的最佳选择。

如果您只是想确保一个文档由有效的 XML 组成,您可以不使用,但如果您关心架构,那么您必须创建一个架构定义。

您可以编写自己的 XSD 或使用任意数量的工具。我的建议是自己写。这并不难,值得知道如何去做。

这是一个帮助您入门的链接:http://www.w3schools.com/schema/default.asp

【讨论】:

我想创建我的 XSD 文件。谢谢。

以上是关于如何在 C#2.0 中验证 XML 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中处理 XML

如何在 Azure 逻辑应用中使用 OAuth 2.0 身份验证?

如何在 xml 文件中定义 schematron 进行验证?

如何在 Python 中针对 DTD 文件验证 xml

如何在本地使用 XSD 验证 XML 文件?

文件无法验证为XML定义,如何修复faces-config.xml警告?