Naslaginformatie over ServiceDescription en WSDL
In dit onderwerp wordt beschreven hoe WSDL-documenten (Web Services Description Language) met Windows Communication Foundation (WCF) worden toegewezen aan en van ServiceDescription exemplaren.
Hoe ServiceDescription Kaarten naar WSDL 1.1
U kunt WCF gebruiken om WSDL-documenten te exporteren vanuit een ServiceDescription exemplaar voor uw service. WSDL-documenten worden automatisch gegenereerd voor uw service wanneer u metagegevenseindpunten publiceert.
U kunt ook exemplaren, ContractDescription exemplaren en Binding exemplaren uit WSDL-documenten importeren ServiceEndpoint met behulp van het WsdlImporter
type.
De WSDL-documenten, geëxporteerd door WCF, importeren alle XML-schemadefinities die worden gebruikt uit externe XML-schemadocumenten. Er wordt een afzonderlijk XML-schemadocument geëxporteerd voor elke doelnaamruimte die door de gegevenstypen in de service wordt gebruikt. Op dezelfde manier wordt een afzonderlijk WSDL-document geëxporteerd voor elke doelnaamruimte die door de servicecontracten wordt gebruikt.
ServiceDescription
Een ServiceDescription exemplaar wordt toegewezen aan een wsdl:service
element. Een ServiceDescription exemplaar bevat een verzameling ServiceEndpoint exemplaren die elk zijn toegewezen aan afzonderlijke wsdl:port
elementen.
Eigenschappen | WSDL-toewijzing |
---|---|
Name |
De wsdl:service waarde /@name voor de service. |
Namespace |
De targetNamespace voor de wsdl:service definitie voor de service. |
Endpoints |
De wsdl:port definities voor de service. |
ServiceEndpoint
Een ServiceEndpoint exemplaar wordt toegewezen aan een wsdl:port
element. Een ServiceEndpoint exemplaar bevat een adres, een binding en een contract.
Eindpuntgedrag waarmee de IWsdlExportExtension interface wordt geïmplementeerd, kan het wsdl:port
element wijzigen voor het eindpunt waaraan ze zijn gekoppeld.
Eigenschappen | WSDL-toewijzing |
---|---|
Name |
De wsdl:port waarde /@name voor het eindpunt en de wsdl:binding /@name-waarde voor de eindpuntbinding. |
Address |
Het adres voor de wsdl:port definitie voor het eindpunt.Het transport voor het eindpunt bepaalt de indeling van het adres. Voor door WCF ondersteunde transporten kan dit bijvoorbeeld een SOAP-adres of een eindpuntverwijzing zijn. |
Binding |
De wsdl:binding definitie voor het eindpunt.In tegenstelling tot wsdl:binding definities zijn bindingen in WCF niet gekoppeld aan één contract. |
Contract |
De wsdl:portType definitie voor het eindpunt. |
Behaviors |
Eindpuntgedrag dat de IWsdlExportExtension interface implementeert, kan het wsdl:port voor het eindpunt wijzigen. |
Bindingen
Het bindingexemplaren voor een ServiceEndpoint
exemplaar worden toegewezen aan een wsdl:binding
definitie. In tegenstelling tot wsdl:binding
definities, die moeten worden gekoppeld aan een specifieke wsdl:portType
definitie, zijn WCF-bindingen onafhankelijk van elk contract.
Een binding bestaat uit een verzameling bindingselementen. Elk element beschrijft een bepaald aspect van hoe het eindpunt communiceert met clients. Daarnaast heeft een binding een MessageVersion binding die het EnvelopeVersion en AddressingVersion voor het eindpunt aangeeft.
Eigenschappen | WSDL-toewijzing |
---|---|
Name |
Wordt gebruikt in de standaardnaam van een eindpunt. Dit is de bindingsnaam waaraan de contractnaam is toegevoegd, gescheiden door een onderstrepingsteken. |
Namespace |
De targetNamespace voor de wsdl:binding definitie.Als er bij het importeren een beleid is gekoppeld aan de WSDL-poort, wordt de geïmporteerde bindingsnaamruimte toegewezen aan de targetNamespace wsdl:port definitie. |
BindingElementCollection , zoals geretourneerd door de CreateBindingElements () methode |
Verschillende domeinspecifieke extensies voor de wsdl:binding definitie, meestal beleidsverklaringen. |
MessageVersion |
Het EnvelopeVersion en AddressingVersion voor het eindpunt.Wanneer MessageVersion.None deze is opgegeven, bevat de WSDL-binding geen SOAP-binding en bevat de WSDL-poort geen WS-Adresseringsinhoud. Deze instelling wordt doorgaans gebruikt voor gewone OUDE XML-eindpunten (POX). |
BindingElements
De bindingselementen voor een eindpuntbinding worden toegewezen aan verschillende WSDL-extensies in de wsdl:binding
, zoals beleidsverklaringen.
De TransportBindingElement voor de binding bepaalt de transport Uniform Resource Identifier (URI) voor een SOAP-binding.
AddressingVersion
De AddressingVersion
op een binding wordt toegewezen aan de versie van adressering die wordt gebruikt in de wsd:port
. WCF ondersteunt SOAP 1.1- en SOAP 1.2-adressen en WS-Addressing 08/2004- en WS-Addressing 1.0-eindpuntverwijzingen.
EnvelopeVersion
De EnvelopeVersion
op een binding wordt toegewezen aan de versie van SOAP die wordt gebruikt in de wsdl:binding
. WCF ondersteunt SOAP 1.1- en SOAP 1.2-bindingen.
Contracten
Het ContractDescription exemplaar voor een ServiceEndpoint
exemplaar wordt toegewezen aan een wsdl:portType
. In ContractDescription
een exemplaar worden alle bewerkingen voor een bepaald contract beschreven.
Eigenschappen | WSDL-toewijzing |
---|---|
Name |
De wsdl:portType waarde /@name voor het contract. |
Namespace |
De targetNamespace voor de wsdl:portType definitie. |
SessionMode |
De wsdl:portType /@msc:usingSession-waarde voor het contract. Dit kenmerk is een WCF-extensie voor WSDL 1.1. |
Operations |
De wsdl:operation definities voor het contract. |
Operations
Een OperationDescription exemplaar wordt toegewezen aan een/wsdl:portType
wsdl:operation
. Een OperationDescription
bevat een verzameling MessageDescription
exemplaren die de berichten voor de bewerking beschrijven.
Twee werkingsgedragen nemen sterk deel aan hoe een OperationDescription
wordt toegewezen aan een WSDL-document: DataContractSerializerOperationBehavior
en XmlSerializerOperationBehavior
.
Eigenschappen | WSDL-toewijzing |
---|---|
Name |
De wsdl:portType /wsdl:operation waarde /@name voor de bewerking. |
ProtectionLevel |
Beveiligingsverklaringen in beveiligingsbeleid die zijn gekoppeld aan de wsdl:binding/wsdl:operation berichten voor deze bewerking. |
IsInitiating |
De wsdl:portType /wsdl:operation /@msc:isInitiating value for the operation. Dit kenmerk is een WCF-extensie voor WSDL 1.1. |
IsTerminating |
De wsdl:portType /wsdl:operation waarde /@msc:isTerminating voor de bewerking. Dit kenmerk is een WCF-extensie voor WSDL 1.1. |
Messages |
De wsdl:portType //wsdl:input wsdl:operation en wsdl:portType /wsdl:operation /wsdl:output berichten voor de bewerking. |
Faults |
De wsdl:portType //wsdl:operation wsdl:fault definities voor de bewerking. |
Behaviors |
De DataContractSerializerOperationBehavior bewerkingsbinding XmlSerializerOperationBehavior en de bewerkingsberichten verwerken. |
De DataContractSerializerOperationBehavior
De DataContractSerializerOperationBehavior
voor een bewerking is een IWsdlExportExtension
implementatie waarmee de WSDL-berichten en binding voor die bewerking worden geëxporteerd. De XML-schematypen worden geëxporteerd met behulp van de XsdDataContractExporter
. Het DataContractSerializerOperationBehavior
bepaalt ook het gebruik, de stijl en het schemaexporteur en de importeur die voor die bewerking moeten worden gebruikt.
Eigenschappen | WSDL-toewijzing |
---|---|
DataContractFormatAttribute |
De Style eigenschap voor dit kenmerk wordt toegewezen aan desoap:operation wsdl:binding /wsdl:operation / /@style-waarde voor de bewerking.De DataContractSerializerOperationBehavior functie ondersteunt alleen het letterlijke gebruik van de schematypen in de WSDL. |
De XmlSerializerOperationBehavior
De XmlSerializerOperationBehavior
voor een bewerking is een IWsdlExportExtension
implementatie waarmee de WSDL-berichten en binding voor die bewerking worden geëxporteerd. De XML-schematypen worden geëxporteerd met behulp van de XmlSchemaExporter
. Het XmlSerializerOperationBehavior
bepaalt ook het gebruik, de stijl en het schemaexporteur en de importeur die voor die bewerking moeten worden gebruikt.
Eigenschappen | WSDL-toewijzing |
---|---|
XmlSerializerFormatAttribute |
De Style eigenschap voor dit kenmerk wordt toegewezen aan desoap:operation wsdl:binding /wsdl:operation / /@style-waarde voor de bewerking.De Use eigenschap voor dit kenmerk wordt toegewezen aan desoap:operation wsdl:binding /wsdl:operation / waarden /*/@use voor alle berichten in de bewerking. |
Berichten
Een MessageDescription
exemplaar wordt toegewezen aan een wsdl:message
instantie waarnaar wordt verwezen door eenwsdl:operation
wsdl:input
/wsdl:portType
/ of eenwsdl:output
wsdl:portType
/wsdl:operation
/bericht in een bewerking. A MessageDescription
heeft een hoofdtekst en kopteksten.
Eigenschappen | WSDL-toewijzing |
---|---|
Action |
De soap- of WS-adresseringsactie voor het bericht. Bewerkingen die gebruikmaken van de actiereeks *, worden niet weergegeven in WSDL. |
Direction |
MessageDirection.Input wordt toegewezen aan wsdl:input .MessageDirection.Output wordt toegewezen aan wsdl:output . |
ProtectionLevel |
Beveiligingsverklaringen in beveiligingsbeleid die zijn gekoppeld aan de wsdl:message definitie voor dit bericht. |
Body |
De hoofdtekst van het bericht. |
Headers |
De kopteksten voor het bericht. |
ContractDescription.Name , OperationContract.Name |
Bij export wordt gebruikt om de wsdl:message /@name-waarde af te leiden. |
Berichttekst
Een MessageBodyDescription
exemplaar wordt toegewezen aan de wsdl:message
/wsdl:part
definities voor de hoofdtekst van een bericht. De hoofdtekst van het bericht kan worden verpakt of ontbloot.
Eigenschappen | WSDL-toewijzing |
---|---|
WrapperName |
Als de stijl niet RPC is, wordt de naam van het WrapperName element toegewezen waarnaar wordt verwezen door de met dewsdl:part wsdl:message /set @name 'parameters'. |
WrapperNamespace |
Als de stijl niet RPC is, wordt de WrapperNamespace naamruimte toegewezen aan de elementnaamruimte die iswsdl:part wsdl:message /@name ingesteld op 'parameters'. |
Parts |
De berichtonderdelen voor deze berichttekst. |
ReturnValue |
Het onderliggende element van het wrapper-element als er een wrapper-element bestaat (document verpakte stijl of RPC-stijl), anders de eerste wsdl:message /wsdl:part in het bericht. |
Berichtonderdelen
Een MessagePartDescription
exemplaar wordt toegewezen aan een wsdl:message
/wsdl:part
en het XML-schematype of -element waarnaar het berichtonderdeel verwijst.
Eigenschappen | WSDL-toewijzing |
---|---|
Name |
De wsd:message /wsdl:part waarde /@name voor het berichtonderdeel en de naam van het element waarnaar het berichtonderdeel verwijst. |
Namespace |
De naamruimte van het element waarnaar het berichtonderdeel verwijst. |
Index |
De index van het wsdl:message /wsdl:part bericht. |
ProtectionLevel |
Beveiligingsverklaringen in beveiligingsbeleid dat is gekoppeld aan de wsdl:message definitie voor dit berichtonderdeel. Het beleid wordt geparameteriseerd om naar het specifieke berichtonderdeel te verwijzen. |
MessageType |
Het XML-schematype van het element waarnaar het berichtonderdeel verwijst. |
Berichtkoppen
Een MessageHeaderDescription
exemplaar is een berichtonderdeel dat ook wordt toegewezen aan een soap:header
binding voor het berichtonderdeel.
Storingen
Een FaultDescription
exemplaar wordt toegewezen aan eenwsdl:operation
//wsdl:portType
wsdl:fault
definitie en de bijbehorende wsdl:message
definitie. De wsdl:message
naamruimte wordt toegevoegd aan dezelfde doelnaamruimte als het bijbehorende WSDL-poorttype. Het wsdl:message
heeft één berichtonderdeel met de naam 'detail' dat verwijst naar het XML-schema-element dat overeenkomt met de DefaultType
eigenschapswaarde voor het FaultDescription
exemplaar.
Eigenschappen | WSDL-toewijzing |
---|---|
Name |
De wsdl:portType //wsdl:operation wsdl:fault /@name-waarde voor de fout. |
Namespace |
De naamruimte van het XML-schema-element waarnaar het onderdeel foutdetails verwijst. |
Action |
De SOAP- of WS-adresseringsactie voor de fout. |
ProtectionLevel |
Beveiligingsverklaringen in beveiligingsbeleid die zijn gekoppeld aan de wsdl:message definitie voor deze fout. |
DetailType |
Het XML-schematype van het element waarnaar het detailberichtonderdeel verwijst. |
Name, ContractDescription.Name, OperationDescription.Name, |
Wordt gebruikt om de wsdl:message /@name-waarde voor het foutbericht af te leiden. |