Tipi di dati supportati dai servizi Web XML creati tramite ASP.NET

Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.

Tutti i linguaggi di programmazione specificano vari tipi di dati in cui archiviare le varie tipologie di dati. I tipi di dati più semplici, o primitivi, sono abbastanza simili nei diversi linguaggi di programmazione. Ci sono tuttavia, sottili differenze che impediscono il mapping diretto tra i linguaggi. Queste differenze presentano una sfida alla creazione di un servizio Web è accessibile da qualsiasi applicazione client.

Per assicurare una più vasta portata, i servizi Web supportano un assortimento di tipi di dati primitivi che possono essere codificati e serializzati utilizzando l'XML.

Nella tabella seguente vengono illustrati i tipi di dati primitivi supportati da servizi Web che sono i tipi di dati delineati nella seconda parte del linguaggio XSD, insieme ai tipi di dati equivalenti in C++ e Common Language Runtime.

Linguaggio di definizione XML Schema C++ Common Language Runtime

base64Binary

Byte[]

boolean

bool

Boolean

byte

char, __int8

SByte

double

double

Double

dateTime

DateTime

decimal

   

Decimal

float

float

Single

int

int, long, __int32

Int32

long

__int64

Int64

QName

   

XmlQualifiedName

short

short, __int16

Int16

string

BSTR

String

time

   

DateTime

unsignedByte

unsigned __int8

Byte   

unsignedInt

unsigned __int32

UInt32

unsignedLong

unsigned __int64

UInt64

unsignedShort

unsigned __int16

UInt16

Matrici di primitivi e enumerazioni

Matrici dei tipi precedenti

Per informazioni sulla conversione dai tipi di dati in Common Language Runtime in tipi di dati in altri linguaggi, ad esempio C# e Visual Basic .NET, vedere Libreria di classi di .NET Framework.

I tipi di dati disponibili dipendono dal protocollo utilizzato dal Servizio Web. Ad esempio, i protocolli HTTP GET e HTTP-POST sono entrambi limitati alle coppie nome/valore. Tuttavia, SOAP consente un utilizzo più dettagliato di XML per codificare e serializzare strutture di dati complesse, ad esempio classi.

Nella seguente tabella sono riportati i tipi supportati per HTTP-GET and HTTP-POST.

Tipo Descrizione

Tipi primitivi (limitati)

I tipi primitivi seguenti vengono convertiti in coppie nome/valore rappresentate come stringhe: Boolean, Currency, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, UInt16, Uint32, e UInt64.

Tipi enum

Dalla prospettiva del client, i tipi di enumerazione diventano classi con un campo stringa costante statico per ogni valore.

Matrici di primitivi e enumerazioni

Matrici di quanto sopra.

I tipi di dati supportati dai servizi Web quando viene utilizzato il protocollo SOAP sono correlati direttamente con i tipi di dati che possono essere serializzati in XML. ASP.NET serializza e deserializza l'XML utilizzando la classe XmlSerializer. Per ulteriori informazioni sui tipi supportati da XmlSerializer, vedere introduzione alla serializzazione XML.

Oltre ai tipi primitivi elencati nella tabella precedente, i servizi Web che utilizzano il protocollo SOAP supportano i seguenti tipi di dati aggiuntivi.

Tipo Descrizione

Classi e struct, Matrici di classi e struct

Tipi di classi e struct con campi o proprietà pubbliche. Le proprietà e i campi pubblici vengono serializzati. Le classi devono avere un costruttore predefinito che non accetta parametri.

Dataset, Matrici di Dataset

Tipi di ADO.NET DataSet. I tipi dataset possono essere visualizzati anche come campi in classi o struct.

XmlNode, Matrici di XmlNode

XmlNode è una rappresentazione in memoria di un frammento XML. I tipi XmlNodes possono essere passati come parametri o valori restituiti e vengono aggiunti al resto dell'XML passato al servizio Web in modo conforme al protocollo SOAP. Ciò consente di passare o restituire XML anche se la struttura cambia da chiamata a chiamata, o se non si conoscono tutti i tipi passati. I tipi XmlNode possono essere visualizzati anche come campi in classi o struct.

Vedere anche

Concetti

Compilazione di client dei servizi Web XML

Altre risorse

Introducing XML Serialization
.NET Framework Class Library
Creare servizi Web XML mediante ASP.NET