Mapping dei tipi di dati XSD ai tipi di dati XPath (SQLXML 4.0)
Quando viene eseguita una query XPath su uno schema XSD e il tipo XSD è specificato nell'attributo xsd:type, XPath utilizza il tipo di dati specificato durante l'elaborazione della query.
Il tipo di dati XPath di un nodo viene derivato dal tipo di dati XSD nello schema, come illustrato nella tabella seguente. A scopo illustrativo, viene utilizzato il nodo EmployeeID.
Tipo di dati XSD |
Tipo di dati XDR |
Tipo di dati XPath equivalente |
Conversione di SQL Server utilizzata |
---|---|---|---|
Base64Binary HexBinary |
None bin.base64bin.hex |
Not applicable |
Nessuno 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 |
N/D (in XPath non è disponibile alcun tipo di dati equivalente al tipo di dati XDR fixed14.4). |
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) |