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