Saya seorang pemula SOAP yang ditugaskan untuk menghidupkan kembali antarmuka sabun lama. Saya telah mem-porting layanan sabun ke kucing jantan baru di jalur baru (dan membiarkan klien tidak berubah). Saya mengirimkan permintaan: http://myserver:8181/soap/SoapTest?wsdl dan saya mendapatkan kembali:
<wsdl:definitions xmlns:ns1="http://webservices.mycompany.com"
xmlns:ns3="http://schemas.xmlsoap.org/wsdl/soap/http"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.mycompany.com/SoapTest"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="SoapTestService"
targetNamespace="http://www.mycompany.com/SoapTest">
<wsdl:import location="http://myserver:8181/soap/SoapTest?wsdl=SoapTest.wsdl"
namespace="http://webservices.mycompany.com"></wsdl:import>
<wsdl:binding name="SoapTestServiceSoapBinding" type="ns1:SoapTest">...</wsdl:binding>
<wsdl:service name="SoapTestService">...</wsdl:service>
</wsdl:definitions>
Tampaknya menjanjikan. Permintaan ke lokasi impor SoapTest?wsdl=SoapTest.wsdl akan menghasilkan:
<wsdl:definitions xmlns:ns1="http://webservices.mycompany.com"
xmlns:ns2="http://jaxb.dev.java.net/array" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="SoapTest"
targetNamespace="http://webservices.mycompany.com">
<wsdl:types>
<xs:schema xmlns:tns="http://webservices.mycompany.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://webservices.mycompany.com" version="1.0">
<xs:complexType name="sessionObj">
<xs:sequence>
<xs:element name="code" type="xs:int"/>
<xs:element name="id" type="xs:long"/>
<xs:element minOccurs="0" name="role" type="xs:string"/>
<xs:element minOccurs="0" name="username" type="xs:string"/>
</xs:sequence>
</xs:complexType>
... (and so on)
Jadi klien dapat menerima asosiasi nama:tipe anggota xs tetapi tampaknya tidak - atau tidak menerapkannya. Itu adalah ...
HUH.. setelah ditinjau, saya melihat xs digunakan sebagai namespace tetapi xmlns:xsd ditentukan?? Bagaimana hal ini bisa terjadi?
Kueri klien ZSI (dari Windows, jika ada bedanya) ke antarmuka ini (Linux) menerima respons yang berisi muatan data yang diharapkan tetapi kemudian memetakan setiap item data ke dalam "properti" individual - menghasilkan daftar properti generik.
Saya mengharapkan daftar anggota yang diketik, dengan setiap properti dimasukkan ke tipe xs (misalnya int, long, string, string untuk yang di atas), bukan?
Terima kasih sebelumnya atas petunjuk apa pun.