Frage

Ich habe einen SOAP-Web-Dienst, der auf einem XSD-Schema (das Schema generiert die Klassen, die als Eingangsparameter für die Web-Service-Methode verwendet wurde) basiert, wie zum Beispiel:

public class CMService : WebService
{
    [WebMethod(Description = "Submit trades")]
    public bool SubmitTrades(List<TradesTrade> trades)
    {
        // Validation, if true, return true, else, return false;
        return true;
    }
}

Wie kann ich Validate in gegen das Schema übergeben wurde (in diesem Fall das Schema Klasse TradesTrades )?

Danke.

War es hilfreich?

Lösung 2

Ich habe manuell zu validieren gegen die Felder statt:)

Andere Tipps

Es ist nicht einfach, dies zu tun und kann nicht sinnvoll sein.

Beachten Sie, dass, wenn die XML zu Ihrem Dienst nicht das Schema übereinstimmt gesendet werden, dann wird es nicht richtig deserialisieren. Wenn es schon schlimm genug ist, wird Ihr Service-Betrieb nicht einmal genannt werden.

sagte, dass, wenn Sie dies wirklich tun müssen, dann sollten Sie am Beispiel eines aussehen: Soapextension Klasse. Ich empfehle, dass Sie zuerst das Beispiel bekommen arbeiten genau so, wie sie ist. Dann empfehle ich Ihnen eine neue Version des Beispiels erstellen, und machen es zu tun, was Sie wollen.

Was Sie wollen, ist die WriteInput und / oder Writeoutput Methoden zu ändern, um Ihre XML Mithilfe der zur Verfügung stehenden Methoden zur Validierung, vielleicht durch eine XmlReader Konfiguration der Validierung zu tun und aus dem Eingangsstrom zu lesen; und Konfigurieren eines XMLWrite zu schreiben, um den Ausgabestrom; und dann in eine Schleife läuft von dem Eingang und Schreiben in den Ausgang zu lesen.

Ich habe verwendet XML Beans (xml verbindlichen Rahmen) in meinem früheren Projekt. Wir haben das XML-Schema und dann das XML-Bohnen-Objekts aus dem Schema des erzeugten. Diese XML-Bohnen-Objekt viele praktische Methoden haben die Gültigkeit des xml zu überprüfen und die übergebenen Werte in als Teil des XML.

Bitte lassen Sie mich wissen, wenn Sie eine bestimmte Frage auf XML Beans.

ich das gleiche Problem selbst wurde, ist die Antwort, dass ihr möglich, dies zu tun, ohne dass manuell alle Felder validieren (was fehleranfällig ist, und da Sie das Schema bereits haben auch Sie können davon Gebrauch machen) .

diesen einen Artikel zum Thema anzeigen .

Im Grunde ist der Prozess zu folgen, um zuerst das Original zu lesen

scroll top