Web Services WSDL中的和有什么区别< binding>< portType>?

lawou6xi  于 2023-10-24  发布在  其他
关注(0)|答案(5)|浏览(189)

<binding><portType>似乎都定义了一个操作和它的消息。我不太明白,为什么它们都是必要的?

au9on6nz

au9on6nz1#

portType(类似于Java接口)

  • PortType是WSDL的抽象部分。
  • 由一个或多个端点支持的抽象操作集。
    绑定
  • 绑定是WSDL的一个具体部分。
  • 描述如何通过为操作和消息指定具体的协议和数据格式规范来调用操作。
  1. bindings are three types
    1.SOAP绑定:
    SOAP绑定允许document or rpc styleencodingliteral绑定。Encoding指示数据值应如何以XML格式编码(这些规则指定如何将“something”编码/序列化为XML,然后从XML解码/反序列化为“something”)。Literal表示数据根据模式序列化(这只是普通的XML数据)。使用传输类型http,jms,smtp.
    1.HTTP GET & POST绑定:
    WSDL包含HTTP 1.1的GET和POST动词的绑定,以描述Web浏览器和网站之间的交互。
    1.**MIME绑定:**WSDL包括一种将抽象类型绑定到某种MIME格式的具体消息的方法。

在WSDL 2.0中:

  • 端口类型重命名为接口
  • 端口重命名为端点
  • 删除消息结构

Source
有用的链接

mbzjlibv

mbzjlibv2#

接口(wsdl:portType)

WSDL portType元素定义了一组操作(有时称为接口)。
操作元素包含输入和输出元素的组合。当您有输出元素时,可能会有故障元素。这些元素的顺序定义了消息交换模式(MEP)(单向,请求-响应等)

wsdl:binding

WSDL绑定元素描述了在给定协议中使用特定portType的具体细节。

o2rvlv0m

o2rvlv0m3#

PortType定义了Web服务的抽象接口
从概念上讲,它类似于Java接口,因为它定义了一个抽象类型和相关方法。
在WSDL中,端口类型由绑定和服务元素实现,这些元素指示Web服务实现所使用的协议、编码方案等
也就是说,绑定指定了具体的实现细节,并将portTypeMap到一组协议(HTTP和SOAP)消息样式(Document/RPC)和编码(literal)
区分清楚了吗?

hrirmatl

hrirmatl4#

  • portType*

  • 单个Web服务 * 可以支持 * 数量的不同协议 。数据的结构取决于您用来调用Web服务的协议。因此,您需要一种方法来从操作Map到可以访问它们的 * 端点*。portType 元素负责此Map。
    您可以为此Web服务可用的每个协议放置一个portType定义。例如,您可以为使用 * SOAP、HTTP-POST和HTTP-GET* 设置单独的portType定义。操作名称是Web服务中可用的方法。

  • 绑定 *

你可以定义终端用户如何绑定到一个可以获得操作的端口。你可以通过使用元素来实现。

pbwdgjma

pbwdgjma5#

wsdl:portType与wsdl:operation一起使用,即我们处于消息和xml的领域
但是wsdl:binding与soap:binding和soap:operation一起使用,也就是说,我们处于编码、地址、头和rpc的领域。
例如:http://www.w3.org/TR/wsdl#_soap-b

<binding name="StockQuoteSoap" type="tns:StockQuotePortType">
        <soap:binding style="document" transport="http://example.com/smtp"/>
        <operation name="SubscribeToQuotes">
           <input message="tns:SubscribeToQuotes">
               <soap:body parts="body" use="literal"/>
               <soap:header message="tns:SubscribeToQuotes" part="subscribeheader" use="literal"/>

.....

<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="GetTradePrice">
       <soap:operation soapAction="http://example.com/GetTradePrice"/>
       <input>
           <soap:body use="encoded" namespace="http://example.com/stockquote"
                      encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

...
从第3.2段中,所有关于较低级别通信的细节:
SOAP绑定使用以下扩展元素扩展WSDL:

<definitions .... >
    <binding .... >
        <soap:binding style="rpc|document" transport="uri">
        <operation .... >
           <soap:operation soapAction="uri"? style="rpc|document"?>?
           <input>
               <soap:body parts="nmtokens"? use="literal|encoded"
                          encodingStyle="uri-list"? namespace="uri"?>
               <soap:header message="qname" part="nmtoken" use="literal|encoded"
                            encodingStyle="uri-list"? namespace="uri"?>*
                 <soap:headerfault message="qname" part="nmtoken" use="literal|encoded"
                                   encodingStyle="uri-list"? namespace="uri"?/>*
               <soap:header>                                
           </input>
           <output>
               <soap:body parts="nmtokens"? use="literal|encoded"
                          encodingStyle="uri-list"? namespace="uri"?>
               <soap:header message="qname" part="nmtoken" use="literal|encoded"
                            encodingStyle="uri-list"? namespace="uri"?>*
                 <soap:headerfault message="qname" part="nmtoken" use="literal|encoded"
                                   encodingStyle="uri-list"? namespace="uri"?/>*
               <soap:header>                                
           </output>
           <fault>*
               <soap:fault name="nmtoken" use="literal|encoded"
                           encodingStyle="uri-list"? namespace="uri"?>
            </fault>
        </operation>
    </binding>

    <port .... >
        <soap:address location="uri"/> 
    </port>
</definitions>

相关问题