Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误的XML don';附加XSD时,不会给出解析错误_C#_.net_Xml Serialization - Fatal编程技术网

C# 错误的XML don';附加XSD时,不会给出解析错误

C# 错误的XML don';附加XSD时,不会给出解析错误,c#,.net,xml-serialization,C#,.net,Xml Serialization,我必须反序列化XML。我有一个XSD来控制可用的标记。当我犯了一些错误并且XML包含不规则标记时,XmlSerializer不会给出错误,而是跳过不规则标记 如何强制执行运行时错误? 这是我班的一部分: [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttr

我必须反序列化XML。我有一个XSD来控制可用的标记。当我犯了一些错误并且XML包含不规则标记时,XmlSerializer不会给出错误,而是跳过不规则标记

如何强制执行运行时错误?

这是我班的一部分:

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://tempuri.org/BXTestScript.xsd")]
[System.Xml.Serialization.XmlRootAttribute(Namespace="http://tempuri.org/BXTestScript.xsd", IsNullable=false)]

public partial class BXTestScript {

    [System.Xml.Serialization.XmlElementAttribute("ActivateMenu", typeof(BXTestScriptActivateMenu))]
    [System.Xml.Serialization.XmlElementAttribute("BreakPoint", typeof(BXTestScriptBreakPoint))]
    ...     
    public static BXTestScript ReadXml(string path) {
        System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(BXTestScript));
        using (System.IO.StreamReader sr = new System.IO.StreamReader(path))
            BXTestScript ts = (BXTestScript)ser.Deserialize(sr);
        return ts;
    }
    ...
}

如果XML有效并且只包含模式中的元素,那么所有程序都可以正常工作

使用
XmlSchemaSet
-本文包含详细说明: