ServiceDescription- och WSDL-referens
I det här avsnittet beskrivs hur Windows Communication Foundation (WCF) mappar WSDL-dokument (Web Services Description Language) till och från ServiceDescription instanser.
Så här Kartor ServiceDescription till WSDL 1.1
Du kan använda WCF för att exportera WSDL-dokument från en ServiceDescription instans för din tjänst. WSDL-dokument genereras automatiskt för din tjänst när du publicerar metadataslutpunkter.
Du kan också importera ServiceEndpoint instanser, ContractDescription instanser och Binding instanser från WSDL-dokument med hjälp av WsdlImporter
typen .
WSDL-dokumenten, som exporteras av WCF, importerar alla XML-schemadefinitioner som används från externa XML-schemadokument. Ett separat XML-schemadokument exporteras för varje målnamnområde som datatyperna använder i tjänsten. På samma sätt exporteras ett separat WSDL-dokument för varje målnamnområde som tjänstkontrakten använder.
Servicedescription
En ServiceDescription instans mappar till ett wsdl:service
element. En ServiceDescription instans innehåller en samling ServiceEndpoint instanser som varje mappning till enskilda wsdl:port
element.
Egenskaper | WSDL-mappning |
---|---|
Name |
Värdet wsdl:service /@name för tjänsten. |
Namespace |
TargetNamespace för wsdl:service definitionen för tjänsten. |
Endpoints |
Definitionerna wsdl:port för tjänsten. |
ServiceEndpoint
En ServiceEndpoint instans mappar till ett wsdl:port
element. En ServiceEndpoint instans innehåller en adress, en bindning och ett kontrakt.
Slutpunktsbeteenden som implementerar IWsdlExportExtension gränssnittet kan ändra elementet wsdl:port
för slutpunkten som de är kopplade till.
Egenskaper | WSDL-mappning |
---|---|
Name |
Värdet wsdl:port /@name för slutpunkten och wsdl:binding värdet /@name för slutpunktsbindningen. |
Address |
Adressen för wsdl:port definitionen för slutpunkten.Transporten för slutpunkten avgör formatet på adressen. För transporter som stöds av WCF kan det till exempel vara en SOAP-adress eller en slutpunktsreferens. |
Binding |
Definitionen wsdl:binding för slutpunkten.Till skillnad från wsdl:binding definitioner är bindningar i WCF inte knutna till något kontrakt. |
Contract |
Definitionen wsdl:portType för slutpunkten. |
Behaviors |
Slutpunktsbeteenden som implementerar IWsdlExportExtension gränssnittet kan ändra wsdl:port för slutpunkten. |
Bindningar
Bindningsinstansen för en ServiceEndpoint
instans mappar till en wsdl:binding
definition. Till skillnad från wsdl:binding
definitioner, som måste associeras med en specifik wsdl:portType
definition, är WCF-bindningar oberoende av något kontrakt.
En bindning består av en samling bindningselement. Varje element beskriver någon aspekt av hur slutpunkten kommunicerar med klienter. Dessutom har en bindning en MessageVersion som anger EnvelopeVersion och AddressingVersion för slutpunkten.
Egenskaper | WSDL-mappning |
---|---|
Name |
Används i standardnamnet för en slutpunkt, som är bindningsnamnet med kontraktnamnet som läggs till avgränsat med ett understreck. |
Namespace |
För targetNamespace wsdl:binding definitionen.Om en princip är kopplad till WSDL-porten vid import mappar det importerade bindningsnamnområdet till targetNamespace för wsdl:port definitionen. |
BindingElementCollection , som returneras av CreateBindingElements metoden () |
Olika domänspecifika tillägg till wsdl:binding definitionen, vanligtvis principkontroller. |
MessageVersion |
Och EnvelopeVersion AddressingVersion för slutpunkten.När MessageVersion.None har angetts innehåller WSDL-bindningen ingen SOAP-bindning och WSDL-porten innehåller inte WS-Adresseringsinnehåll. Den här inställningen används vanligtvis för vanliga gamla XML-slutpunkter (POX). |
BindingElements
Bindningselementen för en slutpunktsbindningskarta till olika WSDL-tillägg i wsdl:binding
, till exempel principkontroller.
TransportBindingElement För bindningen avgör transportens URI (Uniform Resource Identifier) för en SOAP-bindning.
AddressingVersion
På AddressingVersion
en bindning mappas till den version av adressering som används i wsd:port
. WCF stöder SOAP 1.1- och SOAP 1.2-adresser samt WS-Addressing 08/2004- och WS-Addressing 1.0-slutpunktsreferenser.
EnvelopeVersion
På EnvelopeVersion
en bindning mappar till versionen av SOAP som används i wsdl:binding
. WCF stöder SOAP 1.1- och SOAP 1.2-bindningar.
Kontrakt
Instansen ContractDescription för en ServiceEndpoint
instans mappar till en wsdl:portType
. En ContractDescription
instans beskriver alla åtgärder för ett visst kontrakt.
Egenskaper | WSDL-mappning |
---|---|
Name |
Värdet wsdl:portType /@name för kontraktet. |
Namespace |
TargetNamespace för wsdl:portType definitionen. |
SessionMode |
Värdet wsdl:portType /@msc:usingSession för kontraktet. Det här attributet är ett WCF-tillägg för WSDL 1.1. |
Operations |
Definitionerna wsdl:operation för kontraktet. |
Operations
En OperationDescription instans mappar till en/wsdl:portType
wsdl:operation
. En OperationDescription
innehåller en samling MessageDescription
instanser som beskriver meddelandena för åtgärden.
Två åtgärdsbeteenden har stor betydelse för hur en OperationDescription
mappas till ett WSDL-dokument: DataContractSerializerOperationBehavior
och XmlSerializerOperationBehavior
.
Egenskaper | WSDL-mappning |
---|---|
Name |
Värdet wsdl:portType /wsdl:operation /@name för åtgärden. |
ProtectionLevel |
Skyddskontroller i säkerhetsprinciper som är kopplade till meddelandena wsdl:binding/wsdl:operation för den här åtgärden. |
IsInitiating |
Värdet wsdl:portType /wsdl:operation /@msc:isInitiating för åtgärden. Det här attributet är ett WCF-tillägg för WSDL 1.1. |
IsTerminating |
Värdet wsdl:portType /wsdl:operation /@msc:isTerminating för åtgärden. Det här attributet är ett WCF-tillägg för WSDL 1.1. |
Messages |
Meddelandena wsdl:portType //wsdl:operation wsdl:input ochwsdl:output wsdl:portType /wsdl:operation /för åtgärden. |
Faults |
Definitionerna wsdl:portType //wsdl:operation wsdl:fault för åtgärden. |
Behaviors |
Och DataContractSerializerOperationBehavior XmlSerializerOperationBehavior hantera åtgärdsbindningen och åtgärdsmeddelandena. |
The DataContractSerializerOperationBehavior
DataContractSerializerOperationBehavior
För en åtgärd är en IWsdlExportExtension
implementering som exporterar WSDL-meddelanden och bindning för den åtgärden. XML-schematyperna exporteras med hjälp av XsdDataContractExporter
. Avgör DataContractSerializerOperationBehavior
även vilken användning, formatmall och schemaexportör och importör som ska användas för åtgärden.
Egenskaper | WSDL-mappning |
---|---|
DataContractFormatAttribute |
Egenskapen Style för det här attributet mappar till wsdl:binding //wsdl:operation soap:operation värdet /@style för åtgärden.Stöder DataContractSerializerOperationBehavior endast literal användning av schematyperna i WSDL. |
The XmlSerializerOperationBehavior
XmlSerializerOperationBehavior
För en åtgärd är en IWsdlExportExtension
implementering som exporterar WSDL-meddelanden och bindning för den åtgärden. XML-schematyperna exporteras med hjälp av XmlSchemaExporter
. Avgör XmlSerializerOperationBehavior
även vilken användning, formatmall och schemaexportör och importör som ska användas för åtgärden.
Egenskaper | WSDL-mappning |
---|---|
XmlSerializerFormatAttribute |
Egenskapen Style för det här attributet mappar till wsdl:binding //wsdl:operation soap:operation värdet /@style för åtgärden.Egenskapen Use för det här attributet mappar till wsdl:binding //wsdl:operation soap:operation värdena /*/@use för alla meddelanden i åtgärden. |
Meddelanden
En MessageDescription
instans mappas till en wsdl:message
som refereras av ettwsdl:operation
wsdl:input
/wsdl:portType
/ eller ettwsdl:output
wsdl:portType
/wsdl:operation
/meddelande i en åtgärd. A MessageDescription
har en brödtext och rubriker.
Egenskaper | WSDL-mappning |
---|---|
Action |
Åtgärden SOAP eller WS-Addressing för meddelandet. Observera att åtgärder som använder åtgärdssträngen "*" inte representeras i WSDL. |
Direction |
MessageDirection.Input mappar till wsdl:input .MessageDirection.Output mappar till wsdl:output . |
ProtectionLevel |
Skyddskontroller i säkerhetsprinciper som är kopplade till wsdl:message definitionen för det här meddelandet. |
Body |
Meddelandets meddelandetext. |
Headers |
Sidhuvudena för meddelandet. |
ContractDescription.Name , OperationContract.Name |
Vid export används för att härleda wsdl:message värdet /@name. |
Meddelandetext
En MessageBodyDescription
instans mappar till wsdl:message
/wsdl:part
definitionerna för brödtexten i ett meddelande. Meddelandetexten kan vara omsluten eller tom.
Egenskaper | WSDL-mappning |
---|---|
WrapperName |
Om formatmallen inte är RPC mappar den WrapperName till elementnamnet som refereras avwsdl:part wsdl:message /med @name värdet "parameters". |
WrapperNamespace |
Om formatmallen inte är RPC mappar den WrapperNamespace till elementnamnområdet förwsdl:part wsdl:message /med @name inställt på "parametrar". |
Parts |
Meddelandedelarna för den här meddelandetexten. |
ReturnValue |
Det underordnade elementet i omslutningselementet om det finns ett omslutningselement (dokumentomslutningsformat eller RPC-format), annars det första wsdl:message /wsdl:part i meddelandet. |
Meddelandedelar
En MessagePartDescription
instans mappar till en wsdl:message
/wsdl:part
och XML-schematypen eller -elementet som meddelandedelen pekar på.
Egenskaper | WSDL-mappning |
---|---|
Name |
Värdet wsd:message /wsdl:part /@name för meddelandedelen och namnet på elementet som meddelandedelen pekar på. |
Namespace |
Namnområdet för elementet som meddelandedelen pekar på. |
Index |
Indexet för wsdl:message /wsdl:part meddelandet. |
ProtectionLevel |
Skyddskontroller i säkerhetsprincipen wsdl:message som är kopplad till definitionen för den här meddelandedelen. Principen parametriseras för att peka på den specifika meddelandedelen. |
MessageType |
XML-schematypen för elementet som meddelandedelen pekar på. |
Meddelandehuvuden
En MessageHeaderDescription
instans är en meddelandedel som även mappar till en soap:header
bindning för meddelandedelen.
Fel
En FaultDescription
instans mappar till enwsdl:operation
//wsdl:portType
wsdl:fault
definition och dess associerade wsdl:message
definition. wsdl:message
Läggs till i samma målnamnområde som dess associerade WSDL-porttyp. wsdl:message
Har en enda meddelandedel med namnet "detail" som pekar på XML-schemaelementet som motsvarar egenskapsvärdet DefaultType
för instansenFaultDescription
.
Egenskaper | WSDL-mappning |
---|---|
Name |
Värdet wsdl:portType //wsdl:operation wsdl:fault /@name för felet. |
Namespace |
Namnområdet för XML-schemaelementet som meddelandedelen med felinformation pekar på. |
Action |
Soap- eller WS-Addressing-åtgärden för felet. |
ProtectionLevel |
Skyddskontroller i säkerhetsprincipen wsdl:message som är kopplad till definitionen för det här felet. |
DetailType |
XML-schematypen för elementet som informationsmeddelandedelen pekar på. |
Name, ContractDescription.Name, OperationDescription.Name, |
Används för att härleda wsdl:message värdet /@name för felmeddelandet. |