close

WSDL

Przejdź do nawigacji Przejdź do wyszukiwania

WSDL , skrót od Web Services Description Language , to format Extensible Markup Language ( XML ) używany do opisywania usług internetowych (WS). Wersja 1.0 była pierwszą rekomendacją W3C , a wersja 1.1 nigdy nie osiągnęła tego statusu. Wersja 2.0 stała się aktualną rekomendacją tego podmiotu.

WSDL opisuje publiczny interfejs usług WWW. Opiera się na XML i opisuje formę komunikacji, czyli wymagania protokołu i formaty wiadomości niezbędne do interakcji z usługami wymienionymi w jego katalogu. Obsługiwane operacje i komunikaty są opisane w skrócie, a następnie powiązane z określonym protokołem sieciowym i formatem komunikatów.

Dlatego WSDL jest często używany w połączeniu z SOAP i XML Schema . Program klienta, który łączy się z usługą WWW, może odczytać plik WSDL, aby określić, jakie funkcje są dostępne na serwerze. Specjalne typy danych zawarte są w pliku WSDL w postaci schematu XML. Klient może użyć SOAP do wywołania jednej z funkcji wymienionych w WSDL.

WSDL pozwala nam mieć opis usługi sieciowej. Określa abstrakcyjny interfejs, za pośrednictwem którego klient może uzyskać dostęp do usługi, oraz szczegóły dotyczące sposobu jej użycia.

Struktura WSDL

Struktura WSDL składa się z następujących elementów:

Typy danych

<typy>: Ta sekcja definiuje typy danych używane w komunikatach. Używane są typy zdefiniowane w specyfikacji schematu XML.

Wiadomości

<wiadomość>: Tutaj definiujemy elementy wiadomości. Każda wiadomość może składać się z szeregu logicznych części. Części mogą być dowolnego typu zdefiniowanego w poprzedniej sekcji.

Typy portów

<portType>: W tej sekcji definiujemy dozwolone operacje i komunikaty wymieniane w Serwisie.

Wiązania

<binding>: Określamy używane protokoły komunikacyjne.

Usługi

<usługa>: Zestaw portów i ich adres. Ta końcowa część odnosi się do tego, co zostało przedstawione w poprzednich sekcjach.

Dzięki tym elementom nie wiemy, co robi usługa, ale mamy informacje niezbędne do interakcji z nią (funkcje, komunikaty wejścia/wyjścia, protokoły...)

Przykłady

Poniżej znajduje się przykład dokumentu WSDL i jego różnych sekcji. W tym konkretnym przykładzie zaimplementowana jest usługa, która pokazuje jej aktualną wartość rynkową na podstawie nazwy wartości giełdowej.

 <definitions  name= "StockQuote"  
          targetNamespace= "http://example.com/stockquote.wsdl" 
          xmlns:tns= "http://example.com/stockquote.wsdl" 
          xmlns:xsd1= "http://example. com/stockquote.xsd" 
          xmlns:soap= "http://schemas.xmlsoap.org/wsdl/soap/" 
          xmlns= "http://schemas.xmlsoap.org/wsdl/" >
 
    <types> 
       <schema  targetNamespace= "http://example.com/stockquote.xsd" 
              xmlns= "http://www.w3.org/2000/10/XMLSchema" > 
           <element  name= "TradePriceRequest" > 
              <complexType > 
                  <all> 
                      <element  name= "tickerSymbol"  type= "string" /> 
                  </all> 
              </complexType> 
           </element> 
           <element  name= "TradePrice" > 
              <complexType> 
                  <all> 
                      <element  name= "price "  type= "float" /> 
                  </all> 
              </complexType> 
           </element> 
       </schema> 
    </types>
 
    <message  name = "GetLastTradePriceInput" > 
        <part  name = "body"  element = "xsd1:TradePriceRequest" /> 
    </message>
 
    <message  name = "GetLastTradePriceOutput" > 
        <part  name = "body"  element = "xsd1:TradePrice" /> 
    </message>
 
    <portType  name= "StockQuotePortType" > 
        <  nazwa operacji= "GetLastTradePrice" > 
           <input  message= "tns:GetLastTradePriceInput" /> 
           <output  message= "tns:GetLastTradePriceOutput" /> 
        </operacja> 
    </portType>
 
    <  nazwa powiązania = "StockQuoteSoapBinding"  type = "tns:StockQuotePortType" > 
        <soap:binding  style = "dokument"  transport = "http://schemas.xmlsoap.org/soap/http" /> 
        <  nazwa operacji = "GetLastTradePrice" > 
           <soap:operacja  soapAction= "http://example.com/GetLastTradePrice" /> 
           <input> 
               <soap:body  use= "literal" /> 
           </input> 
           <output> 
               <soap:body  use= "literal" /> 
           </output> 
        </operacja> 
    </binding>
 
    <service  name= „StockQuoteService” > 
        <documentation> Moja pierwsza usługa </documentation> 
        <port  name= „StockQuotePort”  binding= „tns:StockQuoteSoapBinding” > 
           <soap:address  location= „http://example.com/stockquote” /> 
        </port> 
    </usługa>
 
 </definicje>

Zobacz także

Linki zewnętrzne