xmldocumentxsd验证没有发现错误

本文关键字:发现 错误 验证 xmldocumentxsd | 更新日期: 2023-09-27 17:49:35

我用代码构建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>

…等等......我认为其余的都与这个问题无关。

在一个断点,我复制(前几行)InnerXml从我的XmlDocument:

    <?xml version="1.0" ?> 
        <MyRoot>
           <ThingsAndSomeStuffMakingItInvalid>
               <Thing>

…等等。

谢谢马克斯

xmldocumentxsd验证没有发现错误

我认为你的问题是由于在你的XML文件中你没有引用你的"MySchema"。因此,当尝试验证它时,验证器将不知道XML文件应该针对该XML文件进行验证。