Web Services Description Language-Tool (Wsdl.exe)
Das Web Services Description Language-Tool generiert Code für XML-Webdienste und XML-Webdienstclients aus WSDL-Vertragsdateien, XSD-Schemas und DISCOMAP-Discovery-Dokumenten.
wsdl [options] {URL | path}
Argument | Beschreibung |
---|---|
URL |
Der URL einer WSDL-Vertragsdatei (.wsdl), einer XSD-Schema-Datei (.xsd) oder eines Discovery-Dokuments (.disco). Beachten Sie, dass Sie für ein DISCOMAP-Discovery-Dokument keinen URL angeben können. |
Path |
Der Pfad einer WSDL-Vertragsdatei (.wsdl), einer XSD-Schema-Datei (.xsd) oder eines Discovery-Dokuments (.disco oder .discomap). |
Option | Beschreibung |
---|---|
/appsettingurlkey: key oder /urlkey: key |
Gibt beim Generieren von Code den Konfigurationsschlüssel an, der zum Lesen des Standardwerts für die URL-Eigenschaft verwendet wird. Bei Verwendung der Option /parameters entspricht dieser Wert dem <appSettingUrlKey>-Element und enthält eine Zeichenfolge. |
/appsettingbaseurl: baseurl oder /baseurl: baseurl |
Gibt beim Berechnen des URL-Fragments die zu verwendende Basis-URL an. Das Tool berechnet das URL-Fragment durch Konvertierung des relativen URLs aus dem baseurl-Argument zum URL des WSDL-Dokuments. Bei dieser Option müssen Sie die /appsettingurlkey-Option angeben. Bei Verwendung der Option /parameters entspricht dieser Wert dem <appSettingBaseUrl>-Element und enthält eine Zeichenfolge. |
/d[omain]:domain |
Gibt den Domänennamen für die Verbindung mit einem Server an, für den Authentifizierung erforderlich ist. Bei Verwendung der Option /parameters entspricht dieser Wert dem <domain>-Element und enthält eine Zeichenfolge. |
/l[anguage]:language |
Gibt die für die generierte Proxyklasse zu verwendende Sprache an. Als Sprachargument können Sie CS (C#, Standard), VB (Visual Basic), JS (JScript) oder VJS (Visual J#) angeben. Sie können auch den vollqualifizierten Namen für eine Klasse angeben, durch die die System.CodeDom.Compiler.CodeDomProvider-Klasse implementiert wird. Bei Verwendung der Option /parameters entspricht dieser Wert dem <language>-Element und enthält eine Zeichenfolge. |
/n[amespace]:namespace |
Gibt den Namespace für den generierten Proxy bzw. die Vorlage an. Der Standardnamespace ist der globale Namespace. Bei Verwendung der Option /parameters entspricht dieser Wert dem <namespace>-Element und enthält eine Zeichenfolge. Dieses Element muss in der Parameterdatei enthalten sein. |
/nologo |
Unterdrückt die Anzeige des Startbanners von Microsoft. Bei Verwendung der Option /parameters entspricht dieser Wert dem <nologo>-Element und enthält entweder true oder false. |
/order |
Generiert explizite Reihenfolgebezeichner für Abschnittsmember. |
/o[ut]:filename oder directoryname |
Gibt die Datei (oder das Verzeichnis) an, wo der generierte Proxycode gespeichert werden soll. Sie können auch ein Verzeichnis angeben, in dem diese Datei erstellt werden soll. Das Tool leitet den Standarddateinamen vom Namen des XML-Webdienstes ab. Das Tool speichert die erstellten Datasets in verschiedenen Dateien. Bei Verwendung der Option /parameters entspricht dieser Wert dem <out>-Element und enthält eine Zeichenfolge. |
/parameters |
Lesen Befehlszeilenoptionen aus der angegebenen XML-Datei. Verwenden Sie diese Option, um zahlreiche Optionen gleichzeitig an das Tool Wsdl.exe zu übergeben. Die Kurzform ist '/par:'. Optionselemente sind in einem <wsdlParameters xmlns="https://microsoft.com/webReference/">-Element enthalten. Weitere Informationen finden Sie im Abschnitt Hinweise. |
/parsableerrors |
Zeigt Fehler in einem Format an, das dem von Sprachcompilern verwendeten Fehlerberichtsformat ähnelt. Bei Verwendung der Option /parameters entspricht dieser Wert dem <parsableerrors>-Element und lautet entweder true oder false. |
/p[assword]:password |
Gibt das Kennwort für die Verbindung mit einem Server an, für den Authentifizierung erforderlich ist. Bei Verwendung der Option /parameters entspricht dieser Wert dem <password>-Element und enthält eine Zeichenfolge. |
/protocol: protocol |
Gibt das zu implementierende Protokoll an. Sie können SOAP (Standardwert), HttpGet, HttpPost oder ein in der Konfigurationsdatei angegebenes benutzerdefiniertes Protokoll angeben. Bei Verwendung der Option /parameters entspricht dieser Wert dem <protocol>-Element und enthält eine Zeichenfolge. |
/proxy: URL |
Gibt den URL des für HTTP-Anforderungen zu verwendenden Proxyservers an. Standardmäßig wird die Proxyeinstellung des Systems verwendet. Bei Verwendung der Option /parameters entspricht dieser Wert dem <proxy>-Element und enthält eine Zeichenfolge. |
/proxydomain: domain oder /pd: domain |
Gibt die Domäne für die Verbindung mit einem Proxyserver an, für den Authentifizierung erforderlich ist. Bei Verwendung der Option /parameters entspricht dieser Wert dem <proxydomain>-Element und enthält eine Zeichenfolge. |
/proxypassword: password oder /pp: password |
Gibt das Kennwort für die Verbindung mit einem Proxyserver an, für den Authentifizierung erforderlich ist. Bei Verwendung der Option /parameters entspricht dieser Wert dem <proxypassword>-Element und enthält eine Zeichenfolge. |
/proxyusername: username oder /pu: username |
Gibt den Benutzernamen für die Verbindung mit einem Proxyserver an, für den Authentifizierung erforderlich ist. Bei Verwendung der Option /parameters entspricht dieser Wert dem <proxyusername>-Element und enthält eine Zeichenfolge. |
/Server |
Generiert eine abstrakte Klasse für einen XML-Webdienst, der auf Verträgen basiert. Standardmäßig werden Clientproxyklassen generiert. Bei Verwendung der Option /parameters entspricht dieser Wert einem <style>-Element, das "server" enthält. |
/serverInterface |
Generiert Schnittstellen für die serverseitige Implementierung eines ASP.NET-Webdiensts. Für jede Bindung in den WSDL-Dokumenten wird eine Schnittstelle generiert. Nur WSDL implementiert den WSDL-Vertrag (Klassen, die die Schnittstelle implementieren, sollten keines der beiden folgenden Attribute in die Klassenmethoden einfügen: Webdienstattribute oder Serialisierungsattribute, die den WSDL-Vertrag ändern). Die Kurzform ist '/si'. Bei Verwendung der Option /parameters entspricht dieser Wert einem <style>-Element, das "servicerInterface" enthält. |
/sharetypes |
Aktiviert das Feature für die gemeinsame Typnutzung. Dieses Feature erstellt eine Codedatei mit einer einzigen Typdefinition für identische Typen, die von verschiedenen Diensten gemeinsam genutzt werden (Namespace, Name und Übertragungssignatur müssen identisch sein). Verweisen Sie mit "http://"-URLs als Befehlszeilenparameter auf die Dienste, oder erstellen Sie ein discomap-Dokument für lokale Dateien. Bei Verwendung der Option /parameters entspricht dieser Wert dem <sharetypes>-Element und lautet entweder true oder false. |
/u[sername]:username |
Gibt den Benutzernamen für die Verbindung mit einem Server an, für den Authentifizierung erforderlich ist. Bei Verwendung der Option /parameters entspricht dieser Wert dem <username>-Element und enthält eine Zeichenfolge. |
/? |
Zeigt die Befehlssyntax und die Optionen für das Tool an. |
Hinweise
Eine WSDL-Datei ist ein XML-Dokument, das in WSDL (Web Service Description Language), einer speziellen XML-Grammatik, geschrieben ist. Diese Datei definiert, wie sich ein XML-Webdienst verhält und weist den Client an, wie dieser mit dem Dienst interagieren soll.
Discovery-Dokumente für einen XML-Webdienst können Sie mithilfe des Web Services Discovery-Tools (Disco.exe) erhalten. Die von diesem Tool erstellten DISCOMAP-, DISCO-, WSDL- und XSD-Dateien können als Eingabe für Wsdl.exe verwendet werden.
Wenn Sie eine Proxyklasse mit Wsdl.exe erstellen, wird eine einzelne Quelldatei in der angegebenen Programmiersprache erstellt. Im Verlauf der Quellcodegenerierung für die Proxyklasse bestimmt das Tool den für in der Dienstbeschreibung angegebene Objekte am besten geeigneten Typ. In bestimmten Fällen verwendet das Tool das Prinzip des kleinsten gemeinsamen Nenners für die Konvertierung von Objekten in einen Typ. Dadurch entspricht der in der Proxyklasse erzeugte Typ u. U. nicht den Vorstellungen oder Erwartungen des Entwicklers. Wenn Wsdl.exe z. B. auf einen ArrayList-Typ in einer Dienstbeschreibung stößt, wird ein Objektarray in der erzeugten Proxyklasse erstellt. Um die korrekte Umwandlung von Objekttypen sicherzustellen, öffnen Sie die Datei mit der erstellten Proxyklasse, und ändern Sie alle falschen Objektypen in den erwarteten Objekttyp.
- Mit der Option /parameters wird eine Datei mit Elementen angegeben, die den meisten Eingabeaufforderungsoptionen entsprechen. Einige Eingabeaufforderungsoptionen sind nur in /parameters-Dateiformaten verfügbar.
Das von der Option /parameters unterstützte XML-Dateiformat entspricht einer Reihe von Elementen innerhalb eines umgebenden <wsdlParameters xmlns="https://microsoft.com/webReference/">-Elements. Wenn Eingabeaufforderungsoptionen angegeben werden und eine /parameters-Datei verwendet wird, die abweichende Optionen oder Werte enthält, haben die an der Eingabeaufforderung angegebenen Werte Vorrang. Das <wsdlParameters xmlns="https://microsoft.com/webReference/">-Element muss die Elemente <nologo>, <parsableerrors> und <sharetypes> enthalten.
Mehrere Optionen werden als untergeordnete Elemente des <webReferenceOptions>-Elements übergeben, das ein <verbose>-Element enthalten muss. Weitere untergeordnete Elemente von <webReferenceOptions> sind:
<style>. Enthält entweder "client", "server" oder "serverInterface".
<schemaImporterExtension>. Enthält eine beliebige Anzahl von <type>-Elementen.
<codeGenerationOptions>. Kann die folgenden, durch Leerzeichen getrennte Zeichenfolgen verwenden.
"properties"
"newAsync"
"oldAsync"
"order"
"enableDataBinding"
Im Abschnitt mit Beispielen wird die Verwendung der Option /parameters veranschaulicht.
Beispiele
Durch folgenden Befehl wird in der Programmiersprache C# für den XML-Webdienst eine Clientproxyklasse erstellt.
wsdl http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
Durch folgenden Befehl wird am angegebenen URL eine Clientproxyklasse für einen XML-Webdienst in der C#-Sprache erstellt. Das Tool speichert die Clientproxyklasse in der Datei myProxyClass.cs
.
wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
Durch folgenden Befehl wird am angegebenen URL eine Clientproxyklasse für einen XML-Webdienst in der Microsoft Visual Basic-Sprache erstellt. Das Tool speichert die Clientproxyklasse in der Datei myProxyClass.vb
.
wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
Der folgende Beispielcode veranschaulicht eine grundlegende /parameters-WSDL-Datei, die nur die erforderlichen Elemente enthält, die in Kombination mit einem URL-Argument an der Eingabeaufforderung verwendet werden können.
<wsdlParameters xmlns="https://microsoft.com/webReference/">
<nologo>true</nologo>
<parsableerrors>true</parsableerrors>
<sharetypes>true</sharetypes>
</wsdlParameters>
WSDL-Dokumente werden der /parameters-WSDL-Datei mithilfe des <documents>-Elements hinzugefügt, wie aus dem folgenden Codebeispiel ersichtlich. Sie können beliebig viele <document>-Elemente innerhalb des <documents>-Elements verwenden.
<wsdlParameters xmlns="https://microsoft.com/webReference/">
<nologo>true</nologo>
<parsableerrors>true</parsableerrors>
<sharetypes>true</sharetypes>
<documents>
<document>https://www.contoso.com/service.asmx?WSDL</document>
</documents>
</wsdlParameters>
Mit der folgenden /parameters-WSDL-Datei wird die Verwendung des <codeGenerationOptions>-Elements und des <style>-Elements innerhalb des <webReferenceOptions>-Elements veranschaulicht. In diesem Fall ermöglicht die Datei die neue Form der Datenbindung in Proxycode und legt mittels einer Erweiterung für einen Schemaimportierer fest, dass keine ausführliche Ausgabe erfolgt und dass von Wsdl.exe ein Clientproxy erstellt wird.
<wsdlParameters xmlns="https://microsoft.com/webReference/">
<nologo>true</nologo>
<parsableerrors>true</parsableerrors>
<sharetypes>true</sharetypes>
<documents>
<document>https://www.contoso.com/service.asmx?WSDL</document>
</documents>
<webReferenceOptions>
<verbose>false</verbose>
<codeGenerationOptions>properties newAsync enableDataBinding</codeGenerationOptions>
<schemaImporterExtension>
<type>MyNamespace.MyCustomImporterExtension,ExtensionLibrary</type>
</schemaImporterExtensions>
<style>client</style>
</webReferenceOptions>
</wsdlParameters>
Siehe auch
Referenz
.NET Framework-Tools
Web Services Discovery-Tool (Disco.exe)
SDK-Eingabeaufforderung
Konzepte
Erstellen eines XML-Webdienstproxys
XML-Webdienstbeschreibung
Übersicht über XML-Webdienste