WSDL predeterminado

El WSDL predeterminado se devuelve cuando la cadena de argumentos wsdl se pasa a un extremo HTTP SOAP que se ejecuta en una instancia de SQL Server 2005; 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 2005. 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 2005, 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

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 Tipo de datos xml.

Para los parámetros de tipos de datos xml vinculados a un espacio de nombres XML, el documento WSDL predeterminado generará un elemento <xsd:complexType> con 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

Referencia

WSDL simple
Implementar compatibilidad WSDL personalizada

Conceptos

Usar WSDL

Ayuda e información

Obtener ayuda sobre SQL Server 2005