将 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 | 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, 实体, 表示法, nmtoken, nmtokens, DateTime, 字符串, AnyURI | id, idref, idrefsentity, 实体, 枚举, 表示法, nmtoken, nmtokens, char, dateTime, dateTime.tz, 字符串, uri, uuid | string | CONVERT(nvarchar(4000), EmployeeID, 126) |
decimal | fixed14.4 | 不适用(XPath 中没有等效于固定 14.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) |