ความแตกต่างระหว่าง XSD และ WSDL คืออะไร


178

ความแตกต่างระหว่างXML SchemaและWSDLคืออะไร?

ที่ผมสังเกตเห็นความแตกต่างก็คือว่าWSDLมีXSDและWSDLเราสามารถประกาศการดำเนินงาน XSDแต่ไม่ได้อยู่ใน ถูกต้องไหม

คำตอบ:


177

XSD กำหนดสคีมาซึ่งเป็นคำจำกัดความของวิธีการที่โครงสร้างเอกสาร XML คุณสามารถใช้มันเพื่อตรวจสอบว่าเอกสาร XML ที่กำหนดนั้นถูกต้องและเป็นไปตามกฎที่คุณวางไว้ในสคีมา

WSDL เป็นเอกสาร XML ที่อธิบายบริการเว็บ มันแสดงให้เห็นว่าการดำเนินงานที่มีอยู่และวิธีการที่โครงสร้างข้อมูลที่จะส่งไปยังการดำเนินงานเหล่านั้น

เอกสาร WSDL มี XSD ที่เชื่อมโยงซึ่งแสดงสิ่งที่ถูกต้องที่จะใส่ในเอกสาร WSDL


15
คำตอบเปาโลนั้นถูกต้อง เพียงเพิ่มมัน เนื่องจาก WSDL เป็น XML จริงและอาจมีหรือไม่มี XSD เพื่อตรวจสอบความถูกต้องของโครงสร้าง XSD ที่เกี่ยวข้องอาจเป็นไฟล์แยกและนำเข้าใน WSDL หรือ XSD แบบเต็มสามารถฝังอยู่ในไฟล์ WSDL ได้โดยใช้แท็ก <WSDL: ประเภท> สำหรับรายละเอียดเพิ่มเติม ibm.com/developerworks/webservices/library/ws-tip-imports
supernova

หากเป็นสองสิ่งที่แยกจากกันทำไมเมื่อฉันสร้างบริการเว็บเช่นใน Netbeans ฉันจะได้รับ?xsd=1URL โดยอัตโนมัติ
CodyBugstein

212

WSDL (Web Services Description Language) อธิบายการบริการและการดำเนินงานของคุณ - บริการใดที่เรียกว่าวิธีการใดที่ให้บริการวิธีการเหล่านี้มีอยู่ในพารามิเตอร์และค่าตอบแทนชนิดใด

มันเป็นคำอธิบายเกี่ยวกับพฤติกรรมของบริการ - มันเป็นฟังก์ชั่น

XSD (Xml Schema Definition) อธิบายโครงสร้างแบบคงที่ของชนิดข้อมูลที่ซับซ้อนซึ่งแลกเปลี่ยนโดยวิธีการบริการเหล่านั้น มันอธิบายประเภทเขตข้อมูลของพวกเขาข้อ จำกัด ใด ๆ ในเขตข้อมูลเหล่านั้น (เช่นความยาวสูงสุดหรือรูปแบบ regex) และอื่น ๆ

มันเป็นคำอธิบายของประเภทข้อมูลและคุณสมบัติคงที่ของบริการ - มันเกี่ยวกับข้อมูล


25
นี่เป็นคำตอบที่ดีกว่าที่อธิบาย XSD ในบริบทของ WSDL และไม่ใช่แค่ความแตกต่างระหว่างทั้งสอง ในการเพิ่มนิยาม XSD เป็นส่วนหนึ่งของ WSDL ในแท็ก <wsdl: types>
airboss

ดังนั้นฉันจึงสามารถมี WSDL โดยไม่ต้อง XSD ถ้าฉันไม่ต้องการคำจำกัดความของข้อมูลที่ซับซ้อน?
esseara

61

XSD: นิยาม XML Schema

XML: ภาษามาร์กอัป eXtensible

WSDL: ภาษานิยามบริการเว็บ

ฉันจะไม่ตอบคำถามทางเทคนิค ฉันกำลังเล็งไปที่คำอธิบายนี้ตั้งแต่เริ่มต้น

การสื่อสารระหว่างสองแอปพลิเคชั่นที่แตกต่างกันนั้นไม่ใช่เรื่องง่ายที่พัฒนาโดยใช้เทคโนโลยีที่แตกต่างกันสองแบบ ตัวอย่างเช่น บริษัท ในชิคาโกอาจพัฒนาเว็บแอปพลิเคชันโดยใช้ Java และ บริษัท อื่นในนิวยอร์กอาจพัฒนาแอปพลิเคชันใน C # และเมื่อทั้งสอง บริษัท ตัดสินใจที่จะแบ่งปันข้อมูล XML ก็จะเข้ามาในรูปภาพ ช่วยในการจัดเก็บและขนส่งข้อมูลระหว่างแอพพลิเคชั่นที่ต่างกันสองตัวที่พัฒนาขึ้นโดยใช้เทคโนโลยีที่แตกต่าง หมายเหตุ: ไม่ จำกัด เฉพาะภาษาการเขียนโปรแกรมโปรดทำการวิจัยเกี่ยวกับการขนส่งข้อมูลระหว่างแอพสองตัวที่แตกต่างกัน

XSD เป็นคำจำกัดความของสคีมา จากสิ่งที่ฉันหมายถึงก็คือการบอกให้ผู้ใช้พัฒนา XML ในสคีมาดังกล่าว โปรดดูภาพด้านล่างและโปรดดูอย่างใกล้ชิดด้วยองค์ประกอบ "load-on-startup" และประเภทของมันซึ่งเป็นจำนวนเต็ม ในอิมเมจ XSD คุณสามารถดูได้ว่าเป็นค่าจำนวนเต็มสำหรับ "load-on-startup" และเมื่อผู้ใช้สร้าง / XML ของพวกเขาพวกเขาจะส่งค่า int ไปยังองค์ประกอบเฉพาะนั้น เพื่อเป็นการเตือนความจำ XSD เป็นสคีมาและสไตล์ในขณะที่ XML เป็นรูปแบบการสื่อสารกับแอปพลิเคชันหรือระบบอื่น เราต้องเห็น XSD และสร้าง XML ด้วยวิธีอื่นมิเช่นนั้นจะไม่สื่อสารกับแอพพลิเคชั่นหรือระบบอื่นที่ได้รับการพัฒนาด้วยเทคโนโลยีที่แตกต่าง บริษัท ในชิคาโกมีเทมเพลต XSD สำหรับ บริษัท ในเท็กซัสเพื่อเขียนหรือสร้าง XML ในรูปแบบ XSD ที่กำหนด หาก บริษัท ในเท็กซัสล้มเหลวในการปฏิบัติตามกฎหรือสคีมาที่กล่าวถึงใน XSD แสดงว่าเป็นไปไม่ได้ที่จะคาดหวังข้อมูลที่ถูกต้องจาก บริษัท ในชิคาโก มีเรื่องให้ทำมากมายหลังจากเรื่องที่กล่าวข้างต้นซึ่งมือสมัครเล่นหรือมือใหม่ต้องรู้ในขณะที่เขียนโค้ดเพื่อสิ่งที่ฉันพูดไว้ข้างต้น หากคุณต้องการทราบว่าจะเกิดอะไรขึ้นในภายหลังคุณควรนั่งกับวิศวกรซอฟต์แวร์อาวุโสที่พัฒนาบริการเว็บจริง ๆ ถัดไปคือ WSDL โปรดติดตามภาพและลองคิดดูว่า WSDL จะเหมาะกับที่ใด หากคุณต้องการทราบว่าจะเกิดอะไรขึ้นในภายหลังคุณควรนั่งกับวิศวกรซอฟต์แวร์อาวุโสที่พัฒนาบริการเว็บจริง ๆ ถัดไปคือ WSDL โปรดติดตามภาพและลองคิดดูว่า WSDL จะเหมาะกับที่ใด หากคุณต้องการทราบว่าจะเกิดอะไรขึ้นในภายหลังคุณควรนั่งกับวิศวกรซอฟต์แวร์อาวุโสที่พัฒนาบริการเว็บจริง ๆ ถัดไปคือ WSDL โปรดติดตามภาพและลองคิดดูว่า WSDL จะเหมาะกับที่ใด

*************** ======== ด้านล่างเป็นภาพ XML บางส่วน ========== ************ *** ภาพ XML บางส่วน

*************** ======== ด้านล่างเป็นภาพ XSD บางส่วน ========== ************ ***

ภาพ XSD บางส่วน

*************** ======== ด้านล่างนี้เป็นภาพ WSDL บางส่วน ======= ***************

บางส่วนของภาพ WSDL

ฉันต้องสร้างตัวอย่าง WSDL สำหรับเว็บเซอร์วิสชื่อ Book หมายเหตุเป็น XSD แต่คุณต้องเรียกว่า WSDL (ภาษาบริการการกำหนดภาษา) เนื่องจากเป็นบริการที่เฉพาะเจาะจงสำหรับเว็บเซอร์วิส WSDL ด้านบน (หรือในคำอื่น ๆ XSD) ถูกสร้างขึ้นสำหรับคลาสที่ชื่อว่า Book.java และได้สร้างบริการ SOAP การให้บริการเว็บ SOAP สร้างขึ้นเป็นหัวข้ออื่นอย่างไร หนึ่งจะต้องเขียนคลาส Java และก่อนที่จะดำเนินการสร้างเป็นบริการเว็บผู้ใช้จะต้องตรวจสอบให้แน่ใจว่ามีการติดตั้ง Axis2 API และ Tomcat ไปยังโฮสต์บริการเว็บอยู่ในสถานที่

ในฐานะที่เป็นผู้ให้บริการ (ผู้ที่อนุญาตให้ผู้อื่น (ลูกค้า) เข้าถึงข้อมูลหรือข้อมูลจากระบบของพวกเขา) ทำให้ลูกค้า (ผู้ที่ต้องการใช้ข้อมูลหรือข้อมูลของผู้ให้บริการ) เข้าถึงข้อมูลผ่านทางบริการเว็บได้อย่างสมบูรณ์ โลกเต็มใจเปิดเผยฐานข้อมูลสำหรับบุคคลภายนอก เช่นเดียวกับ บริษัท ของฉันตัดสินใจที่จะให้ข้อมูลเกี่ยวกับผลิตภัณฑ์ผ่านทางบริการเว็บดังนั้นเราจึงต้องสร้างเทมเพลต XSD และส่งต่อไปยังลูกค้าของเราบางคนที่ต้องการทำงานกับเรา พวกเขาต้องเขียนโค้ดบางส่วนเพื่อใช้งาน XSD ที่กำหนดอย่างสมบูรณ์และทำการเรียก Web Service เพื่อดึงข้อมูลจาก servicer และแปลงข้อมูลที่ส่งคืนตามความต้องการที่เหมาะสมจากนั้นแสดงหรือเผยแพร่ข้อมูลหรือข้อมูลเกี่ยวกับผลิตภัณฑ์บนเว็บไซต์ของตน ตัวอย่างง่ายๆคือการจองตั๋วเครื่องบิน สายการบินจะอนุญาตให้บุคคลที่สามใช้ข้อมูลเที่ยวบินในเว็บไซต์เพื่อจำหน่ายตั๋ว แต่อีกครั้งมีมากไปมันก็แค่ไม่ให้ตัวแทนตั๋วเครื่องบินของบุคคลที่สามที่จะขายตั๋วจะมีการประสานและความปลอดภัยในสถานที่ หากไม่มีการซิงค์มีโอกาสที่ลูกค้ามากกว่า 1 รายจะซื้อตั๋วเครื่องบินเดียวกันจากแหล่งต่าง ๆ 100%

ฉันหวังว่าผู้เชี่ยวชาญจะช่วยตอบคำถามของฉัน เป็นเรื่องยากสำหรับมือใหม่หรือมือใหม่ที่จะเข้าใจ XML, XSD แล้วจึงทำงานกับ Web Services


อย่างน้อยมันก็ให้คำแนะนำว่าเทคโนโลยีเหล่านี้ทำงานอย่างไร
MbaiMburu

10

XSD คือการตรวจสอบความถูกต้องของเอกสารและมีข้อมูลเมตาเกี่ยวกับ XML ในขณะที่ WSDL จะอธิบายตำแหน่งเว็บเซอร์และการดำเนินการ


3

XSD (นิยาม XML schema) กำหนดองค์ประกอบในเอกสาร XML สามารถใช้เพื่อตรวจสอบว่าองค์ประกอบในเอกสาร xml เป็นไปตามคำอธิบายที่จะวางเนื้อหาหรือไม่ ในขณะที่ wsdl เป็นประเภทเฉพาะของเอกสาร XML ซึ่งอธิบายบริการเว็บ WSDL ปฏิบัติตาม XSD


1

WSDL - มันมีการดำเนินการเช่นวิธีการที่ webservice ให้. และวิธีการเหล่านี้สามารถยอมรับประเภทข้อมูลที่เรียบง่ายเช่น int, ลอย ฯลฯ และชนิดข้อมูลที่ซับซ้อนเช่นวัตถุ, เวกเตอร์, อาร์เรย์ ฯลฯ ดังนั้นการทำแผนที่นี้ไปยังประเภทข้อมูล XML xsd ใช้ และขึ้นอยู่กับ xsd ผู้ใช้ที่ต้องการเพิ่มบริการเว็บจากแพลตฟอร์มที่แตกต่างกันสามารถให้ข้อมูลที่เหมาะสม

อ้างอิง: ayazroomy-java.blogspot.com เพื่ออ่านเกี่ยวกับพื้นฐานของเว็บเซอร์


0

XSD เป็นสกีมาสำหรับไฟล์ WSDL XSD มีประเภทข้อมูลสำหรับ WSDL องค์ประกอบที่ประกาศใน XSD นั้นสามารถใช้ได้ในไฟล์ WSDL เราสามารถตรวจสอบ WSDL กับ XSD เพื่อตรวจสอบบริการเว็บ WSDL ที่ถูกต้องหรือไม่


0

หากใครบางคนกำลังมองหาการเปรียบเทียบคำตอบนี้อาจเป็นประโยชน์

WSDL เหมือนคำสั่ง 'SHOW TABLE STATUS' ใน mysql มันกำหนดองค์ประกอบทั้งหมด (ประเภทคำขอประเภทการตอบสนองรูปแบบของ URL เพื่อการร้องขอการตี ฯลฯ ) ซึ่งควรเป็นส่วนหนึ่งของ XML โดยคำจำกัดความฉันหมายถึง: 1) ชื่อคำขอหรือการตอบสนอง 2) สิ่งที่ควรถือว่าเป็นอินพุตสิ่งที่ควรถือว่าเป็นผลลัพธ์

XSD เหมือนคำสั่ง DESCRIBE ใน mysql มันบอกสิ่งที่ตัวแปรทั้งหมดและประเภทของพวกเขามีการร้องขอและการตอบสนอง


DESC ใน mysql ใช้สำหรับการเรียงลำดับหรือไม่ DESCRIBE เป็นแบบนั้นมากกว่า
Mangs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.