Um einen Einstieg in WSDL zu finden und zu verstehen, wie ein solches Dokument aufgebaut ist, sollten Sie vielleicht einen Blick auf einen Artikel werfen wie WSDL verstehen oder die WSDL-Tutorial oder jede andere Ressource für Anfänger, die Sie bei Google finden.
Um Ihre Frage in vereinfachter Form zu beantworten, müssen Sie mit der portType
Element, das enthält:
Ein abstrakter Satz von Operationen, die von einem oder mehreren Endpunkten unterstützt werden (allgemein als Schnittstelle bekannt); Operationen werden durch einen Austausch von Nachrichten definiert
Zum Beispiel in Ihrem Fall:
<wsdl:operation name="DictionaryList">
<wsdl:documentation>Returns a list of available dictionaries</wsdl:documentation>
<wsdl:input message="tns:DictionaryListSoapIn"/>
<wsdl:output message="tns:DictionaryListSoapOut"/>
</wsdl:operation>
Und für jede Operation müssen Sie die Eingabe- und Ausgabemeldungen analysieren, eine message
sein:
Eine Definition einer abstrakten Nachricht, die aus mehreren Teilen bestehen kann, wobei jeder Teil von einem anderen Typ sein kann.
Hier lautet zum Beispiel die Eingangsmeldung des vorherigen Vorgangs:
<wsdl:message name="DictionaryListSoapIn">
<wsdl:part name="parameters" element="tns:DictionaryList"/>
</wsdl:message>
Um den Inhalt der Nachricht zu verstehen, sehen Sie sich dann die types
:
Ein Container für abstrakte Typdefinitionen, die mit XML Schema definiert werden
Hier ist die DictionaryList
Element ist als leerer compleType definiert:
<s:element name="DictionaryList">
<s:complexType/>
</s:element>
Wie ich bereits sagte, ist dies eine sehr vereinfachte Antwort, da WSDL nicht in vier Absätzen zusammengefasst werden kann und, um ehrlich zu sein, ist das, was Sie vorhaben, wirklich keine triviale Aufgabe. Lassen Sie es mich anders ausdrücken: es wird Blut fließen! Auch wenn diese wenigen Zeilen Ihnen (ein wenig) helfen können, würde ich ein solches Projekt auf keinen Fall von Grund auf neu beginnen, sondern lieber eine bestehende Bibliothek oder ein Tool (wie Xydra oder Eclipse XML-Formular-Generator oder ...), die es erlauben würden, das Rad nicht neu zu erfinden.
Übrigens habe ich bemerkt, dass Sie sich für Axis entschieden haben und die Java-Klassen nicht generieren wollen, aber ich würde Ihnen wärmstens empfehlen no Axis trotzdem verwenden. Eigentlich würde ich JAX-WS RI verwenden, das in Java 6 enthalten ist und eine viel einfachere API darstellt. Nur für den Fall, um die Java-Klassen zu generieren, führen Sie einfach aus:
$ mkdir generated
$ wsimport -d generated http://services.aonaware.com/DictService/DictService.asmx?WSDL