本文共 5220 字,大约阅读时间需要 17 分钟。
Messages
包括函数参数(输入与输出分开)或文档描述PortTypes
引用消息部分中消息定义来描述函数签名(操作名、输入参数、输出参数)2 具体定义
Bindings PortTypes部分的每一操作在此绑定实现Services
确定每一绑定的端口地址 下面的图中,箭头连接符代表文档不同栏之间的关系。点和箭头代表了引用或使用关系。双箭头代表"修改"关系。3-D的箭头代表了包含关系。这样,各Messages栏使用Types栏的定义,PortTypes栏使用Messages栏的定义;Bindings栏引用了PortTypes栏,Services栏引用Bindings栏,PortTypes和Bindings栏包含了operation元素,而Services栏包含了port元素。PortTypes栏里的operation元素由Bindings栏里的operation元素进一步修改或描述。 首先看看一段简单的JAVA代码,我们用它作为WSDL的服务实现代码:
定义好操作(或方法)以后,现在需要指定将向它们发送和从它们返回的参数。在 WSDL 术语中,所有参数称为“消息”。认为您是在递送消息而结果得到返回的消息是有用的。方法调用是这样一种操作:它准备返回“消息”来响应进入的消息。
<message>元素包含了Messages栏。如果我们把操作看作函数,<message>元素定义了那个函数的参数。<message>元素中的每个<part>子元素都和某个参数相符。输入参数在<message>元素中定义,与输出参数相隔离--输出参数有自己的<message>元素。兼作输入、输出的参数在输入输出的<message>元素中有它们相应的<part>元素。输出<message>元素以"Response"结尾,就像以前所用的"fooResponse"。每个<part>元素都有名字和类型属性,就像函数的参数有参数名和参数类型。 - < wsdl:message name ="echoResponse" > //返回的消息 < wsdl:part name ="echoReturn" type ="xsd:string" /> </ wsdl:message > - < wsdl:message name ="echoRequest" > //请求的消息 < wsdl:part name ="u" type ="xsd:string" /> </ wsdl:message > <definitions> 元素包含一个或多个<portType>
元素,实际上,每个元素都是您希望表示的一系列 operation
。或者,您也可以将单个 portType 元素看作是将各种方法组成类的一个逻辑分组。例如,如果您的供应链管理解决方案需要在客户和供应商之间进行交互,您最可能做的是分别定义与他们交互的功能性;也就是说,您将为用户和供应商各定义一个 portType。应该将每个 portType 称为 服务,因此整个 WSDL 文件将成为一个服务集合。 - < wsdl:portType name ="Test2" > //一个portType可以看成一个类 - < wsdl:operation name ="echo" parameterOrder ="u" > //一个operation就是一个方法 < wsdl:input name ="echoRequest" message ="impl:echoRequest" /> //输入消息 < wsdl:output name ="echoResponse" message ="impl:echoResponse" /> //返回消息 </ wsdl:operation > </ wsdl:portTyp> binding
)”。 当前,最流行的绑定( binding
)技术是使用简单对象访问协议(SOAP)。WSDL 将指定能够访问 Web 服务实际实现的 SOAP 服务器,并且从那时起 SOAP 的整个任务就是将用户从 WSDL 文件带到它的实现。
<binding>
元素包括到 <definitions>
元素内。这个 binding 元素应该有 name
和 type
属性。 name
将标识这个绑定而 type
将标识您希望与这个绑定相关联的 portType(一组操作)。 < wsdl:binding name ="Test2SoapBinding" type ="impl:Test2" > <wsdlsoap:binding/> 元素。该元素的用途是声明将把 SOAP 作为绑定和传输服务使用 <wsdlsoap:binding>
元素有两个属性:style 和 transport。style 是一个可选属性,它描述该绑定内操作的性质。transport 属性指定 HTTP 作为该绑定将使用的级别较低的传输服务。SOAP 客户机将从 WSDL 文件中读取 SOAP 结构并与另一端的 SOAP 服务器协调.
<operation>
元素,分别表示具体的操作。每个 <operation>
元素提供各自操作的绑定细节。因此,我提供了另一个 extensibility
元素,即 <wsdlsoap:operation/>
(仍然是一个空元素,与它发生的那个操作相关)。该 <soap:operation/>
元素有一个 soapAction 属性,SOAP 客户机将使用该属性创建 SOAP 请求。 //下面将WSDL描述与具体实现进行绑定,这里采用SOAP方式- <wsdl:operation name="echo"> <wsdlsoap:operation soapAction="" /> - <wsdl:input name="echoRequest"> <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" /> </wsdl:input>- <wsdl:output name="echoResponse"> <wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost/axis/Test2.jws" /> </wsdl:output> </wsdl:operation> </wsdl:binding>//下面将发布的服务与前面的SOAP绑定进行关联- <wsdl:service name="Test2Service">- <wsdl:port name="Test2" binding="impl:Test2SoapBinding"> <wsdlsoap:address location="http://localhost/axis/Test2.jws" /> </wsdl:port> </wsdl:service> <schema>元素的以下这行声明了默认的namespace。Schema中所有有效的名字都属于这个namespace。
转载地址:http://wwbgx.baihongyu.com/