XSD ve WSDL arasındaki fark nedir


178

A XML Schemave arasındaki fark nedir WSDL?

Fark ettiğim fark, WSDLiçerdiği XSDve içerdiği WSDLişlemleri bildirebiliriz, ama içeride değil XSD. Bu doğru mu?

Yanıtlar:


177

XSD, bir XML belgesinin nasıl yapılandırılabileceğinin bir tanımı olan bir şemayı tanımlar. Belirli bir XML belgesinin geçerli olup olmadığını ve şemada belirlediğiniz kurallara uyduğunu kontrol etmek için kullanabilirsiniz.

WSDL, bir web hizmetini tanımlayan bir XML belgesidir. Hangi işlemlerin kullanılabilir olduğunu ve bu işlemlere gönderilecek verilerin nasıl yapılandırılması gerektiğini gösterir.

WSDL belgelerinde, WSDL belgesine koymak için neyin geçerli olduğunu gösteren ilişkili bir XSD vardır.


15
Paolo'nun cevabı doğru. Sadece geliştiriyorum. WSDL aslında XML olduğundan ve yapısını doğrulamak için XSD'ye sahip olabilir veya olmayabilir. İlişkili XSD ayrı bir dosya olabilir ve WSDL'ye aktarılabilir veya tam XSD, WSDL dosyasına <WSDL: types> etiketi kullanılarak satır içine gömülebilir.Daha fazla bilgi için ibm.com/developerworks/webservices/library/ws-tip-imports
süpernova

Neredeyse iki ayrı şeyse, neden Netbeans'te bir web hizmeti oluşturduğumda ?xsd=1, URL'de otomatik olarak bir tane alıyorum ?
CodyBugstein

212

WSDL (Web Hizmetleri Açıklama Dili) hizmetinizi ve işlemlerini açıklar - hizmet ne denir, hangi yöntemleri sunar, bu yöntemlerde ne tür parametreler ve dönüş değerleri vardır?

Bu, hizmetin davranışının bir açıklamasıdır - işlevselliği.

XSD (Xml Şema Tanımı), bu hizmet yöntemleriyle değiştirilen karmaşık veri türlerinin statik yapısını açıklar. Türleri, alanlarını, bu alanlarla ilgili herhangi bir kısıtlamayı (maksimum uzunluk veya normal ifade deseni gibi) açıklar.

Bu, veri türlerinin ve dolayısıyla hizmetin statik özelliklerinin açıklamasıdır - verilerle ilgilidir.


25
Bu, XSD'yi sadece ikisi arasındaki farkı değil, WSDL bağlamında açıklayan çok daha iyi bir cevaptır. Eklemek için, XSD tanımları <wsdl: types> etiketindeki WSDL'nin bir parçasıdır.
airboss

Karmaşık veri tanımına ihtiyacım yoksa XSD'siz bir WSDL alabilir miyim?
esseara

61

XSD: XML Şeması Tanımı.

XML: Genişletilebilir İşaretleme Dili.

WSDL: Web Hizmeti Tanımlama Dili.

Teknik açıdan cevap vermeyeceğim. Bu açıklamayı yeni başlayanlara hedefliyorum.

İki farklı teknoloji kullanılarak geliştirilen iki farklı uygulama arasında iletişim kurmak kolay değildir. Örneğin, Chicago'daki bir şirket Java kullanarak bir web uygulaması geliştirebilir ve New York'ta başka bir şirket C # 'da bir uygulama geliştirebilir ve bu iki şirket bilgi paylaşmaya karar verdiğinde XML resme dönüşür. Farklı teknolojiler kullanılarak geliştirilen iki farklı uygulama arasında veri depolanmasına ve aktarılmasına yardımcı olur. Not: Bir programlama dili ile sınırlı değildir, lütfen iki farklı uygulama arasındaki bilgi aktarımı hakkında araştırma yapın.

XSD bir şema tanımıdır. Demek istediğim, kullanıcılara XML'lerini böyle bir şemada geliştirmelerini söylüyor. Lütfen aşağıdaki resimlere bakın ve lütfen "başlangıçta yükleme" öğesi ve tamsayı olan türü ile yakından izleyin. XSD görüntüsünde bunun "başlangıçta yükleme" için tamsayı değeri olduğunu ve dolayısıyla kullanıcı XML'sini oluşturduğunda o öğeye int değerini ilettiğini görebilirsiniz. Bir hatırlatma olarak, XSD bir şema ve stildir, XML ise başka bir uygulama veya sistemle iletişim kurmak için bir formdur. Birisi XSD'yi görmeli ve XML'i böyle bir şekilde oluşturmalı ya da farklı bir teknoloji ile geliştirilen başka bir uygulama veya sistemle iletişim kurmayacaktır. Chicago'daki bir şirket, Teksas'ta bir şirketin XML'lerini belirtilen XSD biçiminde yazması veya oluşturması için bir XSD şablonu sağlar. Teksas'taki şirket XSD'de belirtilen bu kurallara veya şemalara uymazsa, Chicago'daki şirketten doğru bilgi beklemek imkansızdır. Yukarıda anlatılan hikayeden sonra, yukarıda söylediğim gibi bir şey kodlarken bir amatör veya acemi bilmeniz gereken çok şey var. Gerçekten sonra ne olacağını bilmek istiyorsanız o zaman aslında web hizmetleri geliştiren kıdemli yazılım mühendisleri ile oturmak daha iyidir. Sonra WSDL geliyor, lütfen görüntüleri takip edin ve WSDL'nin nereye sığacağını anlamaya çalışın. Gerçekten sonra ne olacağını bilmek istiyorsanız o zaman aslında web hizmetleri geliştiren kıdemli yazılım mühendisleri ile oturmak daha iyidir. Sonra WSDL geliyor, lütfen görüntüleri takip edin ve WSDL'nin nereye sığacağını anlamaya çalışın. Gerçekten sonra ne olacağını bilmek istiyorsanız o zaman aslında web hizmetleri geliştiren kıdemli yazılım mühendisleri ile oturmak daha iyidir. Sonra WSDL geliyor, lütfen görüntüleri takip edin ve WSDL'nin nereye sığacağını anlamaya çalışın.

*************** ======== Aşağıda kısmi XML görüntüsü ========== ************ *** XML görüntüsü kısmi

*************** ======== Aşağıda kısmi XSD resmi var ========== ************ ***

XSD resim kısmi

*************** ======== Aşağıda kısmi WSDL resmi ======= *************

WSDL resmi kısmi

Book adlı bir web hizmeti için örnek bir WSDL oluşturmak zorunda kaldım. Unutmayın, bu bir XSD'dir, ancak Web Hizmetleri için çok özel olduğu için WSDL (Web Hizmeti Tanımlama Dili) olarak adlandırmanız gerekir. Yukarıdaki WSDL (veya başka bir deyişle XSD), Book.java adlı bir sınıf için oluşturulur ve bir SOAP hizmeti oluşturmuştur. SOAP web hizmetinin nasıl oluşturulduğu farklı bir konudur. Bir Java sınıfı yazmak zorunda ve bunu yürütmeden önce bir web hizmeti olarak kullanıcı Axis2 API yüklü ve web hizmeti barındırmak için Tomcat yerinde olduğundan emin olmak zorundadır.

Bir hizmet sağlayıcı olarak (başkalarının (istemcilerin) sistemlerinden bilgilere veya verilere erişmesine izin veren kişi) aslında istemciye (sunucu bilgilerini veya verilerini kullanması gereken) bir Web Hizmeti aracılığıyla verilere tam erişim sağlar, çünkü yeryüzü Veritabanını yabancılar için ifşa etmeye istekli. Şirketim gibi, Web Hizmetleri aracılığıyla ürünler hakkında bazı bilgiler vermeye karar verdik, bu nedenle XSD şablonu oluşturmamız ve bizimle çalışmak isteyen müşterilerimizden birkaçına geçmemiz gerekiyordu. Verilen XSD'den tam olarak yararlanmak için bazı kodlar yazmalı ve sunucudan veri almak ve iade edilen verileri uygun gereksinimlerine dönüştürmek için Web Hizmeti çağrıları yapmak ve daha sonra web sitesindeki ürün hakkındaki verileri veya bilgileri görüntülemek veya yayınlamak zorundadırlar. Basit bir örnek UÇUŞ Bilet rezervasyonu olacaktır. Bir havayolu şirketi üçüncü tarafların sitelerinde uçuş verilerini bilet satışı için kullanmalarına izin verecektir. Ama yine çok daha fazlası var, sadece üçüncü taraf uçak bileti acentesinin bilet satmasına izin vermiyor, senkronizasyon ve yerinde güvenlik olacak. Senkronizasyon yoksa, 1'den fazla müşterinin çeşitli kaynaklardan aynı uçak bileti satın alma şansı% 100'dür.

Uzmanların cevabım için katkıda bulunmasını umuyorum. Yeni başlayanlar veya acemiler için XML, XSD'yi anlamak ve sonra Web Servisleri üzerinde çalışmak gerçekten zordur.


en azından bana bu teknolojilerin nasıl çalıştığına dair bir ipucu verdi
MbaiMburu

10

XSD belgeyi doğrulamak ve XML hakkında meta veriler içerirken, WSDL web hizmeti konumunu ve işlemlerini tanımlamak içindir.


3

XSD (XML şema tanımı), bir XML belgesindeki öğeyi tanımlar. Xml belgesindeki öğelerin içeriğin yerleştirileceği açıklamaya uyup uymadığını doğrulamak için kullanılabilir. Wsdl ise web hizmetini tanımlayan belirli bir XML belgesi türüdür. WSDL'nin kendisi bir XSD'ye yapışır.


1

WSDL - Bir web hizmetinin sağladığı Yöntemler gibi İşlem içerir. Ve bu yöntem int, float vb gibi basit veri türlerini ve nesneler, vektörler, diziler vb. Gibi karmaşık veri türlerini kabul edebilir. Kullanılmış. ve xsd'ye dayanarak, farklı hizmetlerden web hizmetine erişmek isteyen bir kullanıcı verileri uygun şekilde sağlayabilir.

Web servisinin temelleri hakkında bilgi almak için ayazroomy-java.blogspot.com adresine bakın.


0

XSD, WSDL dosyası için şemadır. XSD, WSDL için veri türleri içerir. XSD'de bildirilen öğe WSDL dosyasında kullanım için geçerlidir. WSDL'nin geçerli olup olmadığını kontrol etmek için WSDL'yi XSD'ye karşı kontrol edebiliriz.


0

Birisi benzetmeyi arıyorsa, bu cevap yardımcı olabilir.

WSDL, mysql'deki 'TABLO DURUMUNU GÖSTER' komutu gibidir. XML'in bir parçası olması gereken tüm öğeleri (istek türü, yanıt türü, isabet isteğine yönelik URL biçimi vb.) Tanımlar. Tanım olarak kastediyorum: 1) İstek ya da yanıtın adları 2) Neye girdi olarak, neye çıktı olarak davranılmalıdır.

XSD, mysql'deki DESCRIBE komutu gibidir. Tüm değişkenleri ve türlerini, bir istek ve yanıtı içerdiğini söyler.


Mysql'deki DESC sıralama düzeni için kullanılmıyor mu? Ancak DESCRIBE daha çok benzer.
Mangs
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.