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)  編輯  收藏


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 临沧市| 腾冲县| 呼图壁县| 嘉兴市| 历史| 绥德县| 旅游| 永济市| 平昌县| 喀喇沁旗| 建宁县| 海安县| 克东县| 乾安县| 奈曼旗| 大洼县| 南投县| 大安市| 永嘉县| 吴忠市| 泾阳县| 道孚县| 安远县| 伊通| 峨眉山市| 通州市| 贵港市| 友谊县| 镇康县| 稷山县| 开封县| 略阳县| 五常市| 福建省| 绥阳县| 博白县| 民乐县| 都安| 石嘴山市| 安国市| 扎兰屯市|