xsd.exe генерирует повторяющиеся атрибуты при запуске по схеме OFX2.

StackOverflow https://stackoverflow.com/questions/1306773

  •  19-09-2019
  •  | 
  •  

Вопрос

Используя командную строку:

"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 (2 сгенерированных файла), и в каждой из них у меня был один и тот же «тип» элемента, но с разными определениями.переименование одного из типов в другое имя решило проблему

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top