XmlDocument XSD 验证未发现错误
XmlDocument XSD Validation does not find error
我用代码构建我的 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 文件中您没有引用您的 "MySchema"。因此,当尝试对其进行验证时,验证器将不知道 XML 文件应该针对 XML 文件进行验证。
我用代码构建我的 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 文件中您没有引用您的 "MySchema"。因此,当尝试对其进行验证时,验证器将不知道 XML 文件应该针对 XML 文件进行验证。