Webszolgáltatás-leíró nyelv
|
|
Ezt a szócikket egy, a témában jártas személynek vagy szakértőnek át kellene olvasnia, ellenőriznie a szövegét, tartalmát – részletek a cikk vitalapján. |
| Web Services Description Language | |
| Fájlkiterjesztés | .wsdl |
| MIME-típus | application/wsdl+xml |
| Konténerformátuma ennek | XML |
| Standard | 2.0-s ajánlás |
A Webszolgáltatás leíró nyelv (Web Services Description Language, WSDL) webszolgáltatások leírására szolgáló XML formátum. Az 1.1-es verziót a World Wide Web Consortium (W3C) nem hagyta jóvá, viszont dolgozik a 2.0-s verzión, ami egy ajánlás (hivatalos szabvány) lesz, és így jóváhagyja a W3C. Röviden WSDL.
A WSDL a webszolgáltatás nyilvános felületét írja le. Ez egy XML-alapú szolgáltatás-leírás a webszolgáltatással történő kommunikációról, mégpedig a protokoll kötésekről és az üzenet formátumokról, amelyek a könyvtárában szereplő webszolgáltatások használatához szükségesek. A támogatott műveletek és üzenetek absztrakt módon vannak definiálva, és aztán kötik a tényleges hálózati protokollhoz és üzenet formátumhoz.
A WSDL-t gyakran használják SOAP-pal és XML Schema-val másnéven XSD-vel egyetemben, hogy webszolgáltatást nyújtsanak az interneten. Egy webszolgáltatáshoz kapcsolódó kliens (program) el tudja olvasni a WSDL-t, hogy megállapítsa a rendelkezésre álló funkciókat a szerveren. Bármely felhasznált speciális adattípus a WSDL fájlba van beágyazva, XML Schema formátumban. A kliens ezután használhatja a SOAP-ot a WSDL-ben felsorolt funkciók használatához.
Példa kód [szerkesztés]
<?xml version="1.0" encoding="UTF-8"?> <description xmlns="http://www.w3.org/ns/wsdl" xmlns:tns="http://www.tmsws.com/wsdl20sample" xmlns:whttp="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsoap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://www.tmsws.com/wsdl20sample"> <!-- Abstract type --> <types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.tmsws.com/wsdl20sample" targetNamespace="http://www.example.com/wsdl20sample"> <xs:element name="request"> <xs:complexType> <xs:sequence> <xs:element name="header" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="body" type="xs:anyType" minOccurs="0"/> </xs:sequence> <xs:attribute name="method" type="xs:string" use="required"/> <xs:attribute name="uri" type="xs:anyURI" use="required"/> </xs:complexType> </xs:element> <xs:element name="response"> <xs:complexType> <xs:sequence> <xs:element name="header" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="name" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="body" type="xs:anyType" minOccurs="0"/> </xs:sequence> <xs:attribute name="status-code" type="xs:anySimpleType" use="required"/> <xs:attribute name="response-phrase" use="required"/> </xs:complexType> </xs:element> </xs:schema> </types> <!-- Abstract interfaces --> <interface name="RESTfulInterface"> <fault name="ClientError" element="tns:response"/> <fault name="ServerError" element="tns:response"/> <fault name="Redirection" element="tns:response"/> <operation name="Get" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="In" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> <operation name="Post" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="In" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> <operation name="Put" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="In" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> <operation name="Delete" pattern="http://www.w3.org/ns/wsdl/in-out"> <input messageLabel="In" element="tns:request"/> <output messageLabel="Out" element="tns:response"/> </operation> </interface> <!-- Concrete Binding Over HTTP --> <binding name="RESTfulInterfaceHttpBinding" interface="tns:RESTfulInterface" type="http://www.w3.org/ns/wsdl/http"> <operation ref="tns:Get" whttp:method="GET"/> <operation ref="tns:Post" whttp:method="POST" whttp:inputSerialization="application/x-www-form-urlencoded"/> <operation ref="tns:Put" whttp:method="PUT" whttp:inputSerialization="application/x-www-form-urlencoded"/> <operation ref="tns:Delete" whttp:method="DELETE"/> </binding> <!-- Concrete Binding with SOAP--> <binding name="RESTfulInterfaceSoapBinding" interface="tns:RESTfulInterface" type="http://www.w3.org/ns/wsdl/soap" wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP/" wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response"> <operation ref="tns:Get" /> <operation ref="tns:Post" /> <operation ref="tns:Put" /> <operation ref="tns:Delete" /> </binding> <!-- Web Service offering endpoints for both bindings--> <service name="RESTfulService" interface="tns:RESTfulInterface"> <endpoint name="RESTfulServiceHttpEndpoint" binding="tns:RESTfulInterfaceHttpBinding" address="http://www.example.com/rest/"/> <endpoint name="RESTfulServiceSoapEndpoint" binding="tns:RESTfulInterfaceSoapBinding" address="http://www.example.com/soap/"/> </service> </description>
Külső hivatkozások [szerkesztés]
- WSDL 1.0 Specifikáció
- WSDL 1.1 Specifikáció
- WSDL 2.0 Specifikáció 0-s rész: Primer (Latest Version)
- WSDL 2.0 Specifikáció 1-es rész: Core (Latest Version)
- WSDL 2.0 Specifikáció 2-es rész: Adjuncts (Latest Version)
- Web Services Description Working Group
- XML protocol activity
- JSR-110: Java API-k WSDL-hez
- JSR 172: Java ME Web Services Specification
- Online WSDL validátor
- W3Schools WSDL 1.1 tutorial
- WSDL programmatic visualization with Linguine Maps
- SSDL - The SOAP Service Description Language
- WSDL Java Bindings for XMLBeans and JAXB.
- W3C Working Draft
- WSDL 2.0 szabvány

