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:operation
element . 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:input wsdl:operation 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 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:operation soap: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:operation soap:operation /@style dla operacji.Właściwość Use tego atrybutu mapuje nasoap:operation wsdl:binding /wsdl:operation / /*/@use wartości dla wszystkich komunikatów w operacji. |
Wiadomości
MessageDescription
Wystąpienie jest mapowane na elementwsdl:message
,wsdl:operation
wsdl:input
/wsdl:portType
/ do którego odwołuje się komunikat lubwsdl:output
wsdl: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:message wartoś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:part wsdl: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:portType
wsdl: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:operation wsdl: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. |