xsd.exe генерирует дублирующиеся атрибуты при запуске в схеме OFX2 - PullRequest
2 голосов
/ 20 августа 2009

Использование командной строки:

"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 не работает? С # сломан? Я сломлен?

Ответы [ 3 ]

7 голосов
/ 02 апреля 2011

Хорошо, этот ответ долго ждать ...

Я просто столкнулся с той же проблемой. Проблема была не в foo.cs, а в foo.designer.cs. Вы должны удалить дубликаты атрибутов во втором классе.

C # должен разрешать повторяющиеся атрибуты для отдельных классов или исправлять xsd, чтобы пропустить атрибуты во всех файлах, кроме .cs.

2 голосов
/ 11 июня 2013

У меня была та же проблема (та же проблема "дублирующихся атрибутов") с разными схемами. причина была в 2 xsd схемах (2 сгенерированных файла), и в каждой из них был один и тот же «тип» элемента, но с разными определениями переименование одного из типов в другое имя решило проблему

1 голос
/ 04 сентября 2011

В последней версии загружаемой спецификации OFX имеется файл OFX3_Protocol_dotNET.xsd, который был изменен из файла OFX2_Protocol.xsd и более подходит для инструментов генерации кода .NET. Я сгенерировал C # из этого xsd без каких-либо проблем, хотя я еще не десериализовал XML.

...