要开始使用 WSDL 并了解此类文档的结构,您可能应该查看一些文章,例如了解 WSDL或WSDL 教程或您可以在 Google 上找到的任何其他初学者资源。
现在,要以简化的方式回答您的问题,您必须从portType
包含以下内容的元素开始:
一个或多个端点支持的一组抽象操作(通常称为接口);操作由消息交换定义
例如,在您的情况下:
<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>
而且,对于每个操作,您都需要解析输入和输出消息,即message
:
可能由多个部分组成的抽象消息的定义,每个部分可能属于不同的类型。
在这里,例如上一个操作的输入消息是:
<wsdl:message name="DictionaryListSoapIn">
<wsdl:part name="parameters" element="tns:DictionaryList"/>
</wsdl:message>
然后,要了解消息的内容,请查看types
:
使用 XML Schema 定义的抽象类型定义的容器
在这里,DictionaryList
元素被定义为一个空的 compleType:
<s:element name="DictionaryList">
<s:complexType/>
</s:element>
正如我所说,这确实是一个非常简化的答案,因为 WSDL 不能用四段来概括,而且老实说,您要做的事情确实不是一件容易的事。让我换个说法:会有血!因此,即使这几行代码可以帮助您(很少)开始,我也绝对不会从头开始这样的项目,而是使用现有的库或工具(如Xydra或 Eclipse XML Forms Generator或... ) 这将允许不重新发明轮子。
顺便说一句,我注意到您已决定使用 Axis,并且您不想生成 Java 类,但我强烈建议您不要使用 Axis。实际上,我会使用 Java 6 中捆绑的 JAX-WS RI,它是一个更简单的 API。以防万一,要生成 Java 类,只需执行:
$ mkdir generated
$ wsimport -d generated http://services.aonaware.com/DictService/DictService.asmx?WSDL