如何验证c#代码中的这种xml错误?

时间:2017-04-01 08:38:32

标签: c# xml xsd

<?xml version="1.0" encoding="utf-8"?>
<xml>
  <a>str1234</a>xxxx
</xml>

我得到了这个xml文件,正如你所看到的,在“a”关闭标记之后有“xxxx”。

我尝试了xmldocument.load()方法,但它不会抛出任何异常。

我尝试从这个xml生成一个xsd文件,然后用生成的xsd验证这个xml。

但是,它也不会引起任何错误。

1 个答案:

答案 0 :(得分:1)

了解difference between valid and well-formed XML

非常重要

评论者已经粗鲁地说你的XML 有效。如果没有用于评估有效性的模式,他们实际上不应该做出这样的陈述。他们应该说你的XML 格式正确

您似乎担心作为xxxx元素的兄弟a文本格式不正确,但它是格式良好的XML。它也可能是有效,如果父元素xml由架构定义以允许混合内容

  

我尝试从这个xml生成一个xsd文件,然后验证这个xml   使用生成的xsd。

好吧,如果您使用工具从XML文档实例生成XSD,并且XSD表示XML有效,则该工具按设计工作。

  

但是当我的代码加载这种.config文件时,它就卡住了。

就像格式良好并不能保证有效性一样,它也不能保证它满足任何给定的消费XML应用程序的需求。配置文件具有XML必须遵循的规则,可能以XSD表示。除了格式良好之外,这些规则(解析器解析XML所需的规则)也是如此。

另见How to validate xml code file though .NET? + How would I do it if I use XML serialization?