7.2.1 Типы данных при передаче кодируются в соответствии с алгоритмом A-XDR, то есть указывается тег (код) типа данных, количество данных этого типа и собственно последовательность данных, но если тип и размер данных указан однозначно, тег и длина не передаются. Если возможны различные типы или длина данных, данные передаются в BER-кодировке. Теги типов данных приведены в таблице 7.2.
_______________
См. [11].
Таблица 7.2 - Типы данных
Тег | Тип данных | Описание |
0 | null-data | Отсутствие данных |
1 | array | Массив однородных данных |
2 | structure | Структура из данных разных типов |
3 | boolean | Логические данные (TRUE, FALSE) |
4 | bit-string | Последовательность битов |
5 | double-long | 32-разрядное целое со знаком |
6 | double-long-unsigned | 32-разрядное целое без знака |
9 | octet-string | Последовательность байтов |
10 | visible-string | Последовательность ASCII-символов |
12 | utf8-string | Последовательность символов UTF-8 |
13 | BCD | Двоично-десятичная кодировка байта |
15 | integer | 8-разрядное целое число со знаком |
16 | long | 16-разрядное целое число со знаком |
17 | unsigned | 8-разрядное целое число без знака |
18 | long-unsigned | 16-разрядное целое число без знака |
19 | compact array | Массив упакованных данных |
20 | long64 | 64-разрядное целое со знаком |
21 | long64-unsigned | 64-разрядное целое без знака |
22 | enum | Перечисление |
23 | float32 | 4-байтовая строка - число с плавающей запятой |
24 | float64 | 8-байтовая строка - число с плавающей запятой |
25 | date-time | 12-байтовая строка дата-время |
26 | date | 5-байтовая строка "Дата" |
27 | time | 4-байтовая строка "Время" |
7.2.2 Дата представляется в виде типа octet-string (тег "9") длиной 5 байтов.
Формат даты имеет следующую структуру:
OCTET STRING (SIZE(5))
{
year highbyte,
year lowbyte,
month,
dayOfMonth,
dayOfWeek
}
где year - год, интерпретируется как long-unsigned. Диапазон значений 0x0000...0xFFFE, значение 0xFFFF означает, что год не определен;
month - месяц, интерпретируется как unsigned. Диапазон значений 1...12, 0xFD, 0xFE, 0xFF. Единице соответствует январь, 0xFD - окончание летнего времени, 0xFE - начало летнего времени, 0xFF - значение не определено;
dayOfMonth - день месяца, интерпретируется как unsigned. Диапазон значений 1...31, 0xFD, 0xFE, 0xFF. 0xFD - предпоследний день месяца, 0xFE - последний день месяца, 0xFF - день месяца не определен;
dayOfWeek - день недели, интерпретируется как unsigned. Диапазон значений 1...7, 0xFF - значение не определено.
7.2.3 Время представляется в виде типа octet-string (тег "9") длиной 4 байта.
Формат времени имеет следующую структуру:
OCTET STRING (SIZE(4))
{
hour,
minute,
second,