美文网首页
WSDL(Travelport Air)

WSDL(Travelport Air)

作者: Kuco_Shen | 来源:发表于2018-07-11 17:28 被阅读0次

    WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。

    什么是 WSDL?

    • WSDL 指网络服务描述语言
    • WSDL 使用 XML 编写
    • WSDL 是一种 XML 文档
    • WSDL 用于描述网络服务
    • WSDL 也可用于定位网络服务
    • WSDL 还不是 W3C 标准

    WSDL文档结构

    • <import>

    import元素使得可以在当前的WSDL文档中使用其他WSDL文档中指定的命名空间中的定义元素。

    • <service>

    元素包含一个或者多个port元素,其中每个port元素表示一个不同的Web服务。

    • <port>

    定义为绑定和网络地址组合的单个端点。

    • <portType>

    最重要的 WSDL 元素。它可描述一个 web service、可被执行的操作,以及相关的消息。可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。

    • <message>

    通信数据的抽象类型化定义,它由一个或者多个 part 组成。

    • <types>

    web service 数据类型定义的容器,它使用某种类型系统(如 XSD)

    • <binding>

    web service 使用的通信协议,将一个抽象portType映射到一组具体协议(SOAO和HTTP)、消息传递样式、编码样式。

    • <part>

    消息参数,指定引用types中定义的标签片段

    • <partType>

    特定端口类型的具体协议和数据格式规范,它由一个或者多个 Operation组成。

    • <Operation>

    对服务所支持的操作进行抽象描述。

    • Soap

    soap是一种传输协议,该协议使用的就是http协议。只不过HTTP传输的内容是HTML文本,而SOAP协议传输的是SOAP的数据。

    • <Soap:binding>

    指出绑定是针对soap协议格式的。Transport指定了传输协议。Style指定通信风格。有“rpc”和“document”两种风格。

    • <Soap:operation>

    为SOAP服务操作提供消息。通常可以指明此操作的soapActionHTTP头。

    • <soap:header>

    指出消息如何在soap header元素中表现

    • <Soap:body>

    指出消息如何在soap body元素中表现。


    Low Fare Search Req

    Air.wsdl:

           <binding name="AirLowFareSearchBinding"
                 type="tns:AirLowFareSearchPortType">
            <soap:binding style="document"
                          transport="http://schemas.xmlsoap.org/soap/http" />
            <operation name="service">
                <soap:operation soapAction="http://localhost:8080/kestrel/AirService"/>
                    <input>
                        <soap:header use="literal" part="sessionContext" message="tns:SessionContext"/>
                        <soap:body use="literal" />
                    </input>
                    <output>
                        <soap:body use="literal" />
                    </output>
                    <fault name="ErrorInfoMsg">
                        <soap:fault name="ErrorInfoMsg" use="literal" />
                    </fault>
            </operation>
          </binding>
    
          <port name="AirLowFareSearchPort"
                  binding="tns:AirLowFareSearchBinding">
                <soap:address
                        location="http://localhost:8080/kestrel/AirService" />
          </port>
    

    如上代码,<binding name="AirLowFareSearchBinding" type="tns:AirLowFareSearchPortType">是将name为AirLowFareSearchPortType的portType映射过来。
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />通信风格为document,传输协议为"http://schemas.xmlsoap.org/soap/http"。
    <operation>...</operation>创建soap协议,定义协议内容。


    AirAbstract.wsdl:

        <message name="AirLowFareSearchReq">
            <part name="parameters" element="ns1:LowFareSearchReq" />
        </message>
        <message name="AirLowFareSearchRsp">
            <part name="result" element="ns1:LowFareSearchRsp" />
        </message>
        <message name="AirFaultMessage">
            <part name="fault" element="common:ErrorInfo" />
        </message>
        <portType name="AirLowFareSearchPortType">
            <operation name="service">
                <input message="tns:AirLowFareSearchReq" />
                <output message="tns:AirLowFareSearchRsp" />
                <fault name="ErrorInfoMsg" message="tns:AirFaultMessage" />
            </operation>
        </portType>
    

    如上代码,定义一个端口为:AirLowFareSearchPortType,在该端口中定义了一个操作"service",操作 "service" 拥有一个名为 "tns:AirLowFareSearchReq" 的输入消息,一个名为 "tns:AirLowFareSearchRsp" 的输出消息,以及一个名为"ErrorInfoMsg"的失败返回消息,其中message属性则是调用上面<message>,<message>下的<part>中的element则是调用对应xsd中的属性。注:若通信风格为rpc,则element需改为type。


    相关文章

      网友评论

          本文标题:WSDL(Travelport Air)

          本文链接:https://www.haomeiwen.com/subject/pozcpftx.html