Je dois créer un service Web (.NET) qui sera utilisé par d'autres systèmes. Pour qu'ils implémentent la logique qui utilisera mon service Web, je dois envoyer des fichiers WSDL et XSD pour mon service Web. P>
Le fichier WSDL n'est pas un problème, je l'obtiendrai à partir de la page .asmx en passant le paramètre WSDL. Mais comment puis-je générer des fichiers XSD appropriés pour mon service Web? Puis-je utiliser un outil xsd.exe et transmettre le fichier .WSDL comme paramètre ou y a-t-il un autre moyen? P>
Merci d'avance. P>
4 Réponses :
Vous pouvez utiliser le utilitaire disco.exe qui vous permet de Enregistrez les fichiers WSDL et XSD sur le disque de manière à ce que ces fichiers puissent être utilisés pour générer un proxy client sans avoir accès à l'adresse Web WSDL. P>
J'ai réussi à générer des fichiers XSD avec cet outil, acclamations.
Je ne suis pas en mesure de générer XSD à partir d'une adresse Web WSDL.
Si vous utilisez l'édition Pro de Visual Studio (et ci-dessus), lors de l'ouverture d'un fichier XML, vous trouverez un menu XML, avec un élément qui générera un XSD à partir de celui-ci (création de schéma). Je crois qu'il utilise voir MSDN . P> xsd.exe code> sous la hotte cependant. P>
Lorsque j'essaie ceci, j'obtiens après l'erreur suivante: "L'instance XML fournie est un schéma ou contient un schéma en ligne. Cette classe ne peut pas déduire un schéma pour un schéma."
@BUHTLA - Apparemment, un schéma est déjà défini. Regardez le XML et voyez s'il s'agit d'un schéma.
J'essaie de générer XSD à partir du fichier WSDL. WSDL est généré automatiquement à partir du service Web que j'ai créé dans Visual Studio - So Eather Web Service Générez des XML non valides (que je doute) ou il y a une autre raison pour cette erreur que je reçois.
Vous pouvez ajouter "? XSD = 1" à la fin de l'URL de service pour obtenir le schéma. P>
I.e. Si votre URL de service Web est : // my_ws_service: 9080 / Service / Nom Ensuite, vous pouvez obtenir WSDL en utilisant : // my_ws_service: 9080 / Service / Nom? WSDL et vous pouvez obtenir un schéma en utilisant : // my_ws_service: 9080 / Service / Nom? XSD = 1 (Remarque XSD est sensible à la casse) p>
J'espère que cela aide. P>
pensé que je partageais ma solution, dans mon cas, je devais créer une classe C # réelle afin que je puisse l'utiliser pour désérialiser la réponse XML pour un point final donné dont la WSDL que j'avais sauvegardée sur mon PC Dev.
i Ouvrez l'invite de commande Visual Studio et a tapé les éléments suivants: P> où le nom de votre fichier est le nom de votre fichier WSDL enregistré. Exécution de la commande devrait générer une classe C # que vous pouvez ensuite utiliser dans votre client requéreur pour désérialiser une réponse de savon XML pour votre point final donné. P> espère que cela aide. P> P>