Gestern abend bin ich zufällig über eins der Sub-Projekte von Spring gestolpert: Spring-WS (Spring WebServices). Beim Lesen der Dokumentation stach mir die Behauptung ins Auge "Best Practice made easier", gemeint ist ein Contract-First Ansatz und das Arbeiten direkt mit den XML-Nachrichten.
In einem eigenen Abschnitt wird ausgeführt, warum (speziell im Falle von WebServices) der Contract-First Ansatz der Bessere ist:
Zum einen lassen die Type-Definitionen mit XML Schema Konstruktionen zu, die in Java (um diese Sprache geht es hier ;-)) gar nicht möglich sind.
Zum anderen lassen bestimmte Sprachkonstrukte, wie zyklische Bezüge nicht einfach so nach XML abbilden.
Deshalb, so die Schlussfolgerung, sei es das Beste, direkt mit den XML-Nachrichten zu arbeiten. Hierfür gibt’s ja schließlich eine Reihe von APIs mit denen sich das einfach bewerkstelligen läßt.
Als krönender Abschluss wird, im Falle einer neuen Version des Contracts und damit anderer XML-Nachrichten, auf die Möglichkeit verwiesen, diese unter Umständen ganz einfach mit XSLT wieder auf die "Old-Style"-Nachricht abzubilden, und somit müßte man nicht mal eine neue Java-Implementierung schreiben.
Geht’s noch …
In der Tat, um mal beim letzten Punkt anzufangen, man braucht keine neue Java-Implementierung und auch kein neues Java-Interface, aber dafür ein XSLT-Stylesheet. Und wenn das dann nicht so arbeitet, wie man gedacht hat, dann baucht man einen Debugger für die Transformation-Engine, damit man sieht wo es schief geht ….
Weiterlesen →