将 XSD 数据类型映射到 XPath 数据类型 (SQLXML 4.0)

针对 XSD 架构执行 XPath 查询且在 xsd:type 属性中指定 XSD 类型时,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)