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