第五十三章 生成的 WSDL 的详细信息 - service
第五十三章 生成的 WSDL 的详细信息 - service
<service>
检查 WSDL 时,从尾到头阅读它很有用。
WSDL
中的最后一个元素是 <service>
元素,它定义 Web
服务。对于本主题前面显示的示例 Web
服务,此元素如下:
<service name="MyServiceName">
<port name="MyServiceNameSoap" binding="s0:MyServiceNameSoap">
<soap:address location="https://devsys:52773/csp/mysamples/WSDLSamples.BasicWS.cls"/>
</port>
</service>
该元素指定如下:
-
Web
服务的SERVICENAME
参数用作<service>
元素的name
属性。请参阅指定Web
服务的服务名称和命名空间。此参数还会影响
<port>
元素的名称和绑定属性;没有提供单独的控制。 -
binding
属性引用s0
命名空间中的绑定,该命名空间在命名空间声明中列出。此命名空间由Web
服务的NAMESPACE
参数指定。 -
Web
服务类的URL
控制<soap:address>
元素的位置属性。
<binding>
在<service>
元素之前,WSDL
包含 <binding>
元素,每个元素定义由特定 <portType>
元素定义的操作和消息的消息格式和协议详细信息。
一般来说,WSDL
可以包含多个 <binding>
元素,但 IRIS Web
服务的 WSDL
只包含一个。
对于本主题前面显示的示例 Web 服务,此元素如下:
<binding name="MyServiceNameSoap" type="s0:MyServiceNameSoap">
<soap:binding transport="https://schemas.xmlsoap.org/soap/http"
style="document"/>
<operation name="Add">
<soap:operation soapAction="https://www.mynamespace.org/WSDLSamples.BasicWS.Add"
style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
该元素指定如下:
-
<binding>
元素的name
属性自动与<service>
元素保持一致(并且改变没有任何意义)。
<binding name="MyServiceNameSoap" ...
-
<binding>
元素的type
属性引用s0
命名空间中的<portType>
元素,该元素在命名空间声明中列出。此命名空间由Web
服务的NAMESPACE
参数指定。 - 每个
<operation>
元素的名称属性均基于Web
方法的名称(并且更改没有意义)。
<operation name="Add"> ...
- 如果为
Web
方法指定SoapAction
关键字,则该值将用于操作的soapAction
属性。例如:
...xml
<operation name="Add">
<soap:operation soapAction="mysoapaction" style="document"/>
...
-
如果方法的返回类型定义为
%SOAP.OneWay
,则将影响此元素,如单向Web
方法的WSDL
差异中所述。 -
如果
Web
服务的SOAPBINARY
参数为1
,则会影响此元素,如IRIS
二进制SOAP
格式的WSDL
差异中所述。 -
如果
Web
服务的SOAPSESSION
参数为1
,则会影响此元素,如IRIS SOAP
会话的WSDL
差异中所述。SoapBindingStyle
类关键字、`` 方法关键字和 SoapBindingStyle 查询关键字会影响<binding>
元素,如类定义参考中所述。这些关键字可以具有值document
和rpc
。 -
SoapBodyUse
类关键字、SoapBodyUse
方法关键字和SoapBodyUse
查询关键字会影响<binding>
元素,如类定义参考中所述。这些关键字可以具有值literal
和coded
。
注意:如果 Web
服务具有已编译的策略配置类,则 <binding>
部分还包含 <wsp:Policy>
. 形式的元素。本文档不讨论策略如何影响 WSDL
,因为效果由 WS-SecurityPolicy
和其他规范决定。