Link do WSDLa z nagrania:

http://www.dneonline.com/calculator.asmx?WSDL

Link do strony z opisem tego WSDLa:

http://www.dneonline.com/calculator.asmx

 

SOAP to protokół wykorzystujący XML do kodowania. Jak to wygląda w praktyce?! Jesteśmy w księgarni i pytamy o cenę książki. Ekspedient sprawdza „pyta” w bazie centralnej o cenę, podając tytuł, autora i ISBN .

 

<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <m:GetBookPrice xmlns:m="http://namespaces.my-example-book-info.com">
      <ISBN>978-0451524935</ISBN>
      <Title>1984</Title>
      <NumPages>328</NumPages>
    </m:GetBookPrice>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope> 

W odpowiedzi otrzymuje:

 

<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <m:GetBookPriceResponse xmlns:m="http://namespaces.my-example-book-info.com">
      <CurrentPrice>8.99</CurrentPrice>
      <Currency>USD</Currency>
    </m:GetBookPriceResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Natomiast WSDL opisuje tę operację, tzn. jest  w nim informacja czego oczekiwać (tytuł, autor etc..) oraz co ma odpowiedzieć (cena). Oczywiście jest tam sporo więcej informacji, np.: jakie operacje są dozwolone, ale to nie temat tej lekcji.

Poniżej WSDL do powyższego przykładu.

<wsdl:types>

  <!-- all type declarations are in a chunk of xsd -->
  <xsd:schema targetNamespace="http://namespaces.my-example-book-info.com"
    xmlns:xsd="http://www.w3.org/1999/XMLSchema">

    <xsd:element name="GetBookPrice">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element name="ISBN" type="string"/>
          <xsd:element name="Title" type="string"/>
          <xsd:element name="NumPages" type="integer"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>

    <xsd:element name="GetBookPriceResponse">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element name="CurrentPrice" type="decimal" />
          <xsd:element name="Currency" type="string" />
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>

  </xsd:schema>
</wsdl:types>

s

Zwróć uwagę na tagi w XMLowe zawsze mamy tag od zapytania „request” 

GetBookPrice

i odpowiedzi „respons”

GetBookPriceResponse

To daje nam pogląd, na to, co będziemy sprawdzać.