Générer DataContract de XSD
Je veux être en mesure de générer un DataContract
à partir d'un fichier XSD, de préférence à l'aide de la xsd.exe outil. Quelle est la façon la plus simple pour générer automatiquement le [DataContract]
et [DataMember]
sur chacun de mes articles?
Ou est-il une meilleure approche? Je suis en essayant d'éviter d'avoir à recréer le contrat de données chaque fois que le fichier XSD est changé et régénérée.
- Ok, je suis maintenant d'avoir une autre erreur. maxOccurs sur DownloadRequestItem doit être de 1 C'est mon schéma elementFormDefault="qualified"> <xs:element name="DownloadRequest"> <xs:complexType> <xs:sequence> <xs:element name="nom d'utilisateur" type="xs:string" nillable="false" maxOccurs="unbounded"/> <xs:élément nom="DownloadRequestItem" nillable="true"> <xs:complexType> <xs:sequence> <xs:element name="Identificateur" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
- pouvez vous s'il vous plaît mettre à jour votre question initiale par l'édition?? Mettre XML dans des commentaires est vraiment VRAIMENT dur à lire et un gâchis.....
- wcfBlue wscfblue.codeplex.com
Vous devez vous connecter pour publier un commentaire.
La
xsd.exe
outil est antérieure à la WCF et ne sais rien à propos de[DataContract]
et[DataMember]
. Si vous n'utilisezxsd.exe
, vous aurez à passer de la WCF pour utiliser leXmlSerializer
au lieu de sa valeur par défautDataContractSerializer
pour la sérialisation de données des contrats.La WCF équivalent pour
xsd.exe
estsvcutil.exe
- il a un paramètre/dconly
qui crée les contrats de données uniquement, à partir d'un fichier XSD. Cela va générer un C# ou VB.NET fichier pour vous, contenant les données à des contrats bien annotés.Utilisation:
Ce serait de générer un *.cs fichier du même nom de base dans votre répertoire.
Dans mon expérience,
svcutil.exe
est assez pointilleux sur ses structures XML - ne soyez donc pas surpris si il aboie à vous avec des tonnes de mises en garde et/ou d'erreurs.Utilisation svcutil.exe au lieu de xsd.exe
Comment l'Utiliser ?
Allez au Menu Démarrer --> Microsoft Visual Studio 2008 --> Visual Studio Tools --> Visual Studio 2008 Invite
et Modifier le directoy vous voulez ou modifiez le répertoire whre votre xsd est là.
il affichera la liste de toutes les options.
l'une des options que j'utilise pour générer des données contarct seulement
Garder le codage hava bonne journée!
DataContracts de XSD première!
C'est la façon moderne et très bonne pratique, cependant, VS2010 n'a que très peu de soutien à l'automatisation
pour cela. Donc, je me suis assis et a écrit un pur msbuild cible: ne nécessite pas de proj des modifications de fichier
et génère .g.cs. Vous pouvez également réaliser la génération de code visual basic très facilement avec de petites modifications dans ce fichier.
Instalaltion: Copiez le code et l'enregistrer en tant que GenerateDataContractsFromXSD.objectifs fichier dans le dossier " C:\Program Files\MSBuild\4.0\Microsoft.Commun.objectifs\ImportAfter'. Cela rend msbuild à lire à chaque fois qu'il démarre et la même chose s'applique pour VS2010.
Utilisation:
Profiter.
Sur une machine 64 bits, vous trouverez dans
Dans ce cas: