9
votes

Existe-t-il un moyen d'exporter un schéma XSD d'un Datacontract

J'utilise DatacontractSerializer pour sérialiser / désérialiser mes classes à / à partir de XML. Tout fonctionne bien, mais à un moment donné, j'aimerais établir un schéma standard pour le format de ces fichiers XML indépendamment du code réel. De cette façon, si quelque chose se casse dans le processus de sérialisation, je peux toujours revenir en arrière et vérifier ce que le schéma standard devrait être. Ou si je dois modifier le schéma, la modification est une décision explicite plutôt qu'à une incidence ultérieure de la modification de mon code.

En outre, d'autres personnes peuvent écrire d'autres logiciels qui peuvent ne pas être basés sur ces fichiers XML. J'aimerais pouvoir leur fournir une sorte de documentation du schéma.

Y a-t-il une relation entre un Datacontract et un schéma XSD. Existe-t-il un moyen d'exporter les attributs Datacontract dans des classes sous forme de schéma XSD?


0 commentaires

3 Réponses :


5
votes

SVCuttil.exe peut "exporter des métadonnées pour les contrats de données compilés" .
Il y a une relation entre
Datacontract et XSD :

Le DatacontractSerializer Maps CLR Types à XSD Lorsque les métadonnées sont exportées à partir d'un service Windows Communication Foundation (WCF) à l'aide d'un point d'extrémité de métadonnées ou de l'outil ServiceModel MetaData Utility (SVCutil.exe). Pour plus d'informations, voir Sériciateur de contrat de données.

Le DatacontractSerializer mappe également XSD aux types de CLR lorsque SVCuttil.exe est utilisé pour accéder à des documents de description des services Web (WSDL) ou XSD et générer des contrats de données pour des services ou des clients.

Vous pouvez également obtenir le ou les XSD au moment de l'exécution, même dans votre navigateur, par Configuration A MEX EndPoint .
Le WSDL par défaut contiendra des références à XSD (s) accessibles également via le noeud final.


0 commentaires

4
votes

Vous pourriez peut-être générer des fichiers de schéma à partir de Datacontranctes à l'aide de l'outil SVCuttil.exe fourni avec Visual Studio.

svcutil myAssembly.dll
   - Generate metadata documents for Service Contracts and associated types in an assembly

svcutil myServiceHost.exe /serviceName:myServiceName
   - Generate metadata documents for a service, and all associated Service Contracts and data types in an assembly

svcutil myServiceHost.exe /dconly
   - Generate metadata documents for data types in an assembly


0 commentaires