Megosztás a következőn keresztül:


ServiceDescription és WSDL-referencia

Ez a témakör azt ismerteti, hogy a Windows Communication Foundation (WCF) hogyan képezi le a Web Services Description Language (WSDL) dokumentumait példányokra és példányokról ServiceDescription .

A ServiceDescription Térképek a WSDL 1.1-hez

A WCF használatával WSDL-dokumentumokat exportálhat a szolgáltatás egy ServiceDescription példányából. A WSDL-dokumentumok automatikusan létrejönnek a szolgáltatáshoz metaadat-végpontok közzétételekor.

A WSDL-dokumentumokból is importálhat ServiceEndpoint példányokat, ContractDescription példányokat és Binding példányokat a WsdlImporter típus használatával.

A WCF által exportált WSDL-dokumentumok külső XML-sémadokumentumokból importálják a használt XML-sémadefiníciókat. A rendszer külön XML-sémadokumentumot exportál minden célnévtérhez, amelyet a szolgáltatásban használt adattípusok használnak. Hasonlóképpen, a rendszer külön WSDL-dokumentumot exportál minden olyan célnévtérhez, amelyet a szolgáltatásszerződések használnak.

ServiceDescription

A ServiceDescription példányok egy wsdl:service elemre képeznek le. A ServiceDescription példányok olyan példánygyűjteményt ServiceEndpoint tartalmaznak, amelyet minden egyes elem megfeleltet wsdl:port .

Tulajdonságok WSDL-leképezés
Name A wsdl:serviceszolgáltatás /@name értéke.
Namespace A szolgáltatás definíciójának wsdl:service targetNamespace-címe.
Endpoints A wsdl:port szolgáltatás definíciói.

ServiceEndpoint

A ServiceEndpoint példányok egy wsdl:port elemre képeznek le. A ServiceEndpoint példány egy címet, egy kötést és egy szerződést tartalmaz.

Az interfészt megvalósító IWsdlExportExtension végponti viselkedések módosíthatják annak a végpontnak az wsdl:port elemét, amelyhez csatlakoznak.

Tulajdonságok WSDL-leképezés
Name A wsdl:portvégpont /@name értéke és a wsdl:bindingvégpontkötés /@name értéke.
Address A végpont definíciójának wsdl:port címe.

A végpont átvitele határozza meg a cím formátumát. A WCF által támogatott átvitelek esetében például egy SOAP-cím vagy egy végponthivatkozás lehet.
Binding A wsdl:binding végpont definíciója.

A definíciókkal ellentétben wsdl:binding a WCF-ben lévő kötések nem kapcsolódnak egyetlen szerződéshez sem.
Contract A wsdl:portType végpont definíciója.
Behaviors Az interfészt megvalósító IWsdlExportExtension végponti viselkedések módosíthatják a wsdl:port végpontot.

Kötések

A példány kötéspéldánya ServiceEndpoint definícióra wsdl:binding képez le. Az adott wsdl:portType definícióhoz társítandó definíciókkal ellentétben wsdl:binding a WCF-kötések minden szerződéstől függetlenek.

A kötések kötéselemekből álló gyűjteményből áll. Minden elem leírja, hogyan kommunikál a végpont az ügyfelekkel. Emellett egy kötés rendelkezik egy olyan kötéssel MessageVersion , amely a EnvelopeVersion végpontot és AddressingVersion a végpontot jelzi.

Tulajdonságok WSDL-leképezés
Name Egy végpont alapértelmezett nevére használatos, amely a kötés neve aláhúzásjellel elválasztott szerződésnévvel.
Namespace A targetNamespace definícióhoz wsdl:binding tartozó.

Importáláskor, ha egy szabályzat a WSDL-porthoz van csatolva, az importált kötési névtér megfelel a targetNamespacewsdl:port definíciónak.
BindingElementCollection, a () metódus által visszaadott CreateBindingElements A definíció különböző tartományspecifikus bővítményei wsdl:binding , jellemzően szabályzat-állítások.
MessageVersion A EnvelopeVersion végpont és AddressingVersion a végpont.

Ha MessageVersion.None meg van adva, a WSDL-kötés nem tartalmaz SOAP-kötést, és a WSDL-port nem tartalmaz WS-Addressing tartalmat. Ezt a beállítást általában egyszerű régi XML-(POX-) végpontokhoz használják.

BindingElements

A végpont kötési leképezésének kötési elemei a különböző WSDL-bővítményekre, például a wsdl:bindingházirend-állításokra.

A TransportBindingElement kötés értéke határozza meg a SOAP-kötések átviteli egységes erőforrás-azonosítóját (URI).

AddressingVersion

A AddressingVersion kötésen lévő leképezések a címzésnek a .-ban használt verziójára lesznek leképezésre wsd:port. A WCF támogatja a SOAP 1.1 és SOAP 1.2 címeket, valamint a WS-addressing 08/2004 és a WS-Addressing 1.0 végponthivatkozásokat.

Borítékverzió

A EnvelopeVersion kötésen lévő leképezések a SOAP-ban használt verzióra lesznek leképzve.wsdl:binding A WCF támogatja a SOAP 1.1 és a SOAP 1.2 kötéseket.

Szerződések

A ContractDescription példány példánya ServiceEndpoint egy wsdl:portType. Egy ContractDescription példány egy adott szerződés összes műveletét ismerteti.

Tulajdonságok WSDL-leképezés
Name A wsdl:portTypeszerződés /@name értéke.
Namespace A definíció targetNamespace-címe wsdl:portType .
SessionMode A wsdl:portType/@msc:usingSession érték a szerződéshez. Ez az attribútum a WSDL 1.1 WCF-bővítménye.
Operations A wsdl:operation szerződés definíciói.

Üzemeltetés

Egy OperationDescription példány egy/wsdl:portTypewsdl:operation . Az An OperationDescription a művelet üzeneteit leíró példánygyűjteményt MessageDescription tartalmaz.

A WSDL-dokumentumokhoz való hozzárendelésben OperationDescription két művelet viselkedése vesz részt nagy mértékben: DataContractSerializerOperationBehavior és XmlSerializerOperationBehavior.

Tulajdonságok WSDL-leképezés
Name A wsdl:portType/wsdl:operationművelet /@name értéke.
ProtectionLevel A művelet üzeneteihez wsdl:binding/wsdl:operation csatolt biztonsági szabályzatban szereplő védelmi állítások.
IsInitiating A wsdl:portType/wsdl:operationművelet /@msc:isInitiating értéke. Ez az attribútum a WSDL 1.1 WCF-bővítménye.
IsTerminating A wsdl:portType/wsdl:operationművelet /@msc:isTerminating értéke. Ez az attribútum a WSDL 1.1 WCF-bővítménye.
Messages A wsdl:portType//wsdl:operationwsdl:input művelet üzenetei éswsdl:outputwsdl:portType/wsdl:operation/üzenetei.
Faults A wsdl:portType//wsdl:operationwsdl:fault művelet definíciói.
Behaviors A DataContractSerializerOperationBehavior műveletkötés és XmlSerializerOperationBehavior a műveleti üzenetek kezelése.

A DataContractSerializerOperationBehavior

A DataContractSerializerOperationBehavior művelet IWsdlExportExtension olyan implementáció, amely exportálja a WSDL-üzeneteket és a kötést az adott művelethez. Az XML-sématípusokat a rendszer a XsdDataContractExporter. Emellett DataContractSerializerOperationBehavior meghatározza az adott művelethez használni kívánt használatot, stílust és sémaexportálót és -importálót is.

Tulajdonságok WSDL-leképezés
DataContractFormatAttribute Az Style attribútum tulajdonsága asoap:operationwsdl:binding/wsdl:operation/ művelet /@style értékére van leképzve.

Ez DataContractSerializerOperationBehavior csak a sématípusok konstans használatát támogatja a WSDL-ben.

Az XmlSerializerOperationBehavior

A XmlSerializerOperationBehavior művelet IWsdlExportExtension olyan implementáció, amely exportálja a WSDL-üzeneteket és a kötést az adott művelethez. Az XML-sématípusokat a rendszer a XmlSchemaExporter. Emellett XmlSerializerOperationBehavior meghatározza az adott művelethez használni kívánt használatot, stílust és sémaexportálót és -importálót is.

Tulajdonságok WSDL-leképezés
XmlSerializerFormatAttribute Az Style attribútum tulajdonsága asoap:operationwsdl:binding/wsdl:operation/ művelet /@style értékére van leképzve.

Az Use attribútum tulajdonsága asoap:operationwsdl:binding/wsdl:operation/ művelet összes üzenetének /*/@use értékeihez lesz leképzve.

Üzenetek

A MessageDescription példányok egy wsdl:message művelet egy vagy egywsdl:operationwsdl:portType/wsdl:output/ üzenete által wsdl:portType/wsdl:operation/wsdl:input hivatkozott példányra képezhetők le. A MessageDescription törzse és fejlécei vannak.

Tulajdonságok WSDL-leképezés
Action Az üzenet SOAP vagy WS-Addressing művelete.

Vegye figyelembe, hogy a"*" műveleti sztringet használó műveletek nem jelennek meg a WSDL-ben.
Direction MessageDirection.Inputa térképet a wsdl:input

MessageDirection.Outputa térképet a wsdl:output
ProtectionLevel Az üzenet definícióhoz wsdl:message csatolt biztonsági szabályzatban szereplő védelmi állítások.
Body Az üzenet üzenettörzse.
Headers Az üzenet fejlécei.
ContractDescription.Name, OperationContract.Name Exportáláskor a wsdl:message/@name érték származtatására szolgál.

Üzenet törzse

Egy MessageBodyDescription példány megfelel az wsdl:message/wsdl:part üzenet törzsének definícióinak. Az üzenet törzse lehet burkolt vagy csupasz.

Tulajdonságok WSDL-leképezés
WrapperName Ha a stílus nem RPC, akkor a rendszer a WrapperName "paraméterek" beállítássalwsdl:partwsdl:message/@name hivatkozott elemnévre képez le.
WrapperNamespace Ha a stílus nem RPC, akkor a rendszer a WrapperNamespace "paraméterek" értékre állítja azwsdl:partwsdl:message/elem névterét.@name
Parts Az üzenettörzs üzenetrészei.
ReturnValue A burkolóelem gyermekeleme, ha létezik burkolóelem (dokumentumburkolt stílus vagy RPC-stílus), ellenkező esetben az üzenet első wsdl:message/wsdl:part eleme.

Üzenetrészek

A MessagePartDescription példány megfelel egy wsdl:message/wsdl:part olyan XML-sématípusnak vagy -elemnek, amelyre az üzenetrész mutat.

Tulajdonságok WSDL-leképezés
Name Az wsd:message/wsdl:partüzenetrész /@name értéke és annak az elemnek a neve, amelyekre az üzenetrész mutat.
Namespace Annak az elemnek a névtere, amelyre az üzenetrész mutat.
Index Az üzenet indexe wsdl:message/wsdl:part .
ProtectionLevel Az üzenetrész definíciójához wsdl:message csatolt biztonsági szabályzatban szereplő védelmi állítások. A szabályzat paraméteresen az adott üzenetrészre mutat.
MessageType Annak az elemnek az XML-sématípusa, amelyre az üzenetrész mutat.

Üzenetfejlécek

A MessageHeaderDescription példány egy üzenetrész, amely az üzenetrész kötésére is megfelel soap:header .

Hibák

A FaultDescription példányok egywsdl:operation//wsdl:portTypewsdl:fault definícióra és annak társított definíciójára képeznek le leképezést.wsdl:message A wsdl:message rendszer ugyanahhoz a célnévtérhez lesz hozzáadva, mint a társított WSDL-porttípus. A wsdl:message "detail" nevű üzenetrész a példány tulajdonságértékének megfelelő DefaultType XML-sémaelemre FaultDescription mutat.

Tulajdonságok WSDL-leképezés
Name A wsdl:portType//wsdl:operationwsdl:faulthiba /@name értéke.
Namespace Annak az XML-sémaelemnek a névtere, amelyre a hibainformációs üzenetrész mutat.
Action A SOAP vagy WS-Addressing művelet a hibához.
ProtectionLevel A biztonsági szabályzatban a hiba definíciójának wsdl:message megfelelő védelmi állítások.
DetailType Annak az elemnek az XML-sématípusa, amelyre a részletes üzenetrész mutat.
Name, ContractDescription.Name, OperationDescription.Name, A hibaüzenet /@name értékének származtatására wsdl:messageszolgál.

Lásd még