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 が有効で、スキーマの要素のみが含まれている場合、すべてのプログラムは正常に動作します。