Поделиться через


Сопоставление типов данных XSD с типами данных XPath (SQLXML 4.0)

Если запрос XPath выполняется для схемы XSD, а тип XSD задан в атрибуте xsd:type, то XPath использует заданный тип данных при обработке запроса.

Тип данных XPath для узла выводится из типа данных XSD в схеме, как показано в следующей таблице. (Узел EmployeeID используется в демонстрационных целях.)

Тип данных XSD

Тип данных XDR

Эквивалентный

тип данных XPath

SQL Server

преобразование, которое используется

Base64Binary

HexBinary

Отсутствует

bin.base64bin.hex

Неприменимо

Отсутствует

EmployeeID

Boolean

boolean

boolean

CONVERT(bit, EmployeeID)

Decimal, integer, float, byte, short, int, long, float, double, unsignedByte, unsignedShort, unsignedInt, unsignedLong

number, int, float,i1, i2, i4, i8,r4, r8ui1, ui2, ui4, ui8

number

CONVERT(float(53), EmployeeID)

id, idref, idrefsentity, entities, notation, nmtoken, nmtokens, DateTime, string, AnyURI

id, idref, idrefsentity, entities, enumeration, notation, nmtoken, nmtokens, char, dateTime, dateTime.tz, string, uri, uuid

string

CONVERT(nvarchar(4000), EmployeeID, 126)

decimal

fixed14.4

Неприменимо (в XPath нет типа данных, эквивалентного типу fixed14.4 в XDR.)

CONVERT(money, EmployeeID)

date

date

string

LEFT(CONVERT(nvarchar(4000), EmployeeID, 126), 10)

time

time

time.tz

string

SUBSTRING(CONVERT(nvarchar(4000), EmployeeID, 126), 1 + CHARINDEX(N'T', CONVERT(nvarchar(4000), EmployeeID, 126)), 24)