小编Mik*_*rey的帖子

C# XML 无法根据 XmlReaderSettings 中的架构正确验证

我进行了搜索,没有发现任何解决此问题的问题。

我正在尝试根据模式验证各种 XML,它似乎正在验证所有格式良好的 XML,而不仅仅是符合模式的 XML。我已经发布了我正在使用的代码、架构、示例有效 XML 和示例无效 XML。

我已经为此苦苦挣扎了一段时间。我对这件事的大部分内容一无所知。我必须学习如何编写 XSD,编写 XSD,然后学习如何在 C# 中解析 XML。这些都是我以前从未做过的。我使用了许多教程和微软网站来得出以下内容。我认为这应该有效,但事实并非如此。

我究竟做错了什么?

private bool ValidateXmlAgainstSchema(string sourceXml, string schemaUri)
{
    bool validated = false;
    try
    {
        //  REF:
        //  This should create a SCHEMA-VALIDATING XMLREADER
        //  http://msdn.microsoft.com/en-us/library/w5aahf2a(v=vs.110).aspx

        XmlReaderSettings xmlSettings = new XmlReaderSettings();
        xmlSettings.Schemas.Add("MySchema.xsd", schemaUri);
        xmlSettings.ValidationType = ValidationType.Schema;
        xmlSettings.ValidationFlags = XmlSchemaValidationFlags.None;
        XmlReader xmlReader = XmlReader.Create(new StringReader(sourceXml), xmlSettings);

        //  parse the input (not sure this is needed)
        while (xmlReader.Read()) ;

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(xmlReader); …
Run Code Online (Sandbox Code Playgroud)

c# xml validation schema xsd

5
推荐指数
1
解决办法
6428
查看次数

标签 统计

c# ×1

schema ×1

validation ×1

xml ×1

xsd ×1