Compartir a través de


Tipos de datos compatibles con servicios Web XML creados mediante ASP.NET

En todos los lenguajes de programación se especifican varios tipos de datos en los que se almacenan diferentes tipos de datos. Los tipos de datos simples o primitivos son muy parecidos en todos los lenguajes de programación. Sin embargo, hay pequeñas diferencias que impiden la asignación directa entre lenguajes. Estas diferencias constituyen un problema a la hora de crear un servicio Web XML que sea accesible para cualquier aplicación cliente.

Para asegurar la cobertura más amplia, los servicios Web XML admiten diversos tipos de datos primitivos que se pueden codificar y serializar mediante XML.

En la tabla siguiente se muestran los tipos de datos primitivos que admiten los servicios Web XML, que son los que se describen en la segunda parte del lenguaje XSD (XML Schema Definition, Definición de esquemas XML), junto con los tipos de datos equivalentes en C++ y Common Language Runtime.

Lenguaje de definición de esquemas XML C++ Common Language Runtime
Boolean bool Boolean
Byte char, __int8    
Double double Double
Datatype struct    
Decimal     Decimal
Enumeration enum Enumeración
Float float Single
Int int, long, __int32 Int32
Long __int64 Int64
Qname     XmlQualifiedName
Short short, __int16 Int16
String BSTR String
TimeInstant     DateTime
UnsignedByte unsigned __int8    
UnsignedInt unsigned __int32 UInt32
UnsignedLong unsigned __int64 UInt64
UnsignedShort unsigned __int16 UInt16
Matrices de tipos primitivos y enumeraciones Matrices de los tipos anteriores

Para obtener más información sobre cómo convertir tipos de datos de Common Language Runtime a otros lenguajes, como C# y Visual Basic .NET, vea Biblioteca de clases de .NET Framework.

Los tipos de datos disponibles dependen del protocolo que utilice el servicio Web XML. Por ejemplo, los protocolos HTTP-GET y HTTP-POST están limitados a pares de nombre y valor. Sin embargo, SOAP permite un uso mucho más amplio de XML para codificar y serializar estructuras de datos complejas, como las clases.

En la tabla siguiente se muestran los tipos que admiten HTTP-GET y HTTP-POST.

Tipo Descripción
Tipos primitivos (limitados) Los siguientes tipos primitivos se convierten en pares de nombre y valor representados como cadenas: Boolean, Currency, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, UInt16, Uint32 y UInt64.
Tipos de enumeración Desde la perspectiva del cliente, los tipos de enumeración se convierten en clases con campo estático constante de tipo cadena de caracteres para cada valor.
Matrices de tipos primitivos, enumeraciones Matrices de los tipos anteriores

Los tipos de datos que admiten los servicios Web XML cuando se utiliza el protocolo SOAP están directamente correlacionados con los tipos de datos que se pueden serializar en XML. ASP.NET serializa y deserializa el código XML mediante la clase XmlSerializer. Para obtener más información acerca de los tipos que admite la clase XmlSerializer, vea Presentar la serialización XML.

Además de ser compatibles con los tipos primitivos enumerados en la tabla anterior, los servicios Web XML que utilizan el protocolo SOAP también son compatibles con los siguientes tipos de datos.

Tipo Descripción
Clases y estructuras,
matrices de clases y estructuras
Tipos de clases y estructuras con campos o propiedades públicos. Los campos y propiedades públicos se serializan. Las clases deben tener un constructor predeterminado que no acepte ningún parámetro.
DataSet,
matrices de DataSet
Tipos DataSet de ADO.NET. Los tipos Dataset también pueden aparecer como campos en clases o estructuras.
XmlNode,
matrices de XmlNode
XmlNode es una representación en la memoria de un fragmento XML. Los tipos XmlNodes se pueden pasar como parámetros o valores devueltos, y se agregan al resto del elemento XML que se pasa al servicio Web XML de forma compatible con SOAP. De este modo, se puede pasar o devolver un elemento XML, aunque su estructura cambie de una llamada a otra, o si no se conocen todos los tipos que se pasan. Los tipos XmlNode también pueden aparecer como campos en clases o estructuras.

Vea también

Presentar la serialización XML | Biblioteca de clases de .NET Framework | Generar servicios Web XML mediante ASP.NET | Generar clientes de servicios Web XML