Valider SOAP contre XSD schéma?
-
10-10-2019 - |
Question
I ai un service Web SOAP qui était basé sur un schéma XSD (schéma généré les classes qui a été utilisé en tant que paramètre d'entrée pour la méthode de service web), comme par exemple:
public class CMService : WebService
{
[WebMethod(Description = "Submit trades")]
public bool SubmitTrades(List<TradesTrade> trades)
{
// Validation, if true, return true, else, return false;
return true;
}
}
Comment puis-je validate adoptée en contre le schéma (Dans ce cas, la classe de schéma est TradesTrades )?
Merci.
La solution 2
J'ai validate manuellement contre les champs à la place:)
Autres conseils
Il est difficile de le faire, et ne peut pas être utile.
Considérez que si le XML envoyé à votre service ne correspond pas au schéma, alors il ne sera pas désérialiser correctement. Si elle est assez mauvaise, votre opération de service ne sera même pas appelé.
Cela dit, si vous avez vraiment besoin de faire cela, alors vous devriez regarder l'exemple d'un la classe de SoapExtension. Je recommande que-est vous obtenez d'abord l'exemple de travail exactement. Ensuite, je vous recommande de créer une nouvelle version de l'exemple, et faire faire ce que vous voulez.
Qu'est-ce que vous voulez est de modifier le WriteInput et / ou des méthodes WriteOutput pour valider votre XML en utilisant l'une des méthodes disponibles, peut-être en configurant un XmlReader pour faire la validation et à lire à partir du flux d'entrée; et la configuration d'un XMLEcrit pour écrire dans le flux de sortie; puis de boucle pour lire à partir de l'entrée et écrire à la sortie.
S'il vous plaît laissez-moi savoir, si vous avez une question particulière sur les haricots XML.
J'été le même problème moi-même, la réponse est que son possible de le faire sans avoir besoin de valider manuellement tous les champs (qui est sujette aux erreurs, plus puisque vous avez le schéma vous pouvez déjà aussi bien faire usage) .
Voir ce un article sur le sujet .
Fondamentalement, la procédure à suivre est d'abord lire l'original