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:binding hodnota /@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:input wsdl:operation a wsdl:portType /wsdl:operation /wsdl:output zprávy. |
Faults |
Definice wsdl:portType //wsdl:operation wsdl: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:operation wsdl: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:operation wsdl:binding /wsdl:operation / se mapuje na hodnotu /@style operace.Use Vlastnost tohoto atributusoap:operation wsdl: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:operation
wsdl:portType
wsdl: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:message hodnoty /@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:part wsdl:message /@name, na který odkazuje s nastaveným na "parameters". |
WrapperNamespace |
Pokud styl není RPC, mapuje WrapperNamespace se na obor názvů elementuwsdl:part wsdl: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:message
wsdl:portType
/wsdl:operation
wsdl: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:operation wsdl: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:message hodnoty /@name pro chybovou zprávu. |