Web Services Description Language-Tool (Wsdl.exe)

Dieses Thema bezieht sich auf eine veraltete Technologie. XML-Webdienste und XML-Webdienstclients sollten nun mithilfe der folgenden Technologie erstellt werden: Windows Communication Foundation.

Das Web Services Description Language-Tool generiert Code für XML-Webdienste und XML-Webdienstclients aus WSDL-Vertragsdateien, XSD-Schemas und DISCOMAP-Discovery-Dokumenten.

7h3ystb6.note(de-de,VS.100).gifHinweis:
WSDL.exe generiert möglicherweise Klassen mit Namen wie "@ Zeichenfolge". Dies sind gültige Typnamen, die mit dem Präfix '@' Typnamen zulassen können, die aus einem C#-Schlüsselwort bestehen.

wsdl [options] {URL | path}

Hinweise

Argument Beschreibung

URL

Die 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 keine URL angeben können.

Path

Der Pfad einer lokalen WSDL-Vertragsdatei (.wsdl), einer XSD-Schema-Datei (.xsd) oder eines Discovery-Dokuments (.disco oder .discomap).

7h3ystb6.note(de-de,VS.100).gifHinweis:
Wsdl.exe ruft keine Includes und Importe aus dem Netzwerk ab, wenn es über eine lokale Datei verfügt. Übergeben Sie der lokalen Datei eine URL, damit Wsdl.exe bei der Verarbeitung einer lokalen Datei Netzwerkressourcen abrufen kann. Die folgende Datei verwendet zum Beispiel das Netzwerk, um erforderliche Ressourcen abzurufen: wsdl File:///E:/Customers/WSDLS/Accounts.wsdl /out:proxy.cs

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 /parameters-Option 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 der relativen URL aus dem baseurl-Argument in die URL des WSDL-Dokuments. Bei dieser Option müssen Sie die /appsettingurlkey-Option angeben. Bei Verwendung der /parameters-Option 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 /parameters-Option 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 /parameters-Option 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 /parameters-Option 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 /parameters-Option entspricht dieser Wert dem <nologo>true-Element und enthält entweder false oder .

/order

Generiert explizite Reihenfolgebezeichner für Abschnittsmember.

/o[ut]:filename or 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 /parameters-Option entspricht dieser Wert dem <out>-Element und enthält eine Zeichenfolge.

/parameters

Liest 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 /parameters-Option entspricht dieser Wert dem <parsableerrors>true-Element und lautet entweder false oder .

/p[assword]:password

Gibt das Kennwort für die Verbindung mit einem Server an, für den Authentifizierung erforderlich ist. Bei Verwendung der /parameters-Option 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 /parameters-Option entspricht dieser Wert dem <protocol>-Element und enthält eine Zeichenfolge.

/proxy:URL

Gibt die URL des für HTTP-Anforderungen zu verwendenden Proxyservers an. Standardmäßig wird die Proxyeinstellung des Systems verwendet. Bei Verwendung der /parameters-Option 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 /parameters-Option 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 /parameters-Option 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 /parameters-Option 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 /parameters-Option entspricht dieser Wert einem <style>-Element, das "server" enthält.

/serverInterface

Generiert Schnittstellen für die Serverimplementierung 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 /parameters-Option entspricht dieser Wert einem <style>-Element, das "serverInterface" enthält.

/sharetypes

Aktiviert die Funktion für die gemeinsame Typnutzung. Diese Funktion 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 /parameters-Option entspricht dieser Wert dem <sharetypes>true-Element und lautet entweder false oder .

/u[sername]:username

Gibt den Benutzernamen für die Verbindung mit einem Server an, für den Authentifizierung erforderlich ist. Bei Verwendung der /parameters-Option entspricht dieser Wert dem <username>-Element und enthält eine Zeichenfolge.

/?

Zeigt die Befehlssyntax und Optionen für das Tool an.

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 Object Array 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 /parameters-Option wird eine Datei mit Elementen angegeben, die den meisten Eingabeaufforderungsoptionen entsprechen. Einige Eingabeaufforderungsoptionen sind nur in /parameters-Dateiformaten verfügbar.

Das von der /parameters-Option 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/"><nologo>-Element muss die Elemente <parsableerrors>, <sharetypes> und enthalten.

Mehrere Optionen werden als untergeordnete Elemente des <webReferenceOptions><verbose>-Elements übergeben, das ein -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 folgenden Abschnitt mit Beispielen wird die /parameters-Option demonstriert.

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 an der 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 an der 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>

Wie aus dem folgenden Codebeispiel ersichtlich, werden WSDL-Dokumente der /parameters-WSDL-Datei mithilfe des <documents>-Elements hinzugefügt. 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

Verweis

Web Services Discovery-Tool (Disco.exe)

Konzepte

Erstellen eines XML-Webdienstproxys
XML-Webdienstbeschreibung
Übersicht über XML-Webdienste

Weitere Ressourcen

.NET Framework Tools
SDK Command Prompt