يقوم XSD.EXE بإنشاء سمات مكررة عند تشغيل مخطط OFX2
سؤال
باستخدام سطر الأوامر:
"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
ثم قطع مخطط XSD مشابه، الذي قمت بنسخته من مخطط OFX2 إلى البتات المفيدة التي أردتها، وإنشاء ملف C # الذي يبني على ما يرام، ومع ذلك لديه كل السمات نفسها مثل تمثيل C # الكامل للمخطط.
أي فكرة لماذا؟ هو مخطط ofx مكسورة؟ هل كسر xsd.exe؟ هل ج # مكسور؟ هل أنا مكسور؟
المحلول
حسنا، هذه الإجابة هي فترة طويلة قادمة ...
لقد ركضت للتو في نفس المشكلة. المشكلة لم تكن في foo.cs، ولكن في foo.designer.cs. يجب عليك إزالة السمات المكررة في الفصل الثاني.
يجب أن تسمح C # إما بالسمات المكررة فصول جزئية، أو إصلاح XSD لحذف السمات في جميع ملفات .cs.
نصائح أخرى
كان لدي نفس المشكلة (نفس المشكلة "المكررة" مشكلة) مع مخططات مختلفة. السبب كان بسبب مخططين XSD (ملفان تم إنشاؤه) وفي كل واحد منهم كان لدي نفس "النوع" للعنصر، ولكن مع تعريفات مختلفة. إعادة تسمية أحد الأنواع في اسم مختلف حل المشكلة
يحتوي أحدث إصدار من OFX Postification Download على "ofx3_protocol_dotnet.xsd" الذي تم تعديله من "ofx2_protocol.xsd" لتكون أكثر ملاءمة لأدوات إنشاء Code .NET. لقد قمت بإنشاء C # من هذا XSD دون أي مشاكل على الرغم من أنني لم أقدم أي XML بعد.