Types de données pris en charge par les services Web XML créés à l'aide d'ASP.NET
Tous les langages de programmation spécifient une grande variété de données dans lesquels divers types de données doivent être stockés. Les types de données simples ou primitifs sont assez similaires dans les langages de programmation. Il existe néanmoins des différences subtiles qui empêchent le mappage direct entre les langages. Ces différences représentent un défi en matière de création d'un service Web XML accessible à n'importe quelle application cliente.
Pour une approche la plus large possible, les services Web XML prennent en charge un assortiment de types de données primitives qui peuvent être codés et sérialisés à l'aide de XML.
Le tableau suivant illustre les types de données pris en charge par les services Web XML, c'est-à-dire les types de données décrits dans la deuxième partie du langage XSD (XML Schema Definition) ainsi que les types équivalents en C++ et dans le Common Language Runtime.
Langage XSD (XML Schema Definition) | C++ | Common Language Runtime |
---|---|---|
Boolean | bool | Boolean |
Byte | char, __int8 | |
Double | double | Double |
Datatype | struct | |
Decimal | Decimal | |
Enumeration | 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 |
Tableaux de primitives et d'enums | Tableaux des types ci-dessus |
Pour plus d'informations sur la conversion des types de données du Common Language Runtime en d'autres langages, tels que C# et Visual Basic .NET, consultez Bibliothèque de classes .NET Framework.
Les types de données disponibles dépendent du protocole utilisé par le service Web XML. Par exemple, les protocoles HTTP-GET et HTTP-POST se limitent tous deux à des paires nom/valeur. SOAP permet cependant une utilisation plus riche de XML pour 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 par des chaînes : Boolean, Currency, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, UInt16, Uint32 et UInt64. |
Types Enum | Du point de vue du client, les types énumération deviennent des classes avec un champ de chaîne constante statique pour chaque valeur. |
Tableaux de primitives et d'enums | Tableaux des types ci-dessus |
Les types de données pris en charge par les services Web XML lorsque le protocole SOAP est utilisé sont directement en corrélation avec les types de données qui peuvent être sérialisés en XML. ASP.NET sérialise et désérialise 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.
En plus des types primitifs présentés dans le tableau précédent, les services Web XML qui utilisent le protocole SOAP prennent en charge les types de données supplémentaires suivants.
Type | Description |
---|---|
Classes et structures, Tableaux de classes et structures |
Types class et struct avec champs ou propriétés publiques. Les champs et propriétés publics peuvent être sérialisés. Les classes doivent avoir un constructeur par défaut n'acceptant aucun paramètre. |
DataSet, Tableaux de DataSet |
Types DataSet ADO.NET. Les types dataset peuvent également apparaître sous forme de champs dans des classes ou des structs. |
XmlNode, Tableaux de XmlNode |
XmlNode est une représentation en mémoire d'un fragment XML. Les types XmlNodes peuvent être passés en tant que paramètres ou valeurs de retour et sont ajoutés au reste du XML passé au service Web XML d'une manière conforme à SOAP. Cela vous permet de passer ou de retourner un XML, même si sa structure change d'un appel à l'autre ou si vous ne connaissez pas tous les types qui sont passés. Les types XmlNode peuvent également apparaître sous forme de champs dans des classes ou des structs. |
Voir aussi
Introduction à la sérialisation XML | Bibliothèque de classes .NET Framework | Création de services Web XML à l'aide d'ASP.NET | Création de clients de service Web XML