Von mit ASP.NET erstellten XML-Webdiensten unterstützte Datentypen
Dieses Thema bezieht sich auf eine veraltete Technologie. XML-Webdienste und XML-Webdienstclients sollten nun mithilfe der folgenden Technologie erstellt werden: Windows Communication Foundation.
Alle Programmiersprachen definieren verschiedene Datentypen, in denen unterschiedliche Arten von Daten gespeichert werden können. Die einfachen oder primitiven Datentypen ähneln sich in den verschiedenen Programmiersprachen weitgehend. Es gibt jedoch feine Unterschiede, die die direkte Zuordnung zwischen Sprachen verhindern. Wegen dieser Unterschiede ist es schwierig, einen Webdienst zu erstellen, auf den beliebige Clientanwendungen zugreifen können.
Um die größtmögliche Zugriffssicherheit zu erzielen, unterstützen Webdienste eine Sammlung von primitiven Datentypen, die mit XML codiert und serialisiert werden können.
Die folgende Tabelle zeigt die von Webdiensten unterstützten primitiven Datentypen. Dabei handelt es sich um die im zweiten Teil der XSD-Sprache (XML Schema Definition) enthaltenen Datentypen mit ihren äquivalenten Datentypen in C++ und der Common Language Runtime.
XML Schema Definitionssprache (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 |
Arrays von Primitiven und Enumerationen |
Arrays der oben genannten Typen |
Weitere Informationen zur Konvertierung von Datentypen der Common Language Runtime in Datentypen anderer Sprachen, z. B. C# und Visual Basic .NET, finden Sie unter .NET Framework-Klassenbibliothek.
Welche Datentypen verfügbar sind, hängt von dem vom Webdienst verwendeten Protokoll ab. Zum Beispiel sind die Protokolle HTTP-GET und HTTP-POST beide auf Name/Wert-Paare beschränkt. SOAP ermöglicht dagegen eine vielfältigere Verwendung von XML für die Codierung und Serialisierung komplexer Datenstrukturen, z. B. Klassen.
In der folgenden Tabelle sind die für HTTP-GET und HTTP-POST unterstützten Datentypen aufgeführt.
Type | Beschreibung |
---|---|
Primitive Typen (begrenzt) |
Die folgenden primitiven Typen werden in als Zeichenfolgen dargestellte Paare aus Name und Wert konvertiert: Boolean, Currency, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, UInt16, Uint32 und UInt64. |
Enumerationstypen |
Aus der Sicht des Clients werden Enumerationstypen zu Klassen mit einem statischen konstanten Zeichenfolgenfeld für jeden Wert. |
Arrays von Primitiven und Enumerationen |
Arrays der oben genannten Typen |
Die von Webdiensten unterstützten Datentypen stehen bei Verwendung des SOAP-Protokolls in direkter Wechselbeziehung mit den Datentypen, die in XML serialisiert werden können. ASP.NET serialisiert und deserialisiert XML-Code mithilfe der XmlSerializer-Klasse. Nähere Informationen zu den Typen, die von XmlSerializer unterstützt werden, finden Sie unter Einführung in die XML-Serialisierung.
Zusätzlich zu den in der vorangehenden Tabelle aufgelisteten Typen unterstützen Webdienste, die das SOAP-Protokoll verwenden, die folgenden zusätzlichen Datentypen.
Type | Beschreibung |
---|---|
Klassen und Strukturen, Arrays von Klassen und Strukturen |
Klasse und Strukturtypen mit öffentlichen Feldern oder Eigenschaften. Die öffentlichen Eigenschaften und Felder werden deserialisiert. Klassen müssen über einen Standardkonstruktor verfügen, der keine Parameter akzeptiert. |
DataSet, Arrays von DataSet |
ADO.NET-DataSet-Typen. Dataset-Typen können auch als Felder in Klassen oder Strukturen angezeigt werden. |
XmlNode, Arrays von XmlNode |
XmlNode ist eine speicherinterne Darstellung eines XML-Fragments. XmlNodes-Typen können als Parameter oder Rückgabewerte übergeben werden und werden dem Rest des XML-Codes hinzugefügt, der SOAP-kompatibel an den Webdienst übergeben wird. Daher können Sie XML-Code übergeben oder zurückgeben, auch wenn die Struktur zwischen den Aufrufen geändert wird oder Sie nicht alle übergebenen Typen kennen. XmlNode-Typen können auch als Felder in Klassen oder Strukturen angezeigt werden. |
Siehe auch
Konzepte
Erstellen von XML-Webdienstclients
Weitere Ressourcen
Introducing XML Serialization
.NET Framework Class Library
XML-Webdienste, die ASP.NET verwenden