Udostępnij za pośrednictwem


Odwołania do elementu ServiceDescription i kodu WSDL

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ń.

How ServiceDescription Mapy to WSDL 1.1

Za pomocą programu WCF można wyeksportować dokumenty WSDL z ServiceDescription wystąpienia usługi. Dokumenty WSDL są generowane automatycznie dla usługi podczas publikowania punktów końcowych metadanych.

Możesz również importować ServiceEndpoint wystąpienia, ContractDescription wystąpienia i Binding wystąpienia z dokumentów WSDL przy użyciu WsdlImporter typu .

Dokumenty WSDL wyeksportowane przez usługę WCF zaimportuj wszystkie definicje schematu XML używane z zewnętrznych dokumentów schematu XML. Oddzielny dokument schematu XML jest eksportowany dla każdej docelowej przestrzeni nazw używanej w usłudze. Podobnie oddzielny dokument WSDL jest eksportowany dla każdej docelowej przestrzeni nazw używanej przez kontrakty usług.

Servicedescription

ServiceDescription Wystąpienie mapuje na wsdl:service element. Wystąpienie ServiceDescription zawiera kolekcję ServiceEndpoint wystąpień, które każda mapuje na poszczególne wsdl:port elementy.

Właściwości Mapowanie WSDL
Name / wsdl:service@name wartość dla usługi.
Namespace TargetNamespace dla wsdl:service definicji usługi.
Endpoints Definicje wsdl:port usługi.

ServiceEndpoint

ServiceEndpoint Wystąpienie mapuje na wsdl:port element. Wystąpienie ServiceEndpoint zawiera adres, powiązanie i kontrakt.

Zachowania punktów końcowych implementujące IWsdlExportExtension interfejs mogą modyfikować wsdl:port element dla punktu końcowego, do którego są dołączone.

Właściwości Mapowanie WSDL
Name / wsdl:port@name wartość punktu końcowego i wsdl:binding/@name dla powiązania punktu końcowego.
Address Adres wsdl:port definicji 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 wsdl:binding definicji powiązania w programie WCF nie są powiązane z żadnym kontraktem.
Contract Definicja wsdl:portType punktu końcowego.
Behaviors Zachowania punktów końcowych, które implementują IWsdlExportExtension interfejs, mogą modyfikować wsdl:port dla punktu końcowego.

Powiązania

Wystąpienie powiązania dla ServiceEndpoint wystąpienia mapuje 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.

Powiązanie składa się z kolekcji elementów powiązania. Każdy element opisuje pewien aspekt sposobu komunikowania się punktu końcowego z klientami. Ponadto powiązanie ma MessageVersion wartość , która wskazuje EnvelopeVersion element i AddressingVersion dla 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łączona przez podkreślenie.
Namespace Element targetNamespace dla wsdl:binding definicji.

Podczas importowania, jeśli zasady są dołączone do portu WSDL, zaimportowana przestrzeń nazw powiązania jest mapowana na targetNamespace definicję wsdl:port .
BindingElementCollection, zwracana przez metodę CreateBindingElements() Różne rozszerzenia specyficzne dla domeny do wsdl:binding definicji, zazwyczaj asercji zasad.
MessageVersion Parametr EnvelopeVersion i AddressingVersion dla punktu końcowego.

Po MessageVersion.None określeniu powiązania WSDL nie zawiera powiązania protokołu SOAP, a port WSDL nie zawiera zawartości adresowania WS. To ustawienie jest zwykle używane dla zwykłych starych punktów końcowych XML (POX).

BindingElements

Elementy powiązania dla powiązania punktu końcowego są mapować na różne rozszerzenia WSDL w obiekcie wsdl:binding, takie jak asercji zasad.

Dla TransportBindingElement powiązania określa transport Uniform Resource Identifier (URI) dla powiązania protokołu SOAP.

Addressingversion

Element AddressingVersion on a binding mapuje wersję adresowania używanego w pliku wsd:port. WCF obsługuje adresy PROTOKOŁU SOAP 1.1 i SOAP 1.2 oraz adresowanie WS-08/2004 i odwołania do punktów końcowych WS-Addressing 1.0.

Envelopeversion

Element EnvelopeVersion on a binding mapuje na wersję protokołu SOAP używaną w pliku wsdl:binding. WCF obsługuje powiązania protokołu SOAP 1.1 i SOAP 1.2.

Kontrakty

ContractDescription Wystąpienie wystąpienia ServiceEndpoint mapuje na element 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 wsdl:portType definicji.
SessionMode Wartość wsdl:portType/@msc:usingSession dla kontraktu. Ten atrybut jest rozszerzeniem WCF dla WSDL 1.1.
Operations Definicje wsdl:operation kontraktu.

Operacje

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 w dużym stopniu uczestniczą w sposobie mapowania elementu OperationDescription na dokument WSDL: DataContractSerializerOperationBehavior i XmlSerializerOperationBehavior.

Właściwości Mapowanie WSDL
Name / wsdl:portType/wsdl:operation@name wartość dla operacji.
ProtectionLevel Asercji ochrony 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:inputwsdl:operationi wsdl:portType/wsdl:operation/wsdl:output dla operacji.
Faults Definicje wsdl:portType//wsdl:operationwsdl: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 eksportuje komunikaty WSDL i powiązanie dla tej operacji. Typy schematów XML są eksportowane przy użyciu elementu XsdDataContractExporter. Określa DataContractSerializerOperationBehavior również użycie, styl i eksporter schematu oraz importer do użycia dla tej operacji.

Właściwości Mapowanie WSDL
DataContractFormatAttribute Właściwość Style dla tego atrybutu mapuje wartość wsdl:binding//wsdl:operationsoap:operation/@style dla operacji.

Element DataContractSerializerOperationBehavior obsługuje tylko literał użycia typów schematów w języku WSDL.

The XmlSerializerOperationBehavior

Element XmlSerializerOperationBehavior dla operacji to implementacja IWsdlExportExtension , która eksportuje komunikaty WSDL i powiązanie dla tej operacji. Typy schematów XML są eksportowane przy użyciu elementu XmlSchemaExporter. Określa XmlSerializerOperationBehavior również użycie, styl i eksporter schematu oraz importer do użycia dla tej operacji.

Właściwości Mapowanie WSDL
XmlSerializerFormatAttribute Właściwość Style dla tego atrybutu mapuje wartość wsdl:binding//wsdl:operationsoap:operation/@style dla operacji.

Właściwość Use tego atrybutu mapuje nasoap:operationwsdl:binding/wsdl:operation/ /*/@use wartości dla wszystkich komunikatów w operacji.

Wiadomości

MessageDescription Wystąpienie jest mapowane na elementwsdl:message,wsdl:operationwsdl:input/wsdl:portType/ do którego odwołuje się komunikat lubwsdl:outputwsdl:portType/wsdl:operation/w operacji. Element MessageDescription ma treść i nagłówki.

Właściwości Mapowanie WSDL
Action Akcja adresowania SOAP lub WS dla komunikatu.

Pamiętaj, że operacje używające ciągu akcji "*" nie są reprezentowane w języku WSDL.
Direction MessageDirection.Input mapuje na wsdl:input.

MessageDirection.Output mapuje na wsdl:output.
ProtectionLevel Asercji ochrony w zasadach zabezpieczeń dołączonych do definicji tego komunikatu wsdl:message .
Body Treść wiadomości dla wiadomości.
Headers Nagłówki wiadomości.
ContractDescription.Name, OperationContract.Name Podczas eksportowania użyto wsdl:messagewartości /@name.

Treść wiadomości

MessageBodyDescription Wystąpienie mapuje na wsdl:message/wsdl:part definicje treści komunikatu. Treść wiadomości może być opakowana lub naga.

Właściwości Mapowanie WSDL
WrapperName Jeśli styl nie jest RPC, WrapperName mapuje na nazwę elementu, do których odwołuje się element z @name ustawionym wsdl:message/wsdl:part na "parameters".
WrapperNamespace Jeśli styl nie jest RPC, mapuje WrapperNamespace na przestrzeń nazw elementów dlawsdl:partwsdl:message/elementu @name z ustawionym na "parameters".
Parts Części wiadomości dla tej treści wiadomości.
ReturnValue Element podrzędny elementu otoki, jeśli istnieje element otoki (styl opakowany dokumentu lub styl RPC), w przeciwnym razie pierwszy wsdl:message/wsdl:part w komunikacie.

Części komunikatów

MessagePartDescription Wystąpienie mapuje na wsdl:message/wsdl:part typ schematu XML i lub element, do którego wskazuje część komunikatu.

Właściwości Mapowanie WSDL
Name / wsd:message/wsdl:part@name wartość dla części komunikatu i nazwę elementu, do którego wskazuje część komunikatu.
Namespace Przestrzeń nazw elementu, do którego wskazuje część komunikatu.
Index Indeks wsdl:message/wsdl:part komunikatu.
ProtectionLevel Asercji ochrony 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łędy

FaultDescription Wystąpienie mapuje na definicjęwsdl:operation//wsdl:portTypewsdl:fault i powiązaną z wsdl:message nią definicję. Element wsdl:message jest dodawany do tej samej docelowej przestrzeni nazw co skojarzony z nim typ portu WSDL. Element wsdl:message ma jedną część komunikatu o nazwie "detail", która wskazuje element schematu XML odpowiadający DefaultType wartości właściwości dla FaultDescription wystąpienia.

Właściwości Mapowanie WSDL
Name /wsdl:portType//wsdl:operationwsdl:fault@name wartość błędu.
Namespace Przestrzeń nazw elementu schematu XML wskazująca część komunikatu szczegóły błędu.
Action Akcja adresowania SOAP lub WS dla błędu.
ProtectionLevel Asercji ochrony w zasadach 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.

Zobacz też