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

In tutti i linguaggi di programmazione sono specificati diversi tipi di dati per la memorizzazione di un'ampia gamma di dati. I tipi di dati semplici, detti anche primitivi, sono abbastanza simili in tutti i linguaggi di programmazione. Tuttavia esistono sottili differenze che impediscono il mapping diretto tra i linguaggi. Tali differenze costituiscono un ostacolo alla creazione di un servizio Web XML che sia accessibile a tutte le applicazioni client.

Per servire il più alto numero di utenti possibile, i servizi Web XML supportano vari tipi di dati primitivi che possono essere codificati e serializzati tramite XML.

Nella tabella che segue vengono illustrati i tipi di dati primitivi supportati dai servizi Web XML, ovvero i tipi di dati descritti nella seconda parte del linguaggio XSD (XML Schema Definition), nonché i tipi di dati equivalenti in C++ e Common Language Runtime.

Linguaggio XSD (XML Schema definition) C++ Common Language Runtime
Boolean bool Boolean
Byte char, __int8    
Double double Double
Datatype struct    
Decimal     Decimal
Enum enum Enum
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
Matrici di primitivi ed enumerazioni Matrici dei tipi sopra riportati

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

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

Nella tabella che segue vengono illustrati i tipi supportati per HTTP-GET e HTTP-POST.

Tipo Descrizione
Tipi primitivi (limitati) I seguenti tipi primitivi 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 Al client, i tipi di enumerazione appaiono come classi con un campo stringa costante statico per ogni valore.
Matrici di primitivi ed enum Matrici dei tipi sopra riportati.

I tipi di dati supportati dai servizi Web XML quando si utilizza il protocollo SOAP dipendono direttamente dai tipi di dati che possono essere serializzati in XML. In ASP.NET l'XML viene serializzato e deserializzato tramite la classe XmlSerializer. Per informazioni dettagliate sui tipi supportati da XmlSerializer, vedere Introduzione alla serializzazione XML.

In aggiunta ai tipi primitivi elencati nella precedente tabella, i servizi Web XML che utilizzano il protocollo SOAP supportano anche i tipi di dati riportati di seguito.

Tipo Descrizione
Classi e strutture e matrici di classi e strutture Tipi class e struct con proprietà o campi pubblici. Le proprietà e i campi pubblici vengono serializzati. Le classi devono disporre di un costruttore predefinito che non accetta parametri.
DataSet,
matrici di DataSet
Tipi DataSet ADO.NET. I tipi Dataset possono anche apparire come campi in classi o strutture.
XmlNode,
matrici XmlNode
XmlNode è una rappresentazione in memoria di un frammento XML. I tipi XmlNodes possono essere passati come parametri o come valori restituiti e vengono aggiunti al rimanente XML passato al servizio Web XML in conformità alle specifiche SOAP. In tal modo è possibile passare o restituire XML anche se la sua struttura cambia di chiamata in chiamata o se non si conoscono tutti i tipi passati. I tipi XmlNode possono anche apparire come campi in classi e strutture.

Vedere anche

Introduzione alla serializzazione XML | Libreria di classi .NET Framework | Generazione di servizi Web XML mediante ASP.NET | Generazione di client dei servizi Web XML