Freigeben über


Von mit ASP.NET erstellten XML-Webdiensten unterstützte Datentypen

In allen Programmiersprachen sind verschiedene Datentypen spezifiziert, mit denen unterschiedliche Arten von Daten gespeichert werden können. Die einfachen oder primitiven Datentypen entsprechen sich in den verschiedenen Programmiersprachen weitestgehend. Es gibt jedoch feine Unterschiede, die die direkte Zuordnung zwischen Sprachen unmöglich machen. Durch diese Unterschiede wird das Erstellen eines XML-Webdienstes, auf den beliebige Clientanwendungen zugreifen können, zu einer Herausforderung.

Um die größtmögliche Zugriffssicherheit zu erzielen, unterstützen XML-Webdienste eine Sammlung von primitiven Datentypen, die mit XML codiert und serialisiert werden können.

In der folgenden Tabelle sind die von XML-Webdiensten unterstützten primitiven Datentypen enthalten. 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 Definition-Sprache (XSD) 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
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 Einführung in die .NET Framework-Klassenbibliothek.

Die verfügbaren Datentypen sind abhängig von dem Protokoll, das vom XML-Webdienst verwendet wird. Die Protokolle HTTP-GET und HTTP-POST sind beispielsweise 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 werden die für HTTP-GET und HTTP-POST unterstützten Datentypen aufgeführt.

Typ Beschreibung
Primitive Typen (begrenzt) Die folgenden primitiven Typen werden in als Zeichenfolge dargestellte Name/Wert-Paare 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 Datentypen, die von XML-Webdiensten unterstützt werden, 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 mit Hilfe der XmlSerializer-Klasse. Ausführliche Informationen zu den von XmlSerializer unterstützten Typen finden Sie unter Einführung in die XML-Serialisierung.

Zusätzlich zu den in der vorangehenden Tabelle aufgelisteten Typen unterstützen XML-Webdienste, die das SOAP-Protokoll verwenden, die folgenden zusätzlichen Datentypen.

Typ Beschreibung
Klassen und Strukturen,
Arrays von Klassen und Strukturen
Klassen- und Strukturtypen mit öffentlichen Feldern oder Eigenschaften. Die öffentlichen Eigenschaften und Felder werden serialisiert. 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 vorkommen.
XmlNode,
Arrays von XmlNode
XmlNode ist die 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 dem XML-Webdienst SOAP-kompatibel ü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 vorkommen.

Siehe auch

Einführung in die XML-Serialisierung | .NET Framework-Klassenbibliothek | Erstellen von XML-Webdiensten mit ASP.NET | Erstellen von XML-Webdienstclients