我在代码中构建了我的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>
......等等。
由于 最大
答案 0 :(得分:0)
我认为您的问题是由于您的XML文件中没有引用您的“MySchema”这一事实。因此,在尝试验证它时,验证器将不知道应该针对该XML文件验证XML文件。