Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menjelaskan cara Windows Communication Foundation (WCF) memetakan dokumen Web Services Description Language (WSDL) ke dan dari instans ServiceDescription.
Cara ServiceDescription Memetakan ke WSDL 1.1
Anda dapat menggunakan WCF untuk mengekspor dokumen WSDL dari ServiceDescription instans untuk layanan Anda. Dokumen WSDL dibuat secara otomatis untuk layanan Anda saat Anda menerbitkan titik akhir metadata.
Anda juga dapat mengimpor ServiceEndpoint instans, ContractDescription instans, dan Binding instans dari dokumen WSDL menggunakan jenis WsdlImporter
.
Dokumen WSDL, yang diekspor oleh WCF, mengimpor definisi Skema XML apa pun yang digunakan dari dokumen Skema XML eksternal. Dokumen Skema XML terpisah diekspor untuk setiap namespace target yang digunakan oleh jenis data dalam layanan. Demikian pula, dokumen WSDL terpisah diekspor untuk setiap namespace target yang digunakan dalam kontrak layanan.
Deskripsi Layanan
Instans ServiceDescription dipetakan ke elemen wsdl:service
. Instans ServiceDescription berisi kumpulan instans ServiceEndpoint yang masing-masing memetakan elemen individual wsdl:port
.
Karakteristik | Pemetaan WSDL |
---|---|
Name |
Nilai wsdl:service /@name dari layanan. |
Namespace |
TargetNamespace untuk definisi dari wsdl:service layanan. |
Endpoints |
Definisi wsdl:port untuk layanan. |
Titik Akhir Layanan
Instans ServiceEndpoint dipetakan ke elemen wsdl:port
. Instans ServiceEndpoint berisi alamat, binding, dan kontrak.
Perilaku titik akhir yang mengimplementasikan antarmuka IWsdlExportExtension dapat memodifikasi elemen wsdl:port
untuk titik akhir yang menjadi lampiran.
Karakteristik | Pemetaan WSDL |
---|---|
Name |
Nilai wsdl:port /@name untuk titik akhir dan wsdl:binding nilai /@name untuk pengikatan titik akhir. |
Address |
Alamat definisi wsdl:port untuk titik akhir.Transportasi untuk titik akhir menentukan format alamat. Misalnya, untuk transportasi yang didukung WCF, itu bisa menjadi alamat SOAP atau referensi titik akhir. |
Binding |
Definisi wsdl:binding untuk titik akhir.Tidak seperti wsdl:binding definisi, pengikatan dalam WCF tidak terkait dengan satu kontrak pun. |
Contract |
Definisi wsdl:portType untuk titik akhir. |
Behaviors |
Perilaku titik akhir IWsdlExportExtension yang mengimplementasikan antarmuka dapat memodifikasi wsdl:port untuk titik akhir. |
Pengikat
Pengikatan instans untuk ServiceEndpoint
dipetakan ke definisi wsdl:binding
. Tidak seperti definisi wsdl:binding
, yang harus dikaitkan dengan definisi wsdl:portType
tertentu, pengikatan WCF bersifat independen dari kontrak apa pun.
Pengikatan terdiri dari kumpulan elemen pengikatan. Setiap elemen menjelaskan beberapa aspek bagaimana titik akhir berkomunikasi dengan klien. Selain itu, pengikatan memiliki MessageVersion yang menunjukkan EnvelopeVersion dan AddressingVersion untuk titik akhir.
Karakteristik | Pemetaan WSDL |
---|---|
Name |
Digunakan dalam nama default titik akhir, yang merupakan nama pengikatan dengan nama kontrak yang ditambahkan dan dipisahkan oleh garis bawah. |
Namespace |
targetNamespace untuk definisi wsdl:binding .Saat pengimporan, jika kebijakan dilampirkan ke port WSDL, namespace binding yang diimpor dipetakan ke definisi targetNamespace untuk wsdl:port . |
BindingElementCollection , seperti yang dikembalikan oleh metode CreateBindingElements () |
Definisi wsdl:binding dengan berbagai ekstensi spesifik domain, biasanya berupa kebijakan. |
MessageVersion |
EnvelopeVersion dan AddressingVersion untuk titik akhir.Ketika MessageVersion.None ditentukan, pengikatan WSDL tidak berisi pengikatan SOAP dan port WSDL tidak berisi konten WS-Addressing. Pengaturan ini umumnya digunakan untuk titik akhir XML lawas (POX) biasa. |
ElemenPengikat
Elemen pengikatan untuk peta pengikatan titik akhir ke berbagai ekstensi WSDL di wsdl:binding
, seperti pernyataan kebijakan.
TransportBindingElement untuk pengikatan menentukan URI (Uniform Resource Identifier) transportasi untuk pengikatan SOAP.
Versi Pengalamatan
AddressingVersion
pada peta pengikatan ke versi alamat yang digunakan dalam wsd:port
. WCF mendukung alamat SOAP 1.1 dan SOAP 1.2, dan referensi titik akhir WS-Addressing 08/2004 dan WS-Addressing 1.0.
EnvelopeVersion
EnvelopeVersion
pada peta pengikatan ke versi SOAP yang digunakan dalam wsdl:binding
. WCF mendukung pengikatan SOAP 1.1 dan SOAP 1.2.
Kontrak
Instans ContractDescription dari instans ServiceEndpoint
dipetakan ke wsdl:portType
. Sebuah instance ContractDescription
menggambarkan semua operasi untuk kontrak tertentu.
Karakteristik | Pemetaan WSDL |
---|---|
Name |
Nilai wsdl:portType /@name untuk kontrak. |
Namespace |
TargetNamespace untuk wsdl:portType definisi. |
SessionMode |
Nilai wsdl:portType /@msc:usingSession untuk kontrak. Atribut ini adalah ekstensi WCF untuk WSDL 1.1. |
Operations |
Definisi wsdl:operation untuk kontrak. |
Operasi
Instans OperationDescription dikaitkan dengan wsdl:portType
/wsdl:operation
. Sebuah OperationDescription
berisi kumpulan instans MessageDescription
yang menjelaskan pesan untuk operasi.
Dua perilaku operasi sangat berpartisipasi dalam bagaimana sebuah OperationDescription
dipetakan ke dokumen WSDL: DataContractSerializerOperationBehavior
dan XmlSerializerOperationBehavior
.
Karakteristik | Pemetaan WSDL |
---|---|
Name |
Nilai wsdl:portType /wsdl:operation /@name untuk operasi. |
ProtectionLevel |
Pernyataan perlindungan dalam kebijakan keamanan yang dilampirkan pada pesan wsdl:binding/wsdl:operation untuk operasi ini. |
IsInitiating |
Nilai wsdl:portType /wsdl:operation /@msc:isInitiating untuk operasi. Atribut ini adalah ekstensi WCF untuk WSDL 1.1. |
IsTerminating |
Nilai wsdl:portType /wsdl:operation /@msc:isTerminating untuk sebuah operasi. Atribut ini adalah ekstensi WCF untuk WSDL 1.1. |
Messages |
Pesan wsdl:portType /wsdl:operation /wsdl:input dan wsdl:portType /wsdl:operation /wsdl:output untuk operasi. |
Faults |
Definisi wsdl:portType /wsdl:operation /wsdl:fault untuk operasi. |
Behaviors |
DataContractSerializerOperationBehavior dan XmlSerializerOperationBehavior menangani pengikatan operasi dan pesan operasi. |
The DataContractSerializerOperationBehavior
DataContractSerializerOperationBehavior
untuk suatu operasi adalah implementasi IWsdlExportExtension
yang mengekspor pesan WSDL dan pengikatan untuk operasi tersebut. Jenis Skema XML diekspor menggunakan XsdDataContractExporter
.
DataContractSerializerOperationBehavior
juga menentukan penggunaan, gaya, serta pengekspor dan pengimpor skema yang akan digunakan dalam operasi tersebut.
Karakteristik | Pemetaan WSDL |
---|---|
DataContractFormatAttribute |
Properti Style untuk atribut ini dipetakan ke nilai wsdl:binding /wsdl:operation /soap:operation /@style untuk operasi.Hanya DataContractSerializerOperationBehavior mendukung penggunaan harfiah dari jenis skema di WSDL. |
The XmlSerializerOperationBehavior
XmlSerializerOperationBehavior
untuk suatu operasi adalah implementasi IWsdlExportExtension
yang mengekspor pesan WSDL dan pengikatan untuk operasi tersebut. Jenis Skema XML diekspor menggunakan XmlSchemaExporter
.
XmlSerializerOperationBehavior
juga menentukan penggunaan, gaya, serta pengekspor dan pengimpor skema yang akan digunakan dalam operasi tersebut.
Karakteristik | Pemetaan WSDL |
---|---|
XmlSerializerFormatAttribute |
Properti Style untuk atribut ini dipetakan ke nilai wsdl:binding /wsdl:operation /soap:operation /@style untuk operasi.Properti Use untuk atribut ini memetakan ke wsdl:binding /wsdl:operation /soap:operation /*/@use nilai untuk semua pesan dalam operasi. |
Pesan
MessageDescription
instans memetakan ke wsdl:message
yang dirujuk oleh wsdl:portType
/wsdl:operation
/wsdl:input
atau wsdl:portType
/wsdl:operation
/wsdl:output
pesan dalam operasi. A MessageDescription
memiliki badan dan tajuk.
Karakteristik | Pemetaan WSDL |
---|---|
Action |
Tindakan SOAP atau WS-Addressing untuk pesan. Perhatikan bahwa operasi yang menggunakan string Tindakan "*" tidak diwakili dalam WSDL. |
Direction |
MessageDirection.Input mematakan ke wsdl:input .MessageDirection.Output mematakan ke wsdl:output . |
ProtectionLevel |
Pernyataan perlindungan dalam kebijakan keamanan yang dilampirkan ke definisi wsdl:message pesan ini. |
Body |
Isi dari pesan. |
Headers |
Tajuk-tajuk untuk pesan. |
ContractDescription.Name , OperationContract.Name |
Pada ekspor, digunakan untuk mendapatkan nilai wsdl:message /@name. |
Isi Pesan
MessageBodyDescription
instance dipetakan pada wsdl:message
/wsdl:part
definisi untuk isi pesan. Isi pesan mungkin dibungkus atau kosong.
Karakteristik | Pemetaan WSDL |
---|---|
WrapperName |
Jika gaya bukan RPC, maka WrapperName dipetakan ke nama elemen yang dirujuk oleh wsdl:message /wsdl:part dengan @name disetel ke "parameter". |
WrapperNamespace |
Jika gaya bukan RPC, maka WrapperNamespace memetakan ke namespace elemen untuk wsdl:message /wsdl:part dengan @name diatur ke "parameters". |
Parts |
Elemen-elemen untuk badan pesan ini. |
ReturnValue |
Elemen turunan dari elemen pembungkus jika ada elemen pembungkus (gaya yang dibungkus dokumen, atau gaya RPC), jika tidak, yang pertama wsdl:message /wsdl:part dalam pesan. |
Bagian Pesan
Instance MessagePartDescription
memetakan ke wsdl:message
/wsdl:part
dan jenis atau elemen skema XML yang ditunjukkan oleh bagian pesan.
Karakteristik | Pemetaan WSDL |
---|---|
Name |
Nilai wsd:message /wsdl:part /@name untuk bagian pesan dan nama elemen yang ditunjuk oleh bagian pesan. |
Namespace |
Namespace dari elemen yang ditunjuk oleh bagian pesan. |
Index |
Indeks dari wsdl:message /wsdl:part untuk pesan. |
ProtectionLevel |
Pernyataan perlindungan dalam kebijakan keamanan yang terlampir pada definisi wsdl:message terkait bagian pesan ini. Kebijakan diparameterkan untuk menunjuk ke bagian pesan tertentu. |
MessageType |
Jenis Skema XML dari elemen yang dituju oleh bagian pesan. |
Header Pesan
MessageHeaderDescription
Instans adalah bagian dari pesan yang juga dipetakan ke soap:header
pengikatan untuk bagian dari pesan tersebut.
Kesalahan
Instans FaultDescription
dipetakan ke definisi wsdl:portType
/wsdl:operation
/wsdl:fault
dan definisi terkait wsdl:message
.
wsdl:message
ditambahkan ke namespace target yang sama dengan jenis port WSDL terkait.
wsdl:message
memiliki satu bagian pesan bernama "detail" yang menunjuk ke elemen Skema XML yang sesuai dengan nilai properti DefaultType
untuk instans FaultDescription
.
Karakteristik | Pemetaan WSDL |
---|---|
Name |
Nilai wsdl:portType /wsdl:operation /wsdl:fault /@name untuk kesalahan. |
Namespace |
Namespace elemen Skema XML yang ditujukan oleh bagian pesan detail kesalahan. |
Action |
Tindakan SOAP atau WS-Addressing untuk kesalahan tersebut. |
ProtectionLevel |
Klaim perlindungan dalam kebijakan keamanan yang terlampir pada wsdl:message definisi kesalahan ini. |
DetailType |
Jenis Skema XML dari elemen yang dituju oleh bagian pesan detail. |
Name, ContractDescription.Name, OperationDescription.Name, |
Digunakan untuk memperoleh nilai /@namewsdl:message pada pesan kesalahan. |