apa perbedaan antara XSD dan WSDL

178

Apa perbedaan antara XML Schemadan WSDL?

Perbedaan yang saya perhatikan adalah yang WSDLberisi XSDdan WSDLkita dapat mendeklarasikan operasi, tetapi tidak dalam XSD. Apakah itu benar?

menghasilkan
sumber

Jawaban:

177

XSD mendefinisikan skema yang merupakan definisi tentang bagaimana dokumen XML dapat disusun. Anda dapat menggunakannya untuk memeriksa apakah dokumen XML yang diberikan valid dan mengikuti aturan yang telah Anda tetapkan dalam skema.

WSDL adalah dokumen XML yang menjelaskan layanan web. Ini menunjukkan operasi mana yang tersedia dan bagaimana data harus disusun untuk dikirim ke operasi tersebut.

Dokumen WSDL memiliki XSD terkait yang menunjukkan apa yang valid untuk dimasukkan ke dalam dokumen WSDL.

Paolo
sumber
15
Jawaban Paolo benar. Hanya meningkatkannya. Karena WSDL sebenarnya XML dan mungkin atau mungkin tidak memiliki XSD untuk memvalidasi struktur itu. XSD terkait mungkin merupakan file terpisah dan diimpor dalam WSDL atau XSD penuh dapat disematkan inline dalam file WSDL itu sendiri menggunakan tag <WSDL: types>. Untuk lebih jelasnya ibm.com/developerworks/webservices/library/ws-tip-imports
supernova
Jika mereka cukup banyak dua hal yang terpisah, mengapa ketika saya membuat layanan web misalnya, di Netbeans, saya mendapatkan ?xsd=1di URL secara otomatis?
CodyBugstein
212

WSDL (Bahasa Deskripsi Layanan Web) menjelaskan layanan Anda dan operasinya - apa layanan yang dipanggil, metode apa yang ditawarkannya, seperti apa parameter dan nilai pengembalian yang dimiliki metode ini?

Ini adalah deskripsi perilaku layanan - fungsionalitasnya.

XSD (Definisi Skema Xml) menjelaskan struktur statis tipe data kompleks yang dipertukarkan dengan metode layanan tersebut. Ini menjelaskan jenis, bidangnya, batasan apa pun pada bidang tersebut (seperti panjang maks atau pola regex) dan sebagainya.

Ini adalah deskripsi tipe data dan dengan demikian sifat statis layanan - ini tentang data.

marc_s
sumber
25
Ini adalah jawaban yang jauh lebih baik menjelaskan XSD dalam konteks WSDL dan bukan hanya perbedaan antara keduanya. Untuk menambahkan, definisi XSD adalah bagian dari WSDL dalam tag <wsdl: types>.
airboss
Jadi saya bisa memiliki WSDL tanpa XSD jika saya tidak memerlukan definisi data yang kompleks?
esseara
61

XSD: Definisi Skema XML.

XML: Bahasa Markup eXtensible.

WSDL: Bahasa Definisi Layanan Web.

Saya tidak akan menjawab secara teknis. Saya mengarahkan penjelasan ini pada pemula.

Tidak mudah untuk berkomunikasi antara dua aplikasi berbeda yang dikembangkan menggunakan dua teknologi berbeda. Misalnya, sebuah perusahaan di Chicago mungkin mengembangkan aplikasi web menggunakan Java dan perusahaan lain di New York mungkin mengembangkan aplikasi dalam C # dan ketika kedua perusahaan ini memutuskan untuk berbagi informasi maka XML muncul. Ini membantu untuk menyimpan dan mengangkut data antara dua aplikasi berbeda yang dikembangkan menggunakan teknologi yang berbeda. Catatan: Ini tidak terbatas pada bahasa pemrograman, silakan lakukan penelitian tentang transportasi informasi antara dua aplikasi yang berbeda.

XSD adalah definisi skema. Maksud saya adalah, ia memberi tahu pengguna untuk mengembangkan XML mereka dalam skema seperti itu. Silakan lihat di bawah gambar, dan perhatikan dengan seksama dengan elemen "load-on-startup" dan jenisnya yang bilangan bulat. Pada gambar XSD Anda dapat melihatnya dimaksudkan sebagai nilai integer untuk "load-on-startup" dan karenanya ketika pengguna membuat XML-nya, mereka memberikan nilai int ke elemen tertentu. Sebagai pengingat, XSD adalah skema dan gaya sedangkan XML adalah bentuk untuk berkomunikasi dengan aplikasi atau sistem lain. Kita harus melihat XSD dan membuat XML sedemikian rupa atau tidak akan berkomunikasi dengan aplikasi atau sistem lain yang telah dikembangkan dengan teknologi yang berbeda. Sebuah perusahaan di Chicago menyediakan template XSD untuk perusahaan di Texas untuk menulis atau menghasilkan XML mereka dalam format XSD yang diberikan. Jika perusahaan di Texas gagal mematuhi aturan atau skema yang disebutkan dalam XSD maka tidak mungkin untuk mengharapkan informasi yang benar dari perusahaan di Chicago. Ada begitu banyak yang harus dilakukan setelah cerita di atas, yang harus diketahui oleh seorang amatir atau pemula saat melakukan pengkodean untuk beberapa hal seperti yang saya katakan di atas. Jika Anda benar-benar ingin tahu apa yang terjadi kemudian, lebih baik duduk bersama insinyur perangkat lunak senior yang benar-benar mengembangkan layanan web. Berikutnya adalah WSDL, silakan ikuti gambar dan coba cari tahu di mana WSDL akan masuk. Jika Anda benar-benar ingin tahu apa yang terjadi kemudian, lebih baik duduk bersama insinyur perangkat lunak senior yang benar-benar mengembangkan layanan web. Berikutnya adalah WSDL, silakan ikuti gambar dan coba cari tahu di mana WSDL akan masuk. Jika Anda benar-benar ingin tahu apa yang terjadi kemudian, lebih baik duduk bersama insinyur perangkat lunak senior yang benar-benar mengembangkan layanan web. Berikutnya adalah WSDL, silakan ikuti gambar dan coba cari tahu di mana WSDL akan masuk.

*************** ======== Di bawah ini sebagian gambar XML ========== ************ *** Parsial gambar XML

*************** ======== Di bawah ini sebagian gambar XSD ========== ************ ***

Parsial gambar XSD

*************** ======== Di bawah ini adalah gambar WSDL parsial ======= *************

Sebagian gambar WSDL

Saya harus membuat sampel WSDL untuk layanan web bernama Book. Catatan, ini adalah XSD tetapi Anda harus menyebutnya WSDL (Bahasa Layanan Web Definisi) karena sangat spesifik untuk Layanan Web. WSDL di atas (atau dengan kata lain XSD) dibuat untuk kelas yang disebut Book.java dan telah menciptakan layanan SOAP. Bagaimana layanan web SOAP menciptakannya adalah topik yang berbeda. Kita harus menulis kelas Java dan sebelum menjalankannya membuat sebagai layanan web pengguna harus memastikan Axis2 API diinstal dan Tomcat menjadi tuan rumah layanan web sudah ada.

Sebagai seorang juru servis (orang yang memungkinkan orang lain (klien) mengakses informasi atau data dari sistem mereka) sebenarnya memberi klien (orang yang perlu menggunakan informasi atau data penyedia layanan) melengkapi akses ke data melalui Layanan Web, karena tidak ada perusahaan di bumi bersedia mengekspos Database mereka untuk orang luar. Seperti perusahaan saya, memutuskan untuk memberikan beberapa informasi tentang produk melalui Layanan Web, maka kami harus membuat template XSD dan meneruskannya ke beberapa klien kami yang ingin bekerja bersama kami. Mereka harus menulis beberapa kode untuk sepenuhnya menggunakan XSD yang diberikan dan melakukan panggilan Layanan Web untuk mengambil data dari penyedia layanan dan mengkonversi data yang dikembalikan ke persyaratan yang sesuai dan kemudian menampilkan atau mempublikasikan data atau informasi tentang produk di situs web mereka. Contoh sederhana adalah pemesanan Tiket PENERBANGAN. Sebuah maskapai penerbangan akan membiarkan pihak ketiga menggunakan data penerbangan di situs mereka untuk penjualan tiket. Tetapi sekali lagi ada lebih banyak untuk itu, hanya saja tidak membiarkan agen tiket penerbangan pihak ketiga untuk menjual tiket, akan ada sinkronisasi dan keamanan di tempat. Jika tidak ada sinkronisasi maka ada peluang 100% lebih dari 1 pelanggan dapat membeli tiket penerbangan yang sama dari berbagai sumber.

Saya berharap para ahli akan berkontribusi pada jawaban saya. Sangat sulit bagi pemula atau pemula untuk memahami XML, XSD dan kemudian bekerja di Layanan Web.

MKod
sumber
setidaknya itu memberi saya petunjuk tentang bagaimana teknologi ini bekerja
MbaiMburu
10

XSD adalah untuk memvalidasi dokumen, dan berisi metadata tentang XML sedangkan WSDL adalah untuk menggambarkan lokasi dan operasi layanan web.

Priyank Bolia
sumber
3

XSD (definisi skema XML) mendefinisikan elemen dalam dokumen XML. Ini dapat digunakan untuk memverifikasi apakah elemen dalam dokumen xml mematuhi deskripsi di mana konten akan ditempatkan. Sedangkan wsdl adalah tipe spesifik dokumen XML yang menggambarkan layanan web. WSDL sendiri menganut XSD.

vivyzer
sumber
1

WSDL - Ini berisi Operasi seperti Metode yang menyediakan layanan web. Dan metode ini dapat menerima tipe data sederhana seperti int, float dll dan tipe data kompleks seperti objek, vektor, array dll. Jadi pemetaan ini ke xml datatype xsd adalah bekas. dan berdasarkan xsd, pengguna yang ingin mengakses layanan web dari platform yang berbeda dapat menyediakan data dengan tepat.

Rujuk: ayazroomy-java.blogspot.com untuk membaca tentang dasar-dasar layanan web.

ayaz
sumber
0

XSD adalah skema untuk file WSDL. XSD berisi tipe data untuk WSDL. Elemen yang dideklarasikan dalam XSD valid untuk digunakan dalam file WSDL. Kami dapat Memeriksa WSDL terhadap XSD untuk memeriksa layanan web WSDL valid atau tidak.

Menyelinap Lebih Banyak
sumber
0

Jika seseorang mencari analogi, jawaban ini mungkin bisa membantu.

WSDL seperti perintah 'SHOW TABLE STATUS' di mysql. Ini mendefinisikan semua elemen (tipe permintaan, tipe respons, format URL untuk mencapai permintaan, dll.,) Yang harus menjadi bagian dari XML. Menurut definisi yang saya maksud: 1) Nama permintaan atau respons 2) Apa yang harus diperlakukan sebagai input, apa yang harus diperlakukan sebagai output.

XSD seperti perintah DESCRIBE di mysql. Ini memberitahu apa yang berisi semua variabel dan tipenya, permintaan dan tanggapan.

Sunny Gangisetti
sumber
Bukankah DESC di mysql digunakan untuk urutan pengurutan? Namun DESCRIBE lebih menyukainya.
Mangs