- WSDL ย่อมาจากวิซเดิล
- WSDL ใช้เพื่ออธิบายการบริการเว็บ
- WSDL ถูกเขียนในรูปแบบ XML
- WSDL เป็นข้อเสนอแนะจาก W3C 26 มิถุนายน 2007
เอกสาร WSDL
เอกสาร WSDL อธิบายบริการเว็บ มันจะระบุตำแหน่งของการให้บริการและวิธีการของการให้บริการโดยใช้องค์ประกอบที่สำคัญเหล่านี้:
ธาตุ | ลักษณะ |
---|---|
<types> | กำหนด (XML Schema) ประเภทข้อมูลที่ใช้บริการเว็บ |
<message> | กำหนดองค์ประกอบข้อมูลสำหรับการดำเนินงานในแต่ละ |
<portType> | อธิบายถึงการดำเนินงานที่สามารถดำเนินการและข้อความที่เกี่ยวข้องกับการ |
<binding> | กำหนดโปรโตคอลและการจัดรูปแบบข้อมูลสำหรับแต่ละชนิดของพอร์ต |
โครงสร้างหลักของเอกสาร WSDL มีลักษณะเช่นนี้
<definitions>
<types>
data type definitions........
</types>
<message>
definition of the data being communicated....
</message>
<portType>
set of operations......
</portType>
<binding>
protocol and data format specification....
</binding>
</definitions>
ตัวอย่าง WSDL
นี่คือส่วนที่เรียบง่ายของเอกสาร WSDL A:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
ในตัวอย่างนี้ <portType> องค์ประกอบที่กำหนด "glossaryTerms" เป็นชื่อหนึ่งของ port และ "getTerm" เป็นชื่อของ operation
"getTerm" การดำเนินงานที่มี input message เรียกว่า "getTermRequest" และ output message ที่เรียกว่า "getTermResponse"
<message> องค์ประกอบกำหนด parts ของแต่ละข้อความและชนิดของข้อมูลที่เกี่ยวข้อง
<portType> ธาตุ
<portType> องค์ประกอบที่กำหนด a web service การ operations ที่สามารถดำเนินการและ messages ที่มีส่วนร่วม
ประเภทที่ตอบสนองการร้องขอเป็นชนิดที่พบมากที่สุดในการดำเนินงาน แต่ WSDL กำหนดสี่ประเภท:
ชนิด | คำนิยาม |
---|---|
One-way | การดำเนินการสามารถรับข้อความ แต่จะไม่กลับมาตอบสนอง |
Request-response | การดำเนินการสามารถได้รับการร้องขอและจะกลับมาตอบสนอง |
Solicit-response | การดำเนินการสามารถส่งคำขอและจะรอการตอบสนอง |
Notification | การดำเนินการสามารถส่งข้อความไป แต่จะไม่รอการตอบสนอง |
WSDL เดียวการดำเนินงาน
ตัวอย่างการดำเนินการทางเดียว:
<message name="newTermValues">
<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="setTerm">
<input name="newTerm" message="newTermValues"/>
</operation>
</portType >
ในตัวอย่างข้างต้น portType "glossaryTerms" กำหนดดำเนินการทางเดียวที่เรียกว่า "setTerm"
"setTerm" การดำเนินการช่วยให้การป้อนข้อความแง่คำศัพท์ใหม่โดยใช้ "newTermValues" ข้อความที่มีการป้อนพารามิเตอร์ "term" และ "value" อย่างไรก็ตามยังไม่มีการส่งออกจะถูกกำหนดสำหรับการดำเนินงาน
WSDL ตอบสนองการร้องขอการดำเนินงาน
การร้องขอการตอบสนองเช่นการดำเนินงาน:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
ในตัวอย่างข้างต้น portType "glossaryTerms" กำหนดดำเนินการตอบสนองการร้องขอที่เรียกว่า "getTerm"
"getTerm" การดำเนินการต้องมีข้อความที่ใส่เรียกว่า "getTermRequest" กับพารามิเตอร์ที่เรียกว่า "term" และจะกลับข้อความขาออกที่เรียกว่า "getTermResponse" กับพารามิเตอร์ที่เรียกว่า "value"
WSDL ผูกพันกับสบู่
ผูก WSDL กำหนดรูปแบบข้อความและโปรโตคอลรายละเอียดของบริการเว็บ
การร้องขอการตอบสนองเช่นการดำเนินงาน:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
<binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation
soapAction="http://example.com/getTerm"/>
<input><soap:body use="literal"/></input>
<output><soap:body use="literal"/></output>
</operation>
</binding>
binding องค์ประกอบมีสองคุณลักษณะ - ชื่อและประเภท
name แอตทริบิวต์ (you can use any name you want) กำหนดชื่อของผลผูกพันและ type จุดแอตทริบิวต์กับพอร์ตสำหรับผูกพันในกรณีนี้ "glossaryTerms" พอร์ต
soap:binding องค์ประกอบมีสองคุณลักษณะ - สไตล์และการขนส่ง
style แอตทริบิวต์สามารถ "rpc" หรือ "document" ในกรณีนี้เราใช้เอกสาร transport แอตทริบิวต์กำหนดโปรโตคอล SOAP ใช้ ในกรณีนี้เราใช้ HTTP
operation องค์ประกอบที่กำหนดดำเนินการแต่ละที่ exposes portType
สำหรับการดำเนินงานในแต่ละการกระทำ SOAP ที่เกี่ยวข้องจะต้องมีการกำหนดไว้ นอกจากนี้คุณยังจะต้องระบุว่าเข้าและส่งออกมีการเข้ารหัส ในกรณีนี้เราใช้ "literal"