junhong

          WSDL Info

          A WSDL document defines services as collections of network endpoints, or ports. In WSDL, the abstract definition of endpoints and messages is separated from their concrete network deployment or data format bindings. This allows the reuse of abstract definitions: messages, which are abstract descriptions of the data being exchanged, and port types which are abstract collections of operations. The concrete protocol and data format specifications for a particular port type constitutes a reusable binding. A port is defined by associating a network address with a reusable binding, and a collection of ports define a service. Hence, a WSDL document uses the following elements in the definition of network services:

          Services are defined using six major elements:

          • types, which provides data type definitions used to describe the messages exchanged.
          • message, which represents an abstract definition of the data being transmitted. A message consists of logical parts, each of which is associated with a definition within some type system.
          • portType, which is a set of abstract operations. Each operation refers to an input message and output messages.
          • binding, which specifies concrete protocol and data format specifications for the operations and messages defined by a particular portType.
          • port, which specifies an address for a binding, thus defining a single communication endpoint.
          • service, which is used to aggregate a set of related ports.


          If the values being passed are part1=1, part2=2, part3=3, the request format would be as follows for each port:

          port1: GET, URL="http://example.com/o1/A1B2/3"
          port2: GET, URL="http://example.com/o1?p1=1&p2=2&p3=3
          port3: POST, URL="http://example.com/o1", PAYLOAD="p1=1&p2=2&p3=3"

          For each port, the response is either a GIF or a JPEG image.

          Example 6. GET and FORM POST returning GIF or JPG

          <definitions .... >
          <message name="m1">
          <part name="part1" type="xsd:string"/>
          <part name="part2" type="xsd:int"/>
          <part name="part3" type="xsd:string"/>
          </message>

          <message name="m2">
          <part name="image" type="xsd:binary"/>
          </message>

          <portType name="pt1">
          <operation name="o1">
          <input message="tns:m1"/>
          <output message="tns:m2"/>
          </operation>
          </portType>

          <service name="service1">
          <port name="port1" binding="tns:b1">
          <http:address location="http://example.com/"/>
          </port>
          <port name="port2" binding="tns:b2">
          <http:address location="http://example.com/"/>
          </port>
          <port name="port3" binding="tns:b3">
          <http:address location="http://example.com/"/>
          </port>
          </service>

          <binding name="b1" type="pt1">
          <http:binding verb="GET"/>
          <operation name="o1">
          <http:operation location="o1/A(part1)B(part2)/(part3)"/>
          <input>
          <http:urlReplacement/>
          </input>
          <output>
          <mime:content type="image/gif"/>
          <mime:content type="image/jpeg"/>
          </output>
          </operation>
          </binding>

          <binding name="b2" type="pt1">
          <http:binding verb="GET"/>
          <operation name="o1">
          <http:operation location="o1"/>
          <input>
          <http:urlEncoded/>
          </input>
          <output>
          <mime:content type="image/gif"/>
          <mime:content type="image/jpeg"/>
          </output>
          </operation>
          </binding>

          <binding name="b3" type="pt1">
          <http:binding verb="POST"/>
          <operation name="o1">
          <http:operation location="o1"/>
          <input>
          <mime:content type="application/x-www-form-urlencoded"/>
          </input>
          <output>
          <mime:content type="image/gif"/>
          <mime:content type="image/jpeg"/>
          </output>
          </operation>
          </binding>
          </definitions>

          4.2 How the HTTP GET/POST Binding Extends WSDL

          The HTTP GET/POST Binding extends WSDL with the following extension elements:

          <definitions .... >
          <binding .... >
          <http:binding verb="nmtoken"/>
          <operation .... >
          <http:operation location="uri"/>
          <input .... >
          <-- mime elements -->
          </input>
          <output .... >
          <-- mime elements -->
          </output>
          </operation>
          </binding>

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

          These elements are covered in the subsequent sections.

          4.3 http:address

          The location attribute specifies the base URI for the port. The value of the attribute is combined with the values of the location attribute of the http:operation binding element. See section 4.5 for more details.

          4.4 http:binding

          The http:binding element indicates that this binding uses the HTTP protocol.

          <definitions .... >
          <binding .... >
          <http:binding verb="nmtoken"/>
          </binding>
          </definitions>

          The value of the required verb attribute indicates the HTTP verb. Common values are GET or POST, but others may be used. Note that HTTP verbs are case sensitive.

          posted on 2007-01-28 16:24 junhong 閱讀(347) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 三门峡市| 富源县| 临海市| 镇江市| 安义县| 九江县| 西林县| 乌什县| 沾化县| 望城县| 定结县| 广宗县| 兰西县| 巩义市| 平度市| 耒阳市| 安义县| 海林市| 原平市| 健康| 通渭县| 万盛区| 祁门县| 北川| 壤塘县| 尚志市| 古蔺县| 凤城市| 景洪市| 彰武县| 清新县| 两当县| 秦皇岛市| 镇坪县| 泗阳县| 玉溪市| 西乡县| 股票| 库伦旗| 靖宇县| 大丰市|