Типы данных, поддерживаемые XML-веб-службами, созданными с помощью ASP.NET

Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.

Во всех языках программирования задаются различные типы данных, в которых должны храниться данные разных типов. Простые типы данных, или типы-примитивы, в разных языках программирования довольно похожи. Однако существуют едва уловимые различия, препятствующие прямому сопоставлению в разных языках. Эти различия создают проблему при создании веб-службы, доступной любому клиентскому приложению.

Чтобы обеспечить наиболее широкую область действия, веб-службы поддерживают набор типов-примитивов, которые могут кодироваться и сериализоваться с помощью XML.

В представленной ниже таблице приведены поддерживаемые веб-службами типы-примитивы, представляющие собой типы данных, описанные во второй части языка определения схемы XML (XSD), а также эквивалентные типы данных на языке C++ и в среде CLR.

Язык определения схемы XML C++ Среда CLR

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

Массивы примитивов и перечислений

Массивы указанных выше типов

Сведения о преобразовании типов данных среды CLR в типы данных других языков, например C# и Visual Basic .NET, см. в разделе Библиотека классов .NET Framework.

Доступные типы данных зависят от протокола, используемого веб-службой. Например, протоколы HTTP-GET и HTTP-POST ограничены парами "имя-значение". Однако протокол SOAP поддерживает более широкие возможности использования XML для кодирования и сериализации сложных структур данных, например классов.

В следующей таблице представлены поддерживаемые типы для протоколов HTTP-GET и HTTP-POST.

Тип Описание

Типы-примитивы (ограниченные)

Следующие типы-примитивы преобразуются в пары "имя-значение", представляемые в виде строк: Boolean, Currency, DateTime, Decimal, Double, Int16, Int32, Int64, Single, String, UInt16, Uint32 и UInt64.

Типы перечисления

С точки зрения клиента, типы перечисления становятся классами со статическим полем константной строки для каждого значения.

Массивы примитивов и перечислений

Массивы указанных выше типов.

Типы данных, поддерживаемые веб-службами при использовании протокола SOAP, непосредственно сопоставляются с типами данных, которые могут быть сериализованы в формат XML. ASP.NET сериализует и десериализует данные XML, используя класс XmlSerializer. Подробные сведения о типах, поддерживаемых классом XmlSerializer, см. в разделе Введение в XML-сериализацию.

Помимо типов-примитивов, перечисленных в приведенной выше таблице, веб-службы, использующие протокол SOAP, поддерживают следующие дополнительные типы данных.

Тип Описание

Классы и структуры, массивы классов и структур

Типы классов и структур с открытыми полями и свойствами. Открытые свойства и поля сериализуются. Классы должны иметь конструктор по умолчанию, который не принимает никаких параметров.

DataSet, массивы типа DataSet

Типы DataSet ADO.NET. Типы Dataset могут также отображаться в виде полей в классах или структурах.

XmlNode, массивы типа XmlNode

XmlNode — это представление фрагмента данных XML в памяти. Типы XmlNodes могут передаваться в качестве параметров или возвращаемых значений и добавляются в остальную часть данных XML, передаваемых в веб-службу по протоколу SOAP. Это позволяет передавать или возвращать данные XML даже в том случае, если их структура в разных вызовах изменяется или все передаваемые типы неизвестны. Типы XmlNode могут также отображаться в виде полей в классах или структурах.

См. также

Основные понятия

Создание клиентов XML-веб-службы

Другие ресурсы

Introducing XML Serialization
.NET Framework Class Library
XML-веб-службы с использованием ASP.NET