3

コマンドラインを使用する:

"xsd.exe" "OFX 2.1.1 schema/OFX2_Protocol.xsd" /c /namespace:OFX /nologo"

結果の 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

OFX2 スキーマからコピーした同様の XSD スキーマは、必要な有用なビットに切り詰めて、完全なスキーマの C# 表現と同じ属性をすべて備えた C# ファイルを生成します。

理由はありますか?OFX スキーマは壊れていますか? xsd.exe は壊れていますか? C# は壊れていますか? 私は壊れていますか?

4

4 に答える 4

7

わかりました、この答えは久しぶりです...

私はちょうど同じ問題に遭遇しました。問題はfoo.csではなく、foo.designer.csにありました。2番目のクラスで重複する属性を削除する必要があります。

C#は、部分的なクラス間で属性の重複を許可するか、xsdを修正して.csファイル以外のすべての属性を省略する必要があります。

于 2011-04-01T20:40:44.100 に答える
2

異なるスキーマで同じ問題(同じ「重複属性」の問題)がありました。その理由は、2 つの xsd スキーマ (2 つの生成されたファイル) によるもので、それぞれに同じ「タイプ」の要素がありましたが、定義が異なりました。タイプの1つを別の名前に変更すると、問題が解決しました

于 2013-06-11T10:02:27.467 に答える
1

OFX 仕様ダウンロードの最新バージョンには、.NET コード生成ツールにより適した「OFX2_Protocol.xsd」から変更された「OFX3_Protocol_dotNET.xsd」があります。XML をまだデシリアライズしていませんが、この xsd から問題なく C# を生成しました。

于 2011-09-04T04:30:46.780 に答える