КаталогИндекс раздела
НазадСодержаниеВперед

Преобразование типов

Преобразование типов поддерживается между xdt:untypedAtomic, xs:integer, двумч производными типами xs:duration (xdt:yearMonthDuration и xdt:dayTimeDuration) и 19 примитивными типами, определенными в XML Schema. Преобразования типов используются в выражениях преобразования и конструкторах типов.

Поддерживаемые преобразования типов показаны в следующих таблицах. В каждой таблице слева показаны примитивные типы, которые являются источником преобразования типа, в вверху показаны примитивные типы, которые являются целью преобразования. Первая таблица содержит цели от xdt:untypedAtomic до xs:dateTime, а вторая таблица содержит цели от xs:time до xs:NOTATION.

Ячейки таблиц содержат один из трех символов:

Y
     Да. Показывает, что преобразование из значений исходного типа в целевой тип поддерживается.
N
     Нет. Показывает, что преобразование из значений исходного типа в целевой тип не поддерживается.
M
     Может быть. Показывает, что преобразование из значений исходного типа в целевой тип может быть успешным для некоторых значений и приводить к ошибке для других значений.

Преобразование не поддерживается в или из xs:anySimpleType или в или из xdt:anyAtomicType.

При попытке неподдерживаемого преобразования возникает ошибка.

Таблица 1. Преобразование примитивных типов, часть 1
(целевые типы от xdt:untypedAtomic дл xs:dateTime)

Исходный тип данных Исходный тип данных
uA string float double decimal integer dur yMD dTD dT
uA Y Y M M M M M M M M
string Y Y M M M M M M M M
float Y Y Y Y M M N N N N
double Y Y M Y M M N N N N
decimal Y Y Y Y Y M N N N N
integer Y Y Y Y Y Y N N N N
dur Y Y N N N N Y Y Y N
yMD Y Y N N N N Y Y N N
dTD Y Y N N N N Y N Y N
dT Y Y N N N N N N N Y
time Y Y N N N N N N N N
date Y Y N N N N N N N Y
gYM Y Y N N N N N N N N
gYr Y Y N N N N N N N N
gMD Y Y N N N N N N N N
gDay Y Y N N N N N N N N
gMon Y Y N N N N N N N N
bool Y Y Y Y Y Y N N N N
b64 Y Y N N N N N N N N
hxB Y Y N N N N N N N N
aURI Y Y N N N N N N N N
QN Y Y N N N N N N N N
NOT Y Y N N N N N N N N

Таблица 2. Преобразование примитивных типов, часть 2
(целевые типы от xs:time до xs:NOTATION)

Исходный тип данных Исходный тип данных
time date gYM gYr gMD gDay gMon bool b64 hxB aURI QN NOT
uA M M M M M M M M M M M N N
string M M M M M M M M M M M M M
float N N N N N N N Y N N N N N
double N N N N N N N Y N N N N N
decimal N N N N N N N Y N N N N N
integer N N N N N N N Y N N N N N
dur N N N N N N N N N N N N N
yMD N N N N N N N N N N N N N
dTD N N N N N N N N N N N N N
dT Y Y Y Y Y Y Y N N N N N N
time Y N N N N N N N N N N N N
date N Y Y Y Y Y Y N N N N N N
gYM N N Y N N N N N N N N N N
gYr N N N Y N N N N N N N N N
gMD N N N N Y N N N N N N N N
gDay N N N N N Y N N N N N N N
gMon N N N N N N Y N N N N N N
bool N N N N N N N Y N N N N N
b64 N N N N N N N N Y Y N N N
hxB N N N N N N N N Y Y N N N
aURI N N N N N N N N N N Y N N
QN N N N N N N N N N N N N N
NOT N N N N N N N N N N N N M

Столбцы и строки идентифицируются сокращениями для следующих типов

  • uA = xdt:untypedAtomic
  • string = xs:string
  • float = xs:float
  • double = xs:double
  • decimal = xs:decimal
  • integer = xs:integer
  • dur = xs:duration
  • yMD = xdt:yearMonthDuration
  • dTD = xdt:dayTimeDuration
  • dT = xs:dateTime
  • time = xs:time
  • date = xs:date
  • gYM = xs:gYearMonth
  • gYr = xs:gYear
  • gMD = xs:gMonthDay
  • gDay = xs:gDay
  • gMon = xs:gMonth
  • bool = xs:boolean
  • b64 = xs:base64Binary
  • hxB = xs:hexBinary
  • aURI = xs:anyURI
  • QN = xs:QName
  • NOT = xs:NOTATION

КаталогИндекс раздела
НазадСодержаниеВперед