xsd.exe génère des attributs en double lorsqu'il est exécuté sur schéma OFX2

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

  •  19-09-2019
  •  | 
  •  

Question

En utilisant la ligne de commande:

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

Le fichier résultant source C # ne parvient pas à construire avec ces erreurs:

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

Un schéma XSD similaire, que je copiais du schéma OFX2 puis dégrossi aux bits utiles que je voulais, génère un fichier C # qui construit très bien, n'a pas encore tous les mêmes attributs que C # représentation du plein schéma.

Une idée pourquoi? Est-ce le schéma OFX cassé? xsd.exe est cassé? C # est cassé? Suis-je brisé?

Était-ce utile?

La solution

Ok, cette réponse est une longue période à venir ...

Je viens de rencontrer le même problème. Le problème n'a pas été en foo.cs, mais foo.designer.cs. Vous devez supprimer les attributs en double dans la deuxième classe.

C # doit permettre soit d'attributs en double accross classes partielles ou fixer xsd d'omettre les attributs dans tout sauf le fichier .cs.

Autres conseils

i eu le même problème (le même problème « attributs en double ») avec différents schémas. la raison est due à 2 schémas XSD (2 fichiers générés) et dans chacun d'eux i eu le même « type » de l'élément, mais avec des définitions différentes. Changement de nom de l'un des types différents en nom résolu le problème

La dernière version du téléchargement de spécification OFX a un « OFX3_Protocol_dotNET.xsd » qui a été modifié de la « OFX2_Protocol.xsd » pour être plus adapté aux outils de génération de code .NET. J'ai généré C # de ce xsd sans aucun problème même si je ne l'ai pas encore de désérialisé XML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top