Welches WSDL Binding Style sollte man verwenden? Vortrag: AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
Sep 11

xsd:choice ist ein verbreitetes XML Konstrukt. Das Mapping von xsd:choice auf eine objektorientierte Programmiersprache ist jedoch nicht ganz einfach. Die JAX-RPC Spezifikation für Webservices definiert z.B. kein Mapping von xsd:choice nach Java.
So mappt ein JAX-RPC Codegenerator eine xsd:choices Typdefinition in der Regel diese auf die Klasse javax.xml.soap.SOAPElement, die Teil der SAAJ API ist. Die SAAJ API ist jedoch nicht besonders benutzerfreundlich.

Hat man die Möglichkeit das XML Schema zu verändern, so besteht die Möglichkeit eine benutzerfreundliche API zu generieren in dem man das xsd:choice Konstrukt mit Polymorphismus ersetzt. Russel Butek hat dazu einen guten Artikel mit dem Titel „Use polymorphism as an alternativ to xsd:choice“ verfasst, welcher dieses Vorgehen sehr gut und detailliert erklärt.

Ich habe die XML Schema Definition für den CustomerService Beispiel aus meinen vorgehenden Beiträgen entsprechend um das Element „Payment“ aus dem Artikel von Russel Butek erweitert und mit Apache CXF auch entsprechenden Java Source Code generiert. Das Beispiel steht zum Download bereit.» » » » » » » »


Ähnliche Artikel:


Hinterlasse einen Kommentar