Herramienta Lenguaje de descripción de servicios Web (Wsdl.exe)
Esta herramienta genera código para servicios Web XML y clientes de servicios Web XML de ASP.NET a partir de archivos de contrato WSDL, esquemas XSD y documentos de descubrimiento (.discomap).
wsdl [options] {URL | path}
Argumento | Descripción |
---|---|
dirección URL |
Dirección URL de un archivo de contrato WSDL (.wsdl), de un archivo de esquemas XSD (.xsd) o de un documento de descubrimiento (.disco). Hay que tener en cuenta que no se puede especificar una dirección URL de un documento de descubrimiento (.discomap). |
Ruta de acceso |
Ruta de acceso a un archivo local de contrato WSDL (.wsdl), a un archivo de esquema XSD (.xsd) o a un documento de descubrimiento (.disco o .discomap). |
Opción | Descripción |
---|---|
/appsettingurlkey: key o /urlkey: key |
Especifica la clave de configuración que se utiliza para leer el valor predeterminado de la propiedad de la dirección URL cuando se genera código. Cuando se utiliza la opción /parameters, este valor es el elemento <appSettingUrlKey> y contiene una cadena. |
/appsettingbaseurl: dirección url base o /baseurl: dirección url base |
Especifica la dirección URL base que se utiliza al calcular el fragmento de dirección URL. Esta herramienta calcula el fragmento de dirección URL convirtiendo la dirección URL relativa desde el argumento URL base en la dirección URL que contiene el documento WSDL. Se debe especificar la opción /appsettingurlkey con esta opción. Cuando se utiliza la opción /parameters, este valor es el elemento <appSettingBaseUrl> y contiene una cadena. |
/d[omain]:dominio |
Especifica el nombre del dominio que se utiliza para conectarse a un servidor que requiera autenticación. Cuando se utiliza la opción /parameters, este valor es el elemento <domain> y contiene una cadena. |
/l[anguage]:lenguaje |
Especifica el lenguaje que se utiliza para la clase de proxy generada. Puede especificar CS (C#; valor predeterminado), VB (Visual Basic), JS (JScript) o VJS (Visual J#) como argumento de lenguaje. También se puede especificar el nombre completo de la clase que implementa System.CodeDom.Compiler.CodeDomProvider (Clase). Cuando se utiliza la opción /parameters, este valor es el elemento <language> y contiene una cadena. |
/n[amespace]:espacio de nombres |
Especifica el espacio de nombres del proxy o plantilla generados. La opción predeterminada es el espacio de nombres global. Cuando se utiliza la opción /parameters, este valor es el elemento <namespace> y contiene una cadena. Este elemento debe estar en el archivo de parámetros. |
/nologo |
Suprime la presentación de la portada de inicio de Microsoft. Cuando se utiliza la opción /parameters, este valor es el elemento <nologo> y contiene true o false. |
/order |
Genera identificadores de orden explícitos en miembros de partícula. |
/o[ut]:nombre de archivo o nombre de directorio |
Especifica el archivo (o directorio) en el que se guarda el código proxy generado. También puede especificar un directorio en el que se podrá crear este archivo. La herramienta deriva el nombre de archivo predeterminado del nombre de servicio Web XML. La herramienta guarda los conjuntos de datos generados en varios archivos. Cuando se utiliza la opción /parameters, este valor es el elemento <out> y contiene una cadena. |
/parameters |
Se leen las opciones de línea de comandos del archivo xml especificado. Utilice esta opción para pasar a la herramienta Wsdl.exe un gran número de opciones de una vez. La forma abreviada es '/par:'. Los elementos de opción están contenidos en un elemento <wsdlParameters xmlns="https://microsoft.com/webReference/">. Para obtener más detalles al respecto, vea la sección Comentarios. |
/parsableerrors |
Muestra los errores en un formato similar al formato de los informes de errores que utilizan los compiladores de lenguajes. Cuando se utiliza la opción /parameters, este valor es el elemento <parsableerrors> y es true o false. |
/p[assword]:contraseña |
Especifica la contraseña que se utiliza para conectarse a un servidor que requiera autenticación. Cuando se utiliza la opción /parameters, este valor es el elemento <password> y contiene una cadena. |
/protocol: protocolo |
Especifica el protocolo que se implementa. Se puede especificar SOAP (el valor predeterminado), HttpGet, HttpPost o el protocolo personalizado que se especifique en el archivo de configuración. Cuando se utiliza la opción /parameters, este valor es el elemento <protocol> y contiene una cadena. |
/proxy: dirección URL |
Especifica la dirección URL del servidor proxy utilizada para las solicitudes HTTP. La opción predeterminada es que se utilice la configuración del sistema proxy. Cuando se utiliza la opción /parameters, este valor es el elemento <proxy> y contiene una cadena. |
/proxydomain: domain o /pd: domain |
Especifica el dominio que se utiliza para conectarse a un servidor proxy que requiera autenticación. Cuando se utiliza la opción /parameters, este valor es el elemento <proxydomain> y contiene una cadena. |
/proxypassword: password o /pp: password |
Especifica la contraseña que se utiliza para conectarse a un servidor proxy que requiera autenticación. Cuando se utiliza la opción /parameters, este valor es el elemento <proxypassword> y contiene una cadena. |
/proxyusername: username o /pu: username |
Especifica el nombre de usuario que se utiliza para conectarse a un servidor proxy que requiera autenticación. Cuando se utiliza la opción /parameters, este valor es el elemento <proxyusername> y contiene una cadena. |
/server |
Genera una clase abstracta para un servicio Web XML basada en contratos. El valor predeterminado es que se generen clases de proxy cliente. Cuando se utiliza la opción /parameters, este valor es un elemento <style> que contiene el valor "server". |
/serverInterface |
Genera interfaces para la implementación en el servidor de un servicio Web ASP.NET. Se genera una interfaz para cada enlace en los documentos WSDL. WSDL por sí solo implementa el contrato WSDL (las clases que implementan la interfaz no deben incluir lo siguiente en los métodos de clase: atributos de servicio Web o atributos de serialización que cambien el contrato WSDL). La forma abreviada es '/si'. Cuando se utiliza la opción /parameters, este valor es un elemento <style> que contiene el valor "servicerInterface". |
/sharetypes |
Activa la característica de uso compartido de tipos. Esta característica permite crear un archivo de código con una definición de tipo única para tipos idénticos que comparten distintos servicios (el espacio de nombres, el nombre y la firma de conexión deben ser idénticos). Haga referencia a los servicios con direcciones URL "http://" como parámetros de línea de comandos o cree un documento discomap para los archivos locales. Cuando se utiliza la opción /parameters, este valor es el elemento <sharetypes> y es true o false. |
/u[sername]:nombre de usuario |
Especifica el nombre de usuario que se utiliza para conectarse a un servidor que requiera autenticación. Cuando se utiliza la opción /parameters, este valor es el elemento <username> y contiene una cadena. |
/? |
Muestra la sintaxis de comandos y opciones para la herramienta. |
Comentarios
Un archivo .wsdl es un documento XML escrito con una gramática denominada Lenguaje de descripción de servicios Web (WSDL). En este archivo se describe cómo se comporta un servicio Web XML y cómo se instruye a los clientes para que interactúen con el servicio.
Los documentos de descubrimiento de un servicio Web XML se pueden obtener utilizando la Herramienta Descubrimiento de servicios Web (Disco.exe). Los archivos que crea esta herramienta, .discomap, .disco, .wsdl y .xsd, se pueden utilizar como entrada para Wsdl.exe.
Cuando se utiliza Wsdl.exe para crear una clase de proxy, se crea un único archivo de código fuente en el lenguaje de programación especificado. Durante el proceso de generación del código fuente para la clase de proxy, la herramienta determina el tipo más adecuado para utilizarlo con los objetos especificados en la descripción de servicio. En algunos casos la herramienta utiliza un enfoque de denominador menos común para convertir los objetos a un tipo determinado. Como consecuencia, es posible que el tipo generado en la clase de proxy no sea el que desea o espera el programador. Por ejemplo, cuando Wsdl.exe encuentra un tipo ArrayList en una descripción de servicio, crea Object Array en la clase de proxy generada. Para garantizar que las conversiones de tipo de objeto sean correctas, abra el archivo que contiene la clase de proxy generada y cambie los tipos de objeto incorrectos al tipo de objeto esperado.
- La opción /parameters especifica un archivo que contiene elementos que se corresponden con la mayoría de las opciones de símbolo del sistema. Algunas opciones del símbolo del sistema sólo están disponibles en los formatos de archivo /parameters.
El formato del archivo XML, que es un formato aceptado por la opción /parameters, está formado por una serie de elementos incluidos dentro de un elemento <wsdlParameters xmlns="https://microsoft.com/webReference/"> exterior. Si se especifican valores del símbolo del sistema y se utiliza un archivo /parameters que contiene distintas opciones o valores, se utilizan los valores especificados en el símbolo del sistema. El elemento <wsdlParameters xmlns="https://microsoft.com/webReference/"> debe incluir un elemento <nologo>, un elemento <parsableerrors> y un elemento <sharetypes>.
Se pasan varias opciones como elementos secundarios del elemento <webReferenceOptions>, que debe incluir un elemento <verbose>. Otros elementos secundarios de <webReferenceOptions> son los siguientes:
<style>. Contiene un valor "client", "server" o "serverInterface".
<schemaImporterExtension>. Contiene cualquier número de elementos <type>.
<codeGenerationOptions>. Puede tomar un conjunto delimitado por espacios de las siguientes cadenas.
"properties"
"newAsync"
"oldAsync"
"order"
"enableDataBinding"
Vea la sección Ejemplos para obtener algunas demostraciones de la opción /parameters.
Ejemplos
El siguiente comando crea una clase de proxy de cliente en lenguaje C# para el servicio Web XML.
wsdl http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
El siguiente comando crea una clase de proxy cliente en lenguaje C# para un servicio Web XML ubicado en la dirección URL especificada. La herramienta guarda la clase de proxy cliente en el archivo myProxyClass.cs
.
wsdl /out:myProxyClass.cs http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
El siguiente comando crea una clase de proxy cliente en lenguaje Visual Basic de Microsoft para un servicio Web XML ubicado en la dirección URL especificada. La herramienta guarda la clase de proxy cliente en el archivo myProxyClass.vb
.
wsdl /language:VB /out:myProxyClass.vb http://hostServer/WebserviceRoot/WebServiceName.asmx?WSDL
En el siguiente código de ejemplo se muestra un archivo WSDL /parameters básico, que sólo tiene escritos los elementos requeridos que pueden utilizarse en combinación con un argumento URL en el símbolo del sistema.
<wsdlParameters xmlns="https://microsoft.com/webReference/">
<nologo>true</nologo>
<parsableerrors>true</parsableerrors>
<sharetypes>true</sharetypes>
</wsdlParameters>
Los documentos WSDL se agregan al archivo WSDL /parameters mediante el elemento <documents>, tal y como se muestra en el siguiente ejemplo de código. Se puede utilizar cualquier número de elementos <document> dentro del elemento <documents>.
<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>
En el siguiente archivo WSDL /parameters se muestra el uso de los elementos <codeGenerationOptions> y <style> dentro del elemento <webReferenceOptions>. En este caso, el archivo permite el nuevo estilo de enlace de datos en el código proxy, y especifica una extensión de importador de esquemas, que los resultados no deben ser detallados y que Wsdl.exe debe crear un servidor proxy de cliente.
<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>
Vea también
Referencia
Herramientas de .NET Framework
Herramienta Descubrimiento de servicios Web (Disco.exe)
Símbolo del sistema de SDK
Conceptos
Crear un proxy de servicio Web XML
Descripción de servicios Web XML
Información general acerca de servicios Web XML