我在http://www.w3.org/2001/XMLSchema.xsd下载了XML Schema for XML Schema。
然后我使用 XSD.EXE 从下载的文件中创建一个类。我打电话给班级schema.cs
。
然后我执行了这行代码:
XmlSerializer serializer = new XmlSerializer(typeof(schema));
并收到此错误:
来自的XML元素'annotation' 命名空间 'http://www.w3.org/2001/XMLSchema'是 已存在于当前范围内。
如何在不破坏架构的情况下找到重复元素并进行修复?
答案 0 :(得分:1)
我认为生成的类有缺陷。
我更改了属性以修复第一个错误,但发现了一个新错误。
/// <remarks/>
//[System.Xml.Serialization.XmlElementAttribute("annotation", typeof(annotation))]
[System.Xml.Serialization.XmlElementAttribute("Items", typeof(annotation))]
[System.Xml.Serialization.XmlElementAttribute("import", typeof(import))]
[System.Xml.Serialization.XmlElementAttribute("include", typeof(include))]
[System.Xml.Serialization.XmlElementAttribute("redefine", typeof(redefine))]
public openAttrs[] Items {
get {
return this.itemsField;
}
set {
this.itemsField = value;
}
}
答案 1 :(得分:0)
因为注释元素只是注释,所以您可以尝试简单地过滤所有这些。首先将XML加载到XDocument
并删除所有注释元素。