Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano, jak program Windows Communication Foundation (WCF) mapuje dokumenty języka opisu usług sieci Web (WSDL) do i z ServiceDescription wystąpień.
Jak usługa ServiceDescription mapuje na WSDL 1.1
Za pomocą platformy WCF można wyeksportować dokumenty WSDL z instancji ServiceDescription dla Twojej usługi. Dokumenty WSDL są generowane automatycznie dla usługi podczas publikowania punktów końcowych metadanych.
Możesz również importować wystąpienia ServiceEndpoint, ContractDescription i Binding z dokumentów WSDL za pomocą typu WsdlImporter.
Dokumenty WSDL, wyeksportowane przez WCF, zaimportują definicje schematu XML wykorzystywane z zewnętrznych dokumentów schematu XML. Oddzielny dokument schematu XML jest eksportowany dla każdej docelowej przestrzeni nazw, z której korzystają typy danych w usłudze. Podobnie oddzielny dokument WSDL jest eksportowany dla każdej docelowej przestrzeni nazw używanej przez kontrakty usług.
Opis usługi
ServiceDescription Wystąpienie mapuje się na element wsdl:service. Instancja ServiceDescription zawiera kolekcję instancji ServiceEndpoint, które mapują na poszczególne elementy wsdl:port.
| Właściwości | Mapowanie WSDL |
|---|---|
Name |
Wartość wsdl:service/@name dla usługi. |
Namespace |
Określenie targetNamespace dla definicji wsdl:service usługi. |
Endpoints |
Definicje usługi wsdl:port. |
Punkt końcowy usługi
ServiceEndpoint Wystąpienie mapuje się na element wsdl:port. Wystąpienie ServiceEndpoint zawiera adres, powiązanie i kontrakt.
Zachowania interfejsu IWsdlExportExtension, które są implementowane przez punkty końcowe, mogą modyfikować element wsdl:port dla punktu końcowego, do którego są dołączone.
| Właściwości | Mapowanie WSDL |
|---|---|
Name |
Wartość wsdl:port/@name dla punktu końcowego i wartość wsdl:binding/@name dla wiązania punktu końcowego. |
Address |
Adres dla definicji wsdl:port punktu końcowego.Transport dla punktu końcowego określa format adresu. Na przykład w przypadku transportu obsługiwanego przez program WCF może to być adres SOAP lub odwołanie do punktu końcowego. |
Binding |
Definicja wsdl:binding punktu końcowego.W przeciwieństwie do definicji wsdl:binding, powiązania w WCF nie są przypisane do żadnego konkretnego kontraktu. |
Contract |
Definicja wsdl:portType punktu końcowego. |
Behaviors |
Zachowania punktów końcowych, które implementują interfejs IWsdlExportExtension, mogą modyfikować wsdl:port dla punktu końcowego. |
Powiązania
Instancja powiązania dla wystąpienia ServiceEndpoint mapuje się na definicję wsdl:binding. W przeciwieństwie do wsdl:binding definicji, które muszą być skojarzone z określoną wsdl:portType definicją, powiązania WCF są niezależne od dowolnego kontraktu.
Wiązanie składa się ze zbioru elementów wiązania. Każdy element opisuje pewien aspekt sposobu komunikowania się punktu końcowego z klientami. Ponadto powiązanie ma MessageVersion, który wskazuje EnvelopeVersion oraz AddressingVersion punktu końcowego.
| Właściwości | Mapowanie WSDL |
|---|---|
Name |
Używana w domyślnej nazwie punktu końcowego, która jest nazwą powiązania z nazwą kontraktu dołączoną przez podkreślenie. |
Namespace |
targetNamespace dla definicji wsdl:binding.Podczas importu, jeśli do portu WSDL dołączona jest polityka, zaimportowana przestrzeń nazw powiązania jest odwzorowywana na targetNamespace dla definicji wsdl:port. |
BindingElementCollection, zwracana przez metodę CreateBindingElements() |
"Rozszerzenia specyficzne dla domeny, zwykle zastrzeżenia polityki, do definicji wsdl:binding." |
MessageVersion |
Parametry EnvelopeVersion i AddressingVersion dla punktu końcowego.Gdy MessageVersion.None jest określone, powiązanie WSDL nie zawiera wiązania SOAP, a port WSDL nie zawiera zawartości WS-Addressing. To ustawienie jest zwykle używane dla zwykłych starych punktów końcowych XML (POX). |
Elementy wiążące
Elementy powiązania dla powiązania punktu końcowego są mapowane na różne rozszerzenia WSDL w obiekcie wsdl:binding, takie jak deklaracje polityki.
Dla TransportBindingElement powiązania określa transport Uniform Resource Identifier (URI) dla powiązania protokołu SOAP.
AdresowanieWersja
Element AddressingVersion on a binding mapuje wersję adresowania używanego w pliku wsd:port. WCF obsługuje adresy SOAP 1.1 i SOAP 1.2 oraz referencje punktów końcowych WS-Addressing 08/2004 i WS-Addressing 1.0.
KopertaWersja
Element EnvelopeVersion na wiązaniu odpowiada wersji protokołu SOAP używanej w wsdl:binding. WCF obsługuje powiązania protokołu SOAP 1.1 i SOAP 1.2.
Kontrakty
Instancja ContractDescription dla instancji ServiceEndpoint odpowiada elementowi wsdl:portType. Wystąpienie ContractDescription opisuje wszystkie operacje dla danego kontraktu.
| Właściwości | Mapowanie WSDL |
|---|---|
Name |
Wartość wsdl:portType/@name dla kontraktu. |
Namespace |
targetNamespace dla definicji wsdl:portType. |
SessionMode |
Wartość wsdl:portType/@msc:usingSession dla kontraktu. Ten atrybut jest rozszerzeniem WCF dla WSDL 1.1. |
Operations |
Definicje wsdl:operation kontraktu. |
Operacji
Wystąpienie OperationDescription mapuje na wsdl:portType/wsdl:operationelement . Obiekt OperationDescription zawiera kolekcję MessageDescription wystąpień, które opisują komunikaty dotyczące operacji.
Dwa zachowania operacji mają duży wpływ na sposób mapowania elementu OperationDescription do dokumentu WSDL: DataContractSerializerOperationBehavior i XmlSerializerOperationBehavior.
| Właściwości | Mapowanie WSDL |
|---|---|
Name |
wartość wsdl:portType/wsdl:operation/@name dla operacji. |
ProtectionLevel |
Ochrona określona w zasadach zabezpieczeń dołączonych do komunikatów wsdl:binding/wsdl:operation dla tej operacji. |
IsInitiating |
/ wsdl:portType/wsdl:operation@msc:isInitiating wartość dla operacji. Ten atrybut jest rozszerzeniem WCF dla WSDL 1.1. |
IsTerminating |
/ wsdl:portType/wsdl:operation@msc:isTerminating wartość dla operacji. Ten atrybut jest rozszerzeniem WCF dla WSDL 1.1. |
Messages |
Komunikaty wsdl:portType/wsdl:operation/wsdl:input i wsdl:portType/wsdl:operation/wsdl:output dla operacji. |
Faults |
Definicje wsdl:portType/wsdl:operation/wsdl:fault operacji. |
Behaviors |
Element DataContractSerializerOperationBehavior i XmlSerializerOperationBehavior zajmuje się powiązaniem operacji i komunikatami operacji. |
Element DataContractSerializerOperationBehavior
Element DataContractSerializerOperationBehavior dla operacji to implementacja IWsdlExportExtension, która zajmuje się eksportem komunikatów WSDL oraz powiązań dla tej operacji. Typy schematów XML są eksportowane przy użyciu elementu XsdDataContractExporter. Określa DataContractSerializerOperationBehavior również użycie, styl oraz eksporter i importer schematu przeznaczone do tej operacji.
| Właściwości | Mapowanie WSDL |
|---|---|
DataContractFormatAttribute |
Właściwość Style dla tego atrybutu mapuje wartość wsdl:binding/wsdl:operation/soap:operation/@style dla operacji.Element DataContractSerializerOperationBehavior obsługuje tylko dosłowne wykorzystanie typów schematów w WSDL. |
The XmlSerializerOperationBehavior
Element XmlSerializerOperationBehavior dla operacji to implementacja IWsdlExportExtension, która zajmuje się eksportem komunikatów WSDL oraz powiązań dla tej operacji. Typy schematów XML są eksportowane przy użyciu elementu XmlSchemaExporter. Określa XmlSerializerOperationBehavior również użycie, styl oraz eksporter i importer schematu przeznaczone do tej operacji.
| Właściwości | Mapowanie WSDL |
|---|---|
XmlSerializerFormatAttribute |
Właściwość Style dla tego atrybutu mapuje wartość wsdl:binding/wsdl:operation/soap:operation/@style dla operacji.Właściwość Use tego atrybutu mapuje na wsdl:binding/wsdl:operation/soap:operation /*/@use wartości dla wszystkich komunikatów w operacji. |
Wiadomości
MessageDescription Wystąpienie jest mapowane na wsdl:message, do którego odnosi się komunikat wsdl:portType/wsdl:operation/wsdl:input lub wsdl:portType/wsdl:operation/wsdl:output w operacji. Element MessageDescription ma treść i nagłówki.
| Właściwości | Mapowanie WSDL |
|---|---|
Action |
Akcja SOAP lub WS-Addressing dla komunikatu. Pamiętaj, że operacje używające ciągu akcji "*" nie są reprezentowane w języku WSDL. |
Direction |
MessageDirection.Input odnosi się do wsdl:input.MessageDirection.Output odnosi się do wsdl:output. |
ProtectionLevel |
Asercje ochrony w polityce bezpieczeństwa związanej z definicją tego komunikatu wsdl:message. |
Body |
Treść wiadomości. |
Headers |
Nagłówki wiadomości. |
ContractDescription.Name, OperationContract.Name |
Podczas eksportu wykorzystywany do uzyskania wartości wsdl:message/@name. |
Treść wiadomości
Instancja MessageBodyDescription odwzorowuje się na definicje wsdl:message/wsdl:part treści komunikatu. Treść wiadomości może być opakowana lub bez opakowania.
| Właściwości | Mapowanie WSDL |
|---|---|
WrapperName |
Jeśli styl nie jest RPC, to WrapperName mapuje na nazwę elementu, do którego odnosi się wsdl:message/wsdl:part z @name ustawionym na "parametry". |
WrapperNamespace |
Jeśli styl nie jest RPC, to WrapperNamespace mapuje do przestrzeni nazw elementów dla wsdl:message/wsdl:part, przy czym @name jest ustawione na "parameters". |
Parts |
Części składające się na treść wiadomości. |
ReturnValue |
Element podrzędny elementu opakowującego, jeśli element opakowujący istnieje (styl opakowania dokumentu lub styl RPC), w przeciwnym razie pierwszy wsdl:message/wsdl:part we wiadomości. |
Części komunikatów
MessagePartDescription Wystąpienie odwzorowuje się na wsdl:message/wsdl:part oraz na typ schematu XML lub element, do którego wskazuje część komunikatu.
| Właściwości | Mapowanie WSDL |
|---|---|
Name |
Wartość wsd:message/wsdl:part/@name dla fragmentu komunikatu oraz nazwa elementu, do którego ten fragment wskazuje. |
Namespace |
Przestrzeń nazw elementu, do którego wskazuje część komunikatu. |
Index |
Indeks wsdl:message/wsdl:part komunikatu. |
ProtectionLevel |
Asercje ochrony są zawarte w zasadach zabezpieczeń dołączonych do wsdl:message definicji tej części komunikatu. Zasady są sparametryzowane, aby wskazać konkretną część komunikatu. |
MessageType |
Typ schematu XML elementu, do którego wskazuje część komunikatu. |
Nagłówki komunikatów
Wystąpienie MessageHeaderDescription jest częścią komunikatu, która również mapuje na soap:header powiązanie dla części komunikatu.
Błędów
FaultDescription Odnosi się do definicji wsdl:portType/wsdl:operation/wsdl:fault oraz powiązanej z nią definicji wsdl:message. Element wsdl:message jest dodawany do tej samej docelowej przestrzeni nazw co skojarzony z nim typ portu WSDL. Element wsdl:message ma jedną część wiadomości o nazwie "detail", która wskazuje na element schematu XML odpowiadający wartości właściwości DefaultType dla instancji FaultDescription.
| Właściwości | Mapowanie WSDL |
|---|---|
Name |
/wsdl:portType/wsdl:operation/wsdl:fault@name wartość błędu. |
Namespace |
Przestrzeń nazw elementu schematu XML, do której odnosi się część komunikatu dotycząca szczegółów błędu. |
Action |
Działanie SOAP lub WS-Addressing związane z błędem. |
ProtectionLevel |
Asercje ochrony w ramach zasad zabezpieczeń dołączonych do wsdl:message definicji tego błędu. |
DetailType |
Typ schematu XML elementu, do którego wskazuje część komunikatu szczegółowego. |
Name, ContractDescription.Name, OperationDescription.Name, |
Służy do uzyskiwania wsdl:message/@name wartości komunikatu o błędzie. |