Je souhaite simplement que ces propriétés générées automatiquement soient implémentées, comme pour "Coller JSON en tant que classes". Actuellement, cela signifie un résultat de code gonflé 6 fois, ce qui est beaucoup plus difficile à lire. Cela seul me fait malheureusement chercher un autre outil.
Nicholas Petersen
1
Cela a-t-il été omis de VS 2013?
Roger
3
@Roger Je n'ai pas utilisé VS 2013, mais je pense que cette fonctionnalité devrait être là, assurez-vous que votre projet cible le framework .NET 4.5
miszczu
2
C'est beaucoup plus rapide que xsd, mais la sortie est à peu près la même.
Jess
4
Si vous n'avez pas de resharper, utilisez l'expression régulière, remplacez par public (\w+) (\w+)\r\n +\{\r\n +get\r\n +\{\r\n +return this.*;\r\n +\}\r\n +set\r\n +\{\r\n +this.*;\r\n +\}\r\n +\}\r\n=> public $1 $2 { get; set; }et `private \ w + \ w + Field; \ r \ n \ r \ n`
AlexDev
44
Au début, je pensais que la pâte spéciale était le Saint Graal! Mais ensuite je l'ai essayé et mes cheveux sont devenus blancs comme le film Indiana Jones.
La sortie de cet outil est agréable, mais je veux juste faire un avertissement là-bas pour ne pas soumettre de données sensibles à ce site (ou tout autre d'ailleurs). Bien que j'apprécie le service offert, il n'y a pas de politique de confidentialité et peu ou pas d'assurance que ce que vous collez ne sera pas enregistré et examiné, etc.
SvenAelterman
2
J'avais un fichier xml qui a des relations récursives (peut-être que cela s'appelle une relation circulaire, je ne suis pas sûr.) Les autres ont échoué mais xmltocsharp.azurewebsites.net a très bien réussi sur ce xml.
Koray
4
@ D.Kermott merci pour le lien du site Web, je l'ai regardé rapidement et il semble que cela fasse un bien meilleur travail que la pâte spéciale, le code semble plus propre, bien que mon test xml ait créé plus de classes, c'était beaucoup plus agréable à utiliser.
Harag
Dommage qu'il semble inverser l'ordre des classes (éléments extérieurs listés en dernier)
Savage
22
Je me rends compte que c'est un poste assez ancien et que vous avez probablement évolué.
Mais j'ai eu le même problème que vous, j'ai donc décidé d'écrire mon propre programme.
Le problème avec l'itinéraire "xml -> xsd -> classes" pour moi était qu'il venait de générer un morceau de code qui était complètement impossible à maintenir et j'ai fini par le turfer.
Il n'est en aucun cas élégant mais il a fait le travail pour moi.
Vous pouvez l'obtenir ici: veuillez faire des suggestions si vous l'aimez.
produit un code incorrect: // ELEMENTS [XmlIgnore] public DateTime Value {get; ensemble; } [XmlText] chaîne publique ValueString {get {return Value? "vrai faux"; } set {Value = value == "true"; }}
André Fiedler
Et les constructeurs sont inutiles + vous devez inclure des commentaires pour les membres visibles du public
André Fiedler
1
Pour ma défense, c'est quelque chose que j'ai giflé très rapidement qui a fonctionné pour moi. Je n'y suis pas retourné mais n'hésitez pas à contribuer au repo tout changement.
Talon
Je l'utilise depuis quelques mois - ce n'est pas parfait, mais c'est très utile et je trouve qu'il génère un XML beaucoup plus lisible / plus simple que la pâte de VS2013 en XML. Très apprécié Talon.
Xsd.exe et svcutil fonctionnent tous les deux sur le fichier de schéma XML (.xsd). Votre XML doit être conforme à un fichier de schéma à utiliser par l'un de ces deux outils.
Notez que divers outils tiers existent également pour cela.
De plus, il est recommandé de modifier le fichier test.xsd pour créer un schéma plus raisonnable.
type="xs:string"peut être changé en type="xs:int"pour des valeurs entières minOccurs="0"peut être changé en minOccurs="1"où le champ est requis maxOccurs="unbounded"peut être changé en maxOccurs="1"où un seul élément est autorisé
Vous pouvez créer des xsd-s plus avancés si vous souhaitez valider davantage vos données, mais cela vous donnera au moins des types de données raisonnables dans le c # généré.
Réponses:
Oui, en utilisant xsd.exe
Remarques
Il peut être utile de savoir comment modifier le répertoire de l'invite de commandes du développeur en d: \ temp.
Si vous générez des classes pour un tableau multidimensionnel, il existe un bogue dans le générateur XSD.exe, mais il existe des solutions de contournement .
la source
xsd
exécutez l' invite de commande du développeur pour VS2013 dans votre menu d'outils.xsd.exe
peut être trouvé sous:C:\Program Files (x86)\Microsoft SDKs\Windows
xsd.exe
été trouvé à:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
Si vous travaillez sur un projet .NET 4.5 dans VS 2012 (ou plus récent), vous pouvez simplement coller votre fichier XML en tant que classes.
EDIT > Paste Special > Paste XML As Classes
la source
xsd
, mais la sortie est à peu près la même.public (\w+) (\w+)\r\n +\{\r\n +get\r\n +\{\r\n +return this.*;\r\n +\}\r\n +set\r\n +\{\r\n +this.*;\r\n +\}\r\n +\}\r\n
=>public $1 $2 { get; set; }
et `private \ w + \ w + Field; \ r \ n \ r \ n`Au début, je pensais que la pâte spéciale était le Saint Graal! Mais ensuite je l'ai essayé et mes cheveux sont devenus blancs comme le film Indiana Jones.
Mais maintenant j'utilise http://xmltocsharp.azurewebsites.net/ et maintenant je suis plus jeune que jamais.
Voici un segment de ce qu'il a généré:
la source
Je me rends compte que c'est un poste assez ancien et que vous avez probablement évolué.
Mais j'ai eu le même problème que vous, j'ai donc décidé d'écrire mon propre programme.
Le problème avec l'itinéraire "xml -> xsd -> classes" pour moi était qu'il venait de générer un morceau de code qui était complètement impossible à maintenir et j'ai fini par le turfer.
Il n'est en aucun cas élégant mais il a fait le travail pour moi.
Vous pouvez l'obtenir ici: veuillez faire des suggestions si vous l'aimez.
SimpleXmlToCode
la source
Vous devriez considérer svcutil ( question svcutil )
Xsd.exe et svcutil fonctionnent tous les deux sur le fichier de schéma XML (.xsd). Votre XML doit être conforme à un fichier de schéma à utiliser par l'un de ces deux outils.
Notez que divers outils tiers existent également pour cela.
la source
Vous pouvez utiliser xsd comme suggéré par Darin.
De plus, il est recommandé de modifier le fichier test.xsd pour créer un schéma plus raisonnable.
type="xs:string"
peut être changé entype="xs:int"
pour des valeurs entièresminOccurs="0"
peut être changé enminOccurs="1"
où le champ est requismaxOccurs="unbounded"
peut être changé enmaxOccurs="1"
où un seul élément est autoriséVous pouvez créer des xsd-s plus avancés si vous souhaitez valider davantage vos données, mais cela vous donnera au moins des types de données raisonnables dans le c # généré.
la source
Utilisez la syntaxe ci-dessous pour créer une classe de schéma à partir d'un fichier XSD.
la source
Pour convertir XML en classe C #:
Remarque: dans le temps, cette application peut être remplacée, mais il y a de fortes chances qu'un autre outil fasse la même chose.
la source