Sdílet prostřednictvím


ServiceDescription and WSDL Reference

Toto téma popisuje, jak Windows Communication Foundation (WCF) mapuje dokumenty WSDL (Web Services Description Language) do a z ServiceDescription instancí.

Jak Mapy ServiceDescription do WSDL 1.1

Wcf můžete použít k exportu dokumentů WSDL z ServiceDescription instance pro vaši službu. Při publikování koncových bodů metadat se pro vaši službu automaticky generují dokumenty WSDL.

Pomocí typu WsdlImporter můžete také importovat ServiceEndpoint instance, ContractDescription instance a Binding instance z dokumentů WSDL.

Dokumenty WSDL, exportované WCF, importují všechny definice schématu XML používané z externích dokumentů schématu XML. Pro každý cílový obor názvů se exportuje samostatný dokument schématu XML, který datové typy používají ve službě. Stejně tak se pro každý cílový obor názvů, který kontrakty služeb používají, exportuje samostatný dokument WSDL.

Servicedescription

ServiceDescription Instance se mapuje na wsdl:service prvek. Instance ServiceDescription obsahuje kolekci ServiceEndpoint instancí, které se každý mapuje na jednotlivé wsdl:port prvky.

Vlastnosti Mapování WSDL
Name Hodnota wsdl:service/@name pro službu.
Namespace TargetNamespace pro definici wsdl:service služby.
Endpoints Definice wsdl:port služby.

ServiceEndpoint

ServiceEndpoint Instance se mapuje na wsdl:port prvek. Instance ServiceEndpoint obsahuje adresu, vazbu a kontrakt.

Chování koncových bodů, které implementují IWsdlExportExtension rozhraní, může upravit wsdl:port prvek pro koncový bod, ke kterému jsou připojeny.

Vlastnosti Mapování WSDL
Name Hodnota wsdl:port/@name koncového bodu a wsdl:bindinghodnota /@name vazby koncového bodu.
Address Adresa wsdl:port definice koncového bodu.

Přenos koncového bodu určuje formát adresy. Například u přenosů podporovaných wcf může být adresa SOAP nebo odkaz na koncový bod.
Binding Definice wsdl:binding koncového bodu.

Na rozdíl od wsdl:binding definic nejsou vazby wcf vázány na žádný kontrakt.
Contract Definice wsdl:portType koncového bodu.
Behaviors Chování koncových bodů, které implementují IWsdlExportExtension rozhraní, může upravit wsdl:port koncový bod.

Vazby

Instance vazby instance ServiceEndpoint se mapuje na definici wsdl:binding . Na rozdíl od wsdl:binding definic, které musí být přidruženy ke konkrétní wsdl:portType definici, vazby WCF jsou nezávislé na jakémkoli kontraktu.

Vazba se skládá z kolekce prvků vazby. Každý prvek popisuje určitý aspekt komunikace koncového bodu s klienty. Kromě toho má MessageVersion vazba, která označuje EnvelopeVersion koncový bod a AddressingVersion pro tento koncový bod.

Vlastnosti Mapování WSDL
Name Používá se ve výchozím názvu koncového bodu, což je název vazby s názvem kontraktu připojeným podtržítkem.
Namespace wsdl:binding DefinicetargetNamespace.

Při importu se při připojení zásady k portu WSDL importovaný obor názvů vazeb mapuje na targetNamespace definici wsdl:port .
BindingElementCollection, vrácená metodou CreateBindingElements() Různá rozšíření wsdl:binding pro konkrétní doménu definice, obvykle kontrolní výrazy zásad.
MessageVersion Koncový EnvelopeVersion bod a AddressingVersion pro tento koncový bod.

Pokud MessageVersion.None je zadána, vazba WSDL neobsahuje vazbu SOAP a port WSDL neobsahuje obsah WS-Adresování. Toto nastavení se obvykle používá pro běžné staré koncové body XML (POX).

BindingElements

Prvky vazby pro vazbu koncového bodu se mapují na různá rozšíření WSDL v objektu wsdl:binding, jako jsou kontrolní výrazy zásad.

Pro TransportBindingElement vazbu určuje transport Uniform Resource Identifier (URI) pro vazbu SOAP.

Adresní verze

Na AddressingVersion vazbě se mapuje na verzi adresování použitou v sadě wsd:port. WCF podporuje adresy SOAP 1.1 a SOAP 1.2 a odkazy na koncové body WS-Addressing 08/2004 a WS-Addressing 1.0.

ObálkaVersion

Na EnvelopeVersion vazbě se mapuje na verzi protokolu SOAP použitého v nástroji wsdl:binding. WCF podporuje vazby SOAP 1.1 a SOAP 1.2.

Smlouvy

Instance ContractDescription instance ServiceEndpoint se mapuje na .wsdl:portType Instance ContractDescription popisuje všechny operace pro daný kontrakt.

Vlastnosti Mapování WSDL
Name Hodnota wsdl:portType/@name kontraktu.
Namespace TargetNamespace pro definici wsdl:portType .
SessionMode Hodnota wsdl:portType/@msc:usingSession pro kontrakt. Tento atribut je rozšíření WCF pro WSDL 1.1.
Operations Definice wsdl:operation kontraktu.

Operace

Instance OperationDescription se mapuje na .wsdl:portType/wsdl:operation Obsahuje OperationDescription kolekci MessageDescription instancí, které popisují zprávy pro operaci.

Dvě chování operací se výrazně podílí na tom, jak OperationDescription je mapován na dokument WSDL: DataContractSerializerOperationBehavior a XmlSerializerOperationBehavior.

Vlastnosti Mapování WSDL
Name Hodnota wsdl:portType/wsdl:operation/@name operace.
ProtectionLevel Kontrolní výrazy ochrany v zásadách zabezpečení připojených wsdl:binding/wsdl:operation ke zprávám pro tuto operaci.
IsInitiating Hodnota wsdl:portType/wsdl:operation/@msc:isInitiating pro operaci. Tento atribut je rozšíření WCF pro WSDL 1.1.
IsTerminating Hodnota wsdl:portType/wsdl:operation/@msc:isTerminating pro operaci. Tento atribut je rozšíření WCF pro WSDL 1.1.
Messages Operace wsdl:portType//wsdl:inputwsdl:operationa wsdl:portType/wsdl:operation/wsdl:output zprávy.
Faults Definice wsdl:portType//wsdl:operationwsdl:fault operace.
Behaviors XmlSerializerOperationBehavior Vazby DataContractSerializerOperationBehavior operací a zprávy operací.

The DataContractSerializerOperationBehavior

Operace DataContractSerializerOperationBehavior je IWsdlExportExtension implementace, která exportuje zprávy WSDL a vazbu pro danou operaci. Typy schémat XML jsou exportovány pomocí .XsdDataContractExporter Určuje DataContractSerializerOperationBehavior také použití, styl a vývozce schématu a dovozce, které se mají pro tuto operaci použít.

Vlastnosti Mapování WSDL
DataContractFormatAttribute Style Vlastnost tohoto atributusoap:operationwsdl:binding/wsdl:operation/ se mapuje na hodnotu /@style operace.

Podporuje DataContractSerializerOperationBehavior pouze literální použití typů schématu v WSDL.

The XmlSerializerOperationBehavior

Operace XmlSerializerOperationBehavior je IWsdlExportExtension implementace, která exportuje zprávy WSDL a vazbu pro danou operaci. Typy schémat XML jsou exportovány pomocí .XmlSchemaExporter Určuje XmlSerializerOperationBehavior také použití, styl a vývozce schématu a dovozce, které se mají pro tuto operaci použít.

Vlastnosti Mapování WSDL
XmlSerializerFormatAttribute Style Vlastnost tohoto atributusoap:operationwsdl:binding/wsdl:operation/ se mapuje na hodnotu /@style operace.

Use Vlastnost tohoto atributusoap:operationwsdl:binding/wsdl:operation/ se mapuje na hodnoty /*/@use pro všechny zprávy v operaci.

Zprávy

MessageDescription Instance se mapuje na wsdl:message odkaz, na/wsdl:operationwsdl:portTypewsdl:input/ který odkazuje operace nebo na wsdl:portType/wsdl:operation/wsdl:output zprávu. A MessageDescription má tělo a záhlaví.

Vlastnosti Mapování WSDL
Action Akce SOAP nebo WS-Adresování zprávy.

Všimněte si, že operace, které používají řetězec akce "*", nejsou ve WSDL reprezentovány.
Direction MessageDirection.Input mapuje na wsdl:input.

MessageDirection.Output mapuje na wsdl:output.
ProtectionLevel Kontrolní výrazy ochrany v zásadách zabezpečení připojené k wsdl:message definici této zprávy.
Body Text zprávy.
Headers Záhlaví zprávy.
ContractDescription.Name, OperationContract.Name Při exportu se používá k odvození wsdl:messagehodnoty /@name.

Text zprávy

MessageBodyDescription Instance se mapuje na wsdl:message/wsdl:part definice textu zprávy. Text zprávy může být zabalený nebo holý.

Vlastnosti Mapování WSDL
WrapperName Pokud styl není RPC, WrapperName mapuje se na název elementuwsdl:partwsdl:message/@name, na který odkazuje s nastaveným na "parameters".
WrapperNamespace Pokud styl není RPC, mapuje WrapperNamespace se na obor názvů elementuwsdl:partwsdl:message/s nastaveným @name na "parameters".
Parts Části zprávy pro text této zprávy.
ReturnValue Podřízený prvek elementu obálky, pokud existuje element obálky (styl zabaleného dokumentu nebo RPC), jinak první wsdl:message/wsdl:part ve zprávě.

Části zpráv

MessagePartDescription Instance se mapuje na wsdl:message/wsdl:part typ nebo element schématu XML, na který část zprávy odkazuje.

Vlastnosti Mapování WSDL
Name Hodnota wsd:message/wsdl:part/@name pro část zprávy a název prvku, na který část zprávy odkazuje.
Namespace Obor názvů elementu, na který část zprávy odkazuje.
Index Index wsdl:message/wsdl:part zprávy.
ProtectionLevel Kontrolní výrazy ochrany v zásadách zabezpečení připojené k wsdl:message definici této části zprávy. Zásada je parametrizována tak, aby odkazovat na konkrétní část zprávy.
MessageType Typ schématu XML elementu, na který část zprávy odkazuje.

Záhlaví zpráv

Instance MessageHeaderDescription je část zprávy, která se také mapuje na soap:header vazbu pro část zprávy.

Chyby

FaultDescription Instance se mapuje na definici a její přidruženou/wsdl:messagewsdl:portType/wsdl:operationwsdl:fault definici. Přidá se wsdl:message do stejného cílového oboru názvů jako přidružený typ portu WSDL. Má wsdl:message jednu část zprávy s názvem "detail", která odkazuje na element schématu XML, který odpovídá DefaultType hodnotě vlastnosti instance FaultDescription .

Vlastnosti Mapování WSDL
Name Hodnota wsdl:portType//wsdl:operationwsdl:fault/@name chyby.
Namespace Obor názvů elementu schématu XML, na který odkazuje část zprávy podrobností o chybě.
Action Akce SOAP nebo WS-Adresování chyby.
ProtectionLevel Kontrolní výrazy ochrany v zásadách zabezpečení připojené k wsdl:message definici této chyby.
DetailType Typ schématu XML elementu, na který část podrobné zprávy odkazuje.
Name, ContractDescription.Name, OperationDescription.Name, Slouží k odvození wsdl:messagehodnoty /@name pro chybovou zprávu.

Viz také