【发布时间】:2015-07-29 17:10:13
【问题描述】:
我用代码构建我的 XmlDocument。 在返回之前,我想根据文件中定义的 XSD 对其进行验证。
xmlDocument.Schemas.Add(null, "MySchema.xsd");
xmlDocument.Validate((sender, e) => {
if (e.Severity == XmlSeverityType.Error) {
// Write error to log
}
});
永远不会发生任何错误。尽管出于测试目的,我在 XmlDocument 中添加了一个错误。
谁能告诉我,我做错了什么?
编辑: 我的 XSD 开始像
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="MyRoot">
<xs:complexType>
<xs:sequence>
<xs:element name="Things" type="Things"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Things">
<xs:sequence>
<xs:element name="Thing" type="Thing" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
...等等。我认为其余的与问题无关。
在断点处,我从我的 XmlDocument 中复制了 InnerXml 的(前几行):
<?xml version="1.0" ?>
<MyRoot>
<ThingsAndSomeStuffMakingItInvalid>
<Thing>
...等等。
谢谢 最大
【问题讨论】:
-
您还应该向我们展示您的 XML / XSD。
-
编辑了我的问题:我添加了 xsd 和 xml 的开头。我认为内部细节和结束标签与我的问题无关。
标签: c# xml validation xsd xmldocument