WSDL predeterminado
Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.
El WSDL predeterminado se devuelve cuando se pasa la cadena de argumentos wsdl a un extremo HTTP SOAP que se ejecuta en una instancia de SQL Server; por ejemplo: http://MyServer/MyEndpoint/sql?wsdl.
Para documentos de WSDL predeterminado, los elementos de parámetros contienen asignaciones de tipos de las asignaciones sqltypes:type WSDL para tipos de datos del sistema SQL Server. Para obtener información acerca de estas asignaciones, vea Asignaciones de tipos de datos de los servicios Web XML nativos
El documento WSDL predeterminado generado por un extremo especifica el tipo de parámetro haciendo referencia a uno de los tipos definidos en el temaAsignaciones de tipos de datos de los servicios Web XML nativos o a subtipos de esos tipos y después agregando restricciones. Para todos los tipos binarios y de cadena, el WSDL predeterminado devuelto por el extremo incluirá un subtipo que contendrá el aspecto maxLength de XSD para especificar el número de bytes o caracteres.
El aspecto maxLength no se genera para tipos de longitud variables que se declaran con el especificador (max). Para tipos de datos decimal y numeric, el WSDL predeterminado generará un subtipo que incluye aspectos totalDigits y fractionDigits de XSD que describirán la precisión y la escala del parámetro.
Asignaciones de tipo de SQL Server al lenguaje CLR para WSDL predeterminado
Las instancias de WSDL predeterminado incluyen compatibilidad para asignar tipos de datos de SQL Server a tipos de CLR (Common Language Runtime) que se proporcionan en Microsoft.NET Framework 2.0. Como algunos tipos de datos CLR integrados no se alinean bien con los tipos de datos SQL Server, el espacio de nombres System.Data.SqlTypes se proporciona en .NET Framework 2.0. Esto habilita un sistema de tipos administrados que puede procesar específicamente muchas de los aspectos del tipo de datos de SQL Server, que de otra manera no se podrían asignar en los tipos XSD.
En la versión .NET Framework 2.0, la herramienta Web Services Definition Language (Wsdl.exe) tiene compatibilidad incorporada para generar las asignaciones de tipo de SQL Server a CLR para instancias WSDL predeterminadas. Esta compatibilidad está disponible si utiliza Wsdl.exe en el símbolo del sistema o si agrega una referencia Web a un proyecto de Visual Studio 2005.
En las instancias WSDL que se generan utilizando este tipo de compatibilidad de asignaciones, todos los tipos de datos de SQL Server se codifican declarando y usando un URI de espacio de nombres específico (https://schemas.microsoft.com/sqlserver/2004/sqltypes) y sus prefijos correspondientes (sqltypes). En la siguiente tabla se muestra cómo las asignaciones **sqltype:**type de instancias WSDL se generan mediante la herramienta Wsdl.exe para asignarlas a sus tipos CLR correspondientes.
Elemento de tipo WSDL |
Tipo CLR |
---|---|
sqltypes:char |
System.Data.SqlTypes.SqlString |
sqltypes:nchar |
System.Data.SqlTypes.SqlString |
sqltypes:varchar |
System.Data.SqlTypes.SqlString |
sqltypes:nvarchar |
System.Data.SqlTypes.SqlString |
sqltypes:text |
System.Data.SqlTypes.SqlString |
sqltypes:ntext |
System.Data.SqlTypes.SqlString |
sqltypes:varbinary |
System.Data.SqlTypes.SqlBinary |
sqltypes:binary |
System.Data.SqlTypes.SqlBinary |
sqltypes:image |
System.Data.SqlTypes.SqlBinary |
sqltypes:timestamp |
System.Byte[] |
sqltypes:timestampNumeric |
System.Int64 |
sqltypes:decimal |
System.Data.SqlTypes.SqlDecimal |
sqltypes:numeric |
System.Data.SqlTypes.SqlDecimal |
sqltypes:bigint |
System.Data.SqlTypes.SqlInt64 |
sqltypes:int |
System.Data.SqlTypes.SqlInt32 |
sqltypes:smallint |
System.Data.SqlTypes.SqlInt16 |
sqltypes:tinyint |
System.Data.SqlTypes.SqlByte |
sqltypes:bit |
System.Data.SqlTypes.SqlBoolean |
sqltypes:float |
System.Data.SqlTypes.SqlDouble |
sqltypes:real |
System.Data.SqlTypes.SqlSingle |
sqltypes:datetime |
System.Data.SqlTypes.SqlDateTime |
sqltypes:smalldatetime |
System.Data.SqlTypes.SqlDateTime |
sqltypes:money |
System.Data.SqlTypes.SqlMoney |
sqltypes:smallmoney |
System.Data.SqlTypes.SqlMoney |
sqltypes:uniqueidentifier |
System.Data.SqlTypes.SqlGuid |
sqltypes:xml |
System.Xml.XmlNode[]1 |
sqltypes:sqlDbType="Sql_Variant" |
System.Object |
sqltypes:sqlDbType="Udt" |
System.Xml.XmlElement2 |
sqltypes:sqlDbType="Structured" |
System.Data.DataSet |
1 Asignado a un contenedor de clases para una matriz de objetos System.Xml.XmlNode. La clase del contenedor se llama xml para parámetros XML sin tipo, pero utiliza un nombre generado para parámetros XML con tipo.
2 Asignado a una clase de contenedor alrededor de un solo objeto System.Xml.XmlElement, que utiliza un nombre generado.
Cómo se gestionan los tipos de datos XML en WSDL predeterminado
Cuando los parámetros del tipo de datos xml se definen en el WSDL predeterminado, se asignan al tipo de datos WSDL sqltypes:xml. Esto permite que el XML correcto se especifique sin contenido adicional o validación basada en esquemas. Para obtener más información, vea Implementar XML en SQL Server.
Para los parámetros de tipo de datos xml enlazados a un espacio de nombres XML, el documento WSDL predeterminado generará un elemento <xsd:complexType> que contiene restricciones sobre el tipo sqltypes:xml. A su vez, el XML con tipo especifica el tipo xsd:any como regla de restricción. Como se muestra en el siguiente ejemplo, esta restricción a su vez especificará el atributo processContents estableciendo su valor en strict y también especificará el atributo namespace y establecerá su valor en una lista de espacios de nombres XML correspondientes asociados con la colección de esquemas a los que está vinculado el XML con tipo.
<xsd:element name="xmlVal" minOccurs="1" maxOccurs="1" nillable="true">
<xsd:complexType >
<xsd:restriction base="sqltypes:xml">
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="strict" namespace="NS1 NS2 ...." />
</xsd:restriction>
</xsd:complexType>
</xsd:element>
Vea también