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