使用命令行:
"xsd.exe" "OFX 2.1.1 schema/OFX2_Protocol.xsd" /c /namespace:OFX /nologo"
Run Code Online (Sandbox Code Playgroud)
生成的C#源文件无法使用以下错误构建:
D:\blah\OFX2_Protocol.cs(19,6): error CS0579: Duplicate 'System.CodeDom.Compiler.GeneratedCodeAttribute' attribute
D:\blah\OFX2_Protocol.cs(20,6): error CS0579: Duplicate 'System.SerializableAttribute' attribute
D:\blah\OFX2_Protocol.cs(21,6): error CS0579: Duplicate 'System.Diagnostics.DebuggerStepThroughAttribute' attribute
D:\blah\OFX2_Protocol.cs(22,6): error CS0579: Duplicate 'System.ComponentModel.DesignerCategoryAttribute' attribute
D:\blah\OFX2_Protocol.cs(23,6): error CS0579: Duplicate 'System.Xml.Serialization.XmlTypeAttribute' attribute
D:\blah\OFX2_Protocol.cs(24,6): error CS0579: Duplicate 'System.Xml.Serialization.XmlRootAttribute' attribute
Run Code Online (Sandbox Code Playgroud)
一个类似的XSD架构,我从OFX2架构复制然后修剪到我想要的有用位,生成一个C#文件,它构建得很好,但具有与完整架构的C#表示相同的所有属性.
知道为什么吗?OFX架构是否已损坏?xsd.exe坏了吗?C#坏了吗?我坏了吗?
好的,这个答案很长一段时间......
我刚遇到同样的问题.问题不在于foo.cs,而是在foo.designer.cs中.您必须删除第二个类中的重复属性.
C#应该允许部分类中的重复属性,或者修复xsd以省略除.cs文件之外的所有属性.