2010-11-19 5 views
1

Alles ist OK, wenn Proxy-Klassen leicht von XSD/WSDL-Datei erzeugt werden (die wiederum oft aus den Klassen generieren).Generieren von xsd-Schemas Proxy-Klassen wirklich Wert?

Aber wenn wsdl/XSD ist nicht von MS Welt, gegeben als ZIP-Paket mit zehn oder sogar Hunderten von Dateien, dann Proxy-Generierung in der Regel nicht. In diesem Fall versuchen Sie zu verstehen, was falsch ist, versuchen Sie, wsdl zu korrigieren, finden Sie Typen, die Sie brauchen, und lassen Sie nur sie, finden Sie verpasste Includes usw., oder geben Sie auf und leben Sie ohne Proxies?

Ich fühle mich nicht Unbehagen XmlDocument mit Xpath abzufragen und Backbone-Dokumente aus String/Dateivorlagen erstellen, aber jedes Mal, wenn ich "bad" wsdl/xsd treffe ich verbrachte einige Zeit, um es zu korrigieren ... und bereue dies später, selbst wenn es erfolgreich ist, da das Einrichten endloser Proxy-Felder die gleiche Sache ist wie das Einrichten von endlosen Dokumentenelementen und -attributen.

Welchen Wert Proxy-Klassen an Entwickler bringen außer einigen primitiven Compiler überprüft? Vielleicht habe ich etwas vergessen ...

Antwort

1

Im Allgemeinen Ich hatte eine ziemlich positive Erfahrung von xsd arbeiten. Bei den wenigen Gelegenheiten es versäumt hat, habe ich einen pragmatischen Ansatz gefunden (wenn Sie XML-Beispiel zur Verfügung haben) ist das xsd.exe Werkzeug zu nutzen, um etwas zu erzeugen, die wenn auch nicht ideal eingegeben hat, zumindest die XML übereinstimmt. Natürlich müssen Sie vielleicht mit ein paar weiteren string Mitgliedern leben, die Sie mögen, oder sie manuell anpassen.

Tweaking die XSD (zur Berücksichtigung von Änderungen in Ihrem kopieren oder XSD-Optionen hacken nicht von Ihrem Werkzeug unterstützt) könnte eine sinnvolle Option sein, aber es ist schwer zu beurteilen, wie lange Sie benötigen verbringe diese Route.

Re der Wert: Nun, wenn es funktioniert ist es ein ziemlich fairer Weg, ein Objekt-Modell, das als eine DTO-Schicht dienen kann. Und normalerweise funktioniert es funktioniert. Aber nicht immer. Es Sounds wie Ihr Szenario hat große/komplexe/mehrere Xsd, so dass alle diese Übersetzungscode von Hand (entweder über XML-Abfrage, oder Schreiben Sie Ihre eigenen DTO-Modell von Grund auf) kann ein Los der Arbeit sein.

Xsd kann (und sollte) auch als ein Werkzeug verwendet werden, um zu validieren, dass der XML-Code, den Sie übergeben fortsetzt, um eine veröffentlichte Definition einzuhalten. Beim Umgang mit XML-Datenimporten habe ich mehrfach den ersten Schritt gemacht, um einen Scan über einen xsd-Validator durchzuführen (zum Glück wird XmlReader das in .NET machen).

+0

Über von Grund auf neu zu schreiben: In der Regel ist es möglich, „Musteranfrage“ oder „Probe Antwort“ von Kunden zu haben, in Fällen, in denen ich mit Proxies Generation aufgeben, ich sie wie Vorlagen verwenden und dann nur mehrere Knoten mit neuen nachzufüllen Werte. –