Types de données pris en charge par les services Web XML créés à l'aide d'ASP.NET
Cette rubrique est spécifique à une technologie existante. Les services Web XML et les clients du service Web XML doivent à présent être créés à l'aide de Windows Communication Foundation.
Tous les langages de programmation spécifient différents types de données dans lesquels stocker les différents types de données. Les types de données simples, ou primitifs, sont assez semblables dans tous les langages de programmation. Toutefois, il y a des différences subtiles qui empêchent le mappage direct entre des langages. Ces différences représentent un défi pour la création d'un service Web qui soit accessible à toute application cliente.
Pour garantir la portée la plus générale, les services Web prennent en charge un assortiment des types de données primitifs qui peuvent être codés et sérialisés à l'aide de XML.
Le tableau suivant montre les types de données primitifs pris en charge par les services Web (les types de données spécifiés dans la deuxième partie du langage XSD), ainsi que les types de données équivalents en C++ et le common language runtime.
Langage de définition de schéma XML (XSD) | 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 |
Tableaux des primitives et enums |
Tableaux des types ci-dessus |
Pour plus d'informations sur la conversion de types de données common language runtime en types de données d'autres langages tels que C# et Visual Basic .NET, consultez la Bibliothèque de classes .NET Framework.
Les types de données disponibles dépendent du protocole utilisé par le service Web. Par exemple, les protocoles HTTP-GET et HTTP-POST sont tous deux limités aux paires nom/valeur. Toutefois, SOAP autorise pour une utilisation plus riche de XML à coder et sérialiser des structures de données complexes telles que les classes.
Le tableau suivant montre les types pris en charge pour HTTP-GET et HTTP-POST.
Type | Description |
---|---|
Types primitifs (limités) |
Les types primitifs suivants sont convertis en paires nom/valeur représentées sous forme de chaînes : Boolean, Currency, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, UInt16, Uint32, and UInt64. |
Types d'enum |
Du point de vue du client, les types d'énumération deviennent des classes avec un champ de chaîne constant statique pour chaque valeur. |
Tableaux des primitives, enums |
Tableaux des éléments ci-dessus. |
Les types de données pris en charge par les services Web lorsque le protocole SOAP est utilisé sont directement liés aux types de données pouvant être sérialisés en XML. ASP.NET sérialise et désérialise du XML à l'aide de la classe XmlSerializer. Pour plus d'informations sur les types pris en charge par XmlSerializer, consultez Introduction à la sérialisation XML.
Outre les types primitifs répertoriés dans le tableau précédent, les services Web utilisant le protocole SOAP prennent en charge les types de données supplémentaires suivants.
Type | Description |
---|---|
Classes et structures, tableaux des classes et structures |
Types de classe et de structure avec des champs ou des propriétés publics. Les propriétés et les champs publics sont sérialisés. Les classes doivent avoir un constructeur par défaut qui n'accepte aucun paramètre. |
DataSet, Tableaux de DataSet |
Types DataSet ADO.NET. Les types Dataset peuvent également apparaître comme champs dans les classes ou les structs. |
XmlNode, Tableaux de XmlNode |
XmlNode est une représentation en mémoire d'un fragment XML. Les types XmlNodes peuvent être passés comme paramètres ou valeurs de retour, et ils sont ajoutés au reste du XML passé au service Web de façon conforme à SOAP. Cela vous permet de passer ou retourner du XML même si sa structure change d'un appel à l'autre ou si vous ne connaissez pas tous les types passés. Les types XmlNode peuvent également apparaître comme champs dans les classes ou les structs. |
Voir aussi
Concepts
Création de clients de service Web XML
Autres ressources
Introducing XML Serialization
.NET Framework Class Library
Services Web XML utilisant ASP.NET