Адамс, Джой Лорен
- 1 year ago
- 0
- 0
WAP Binary XML ( WBXML ) — компактное бинарное представление XML . Разработано Open Mobile Alliance для передачи через беспроводные соединения с низкой скоростью. В данный момент WBXML рассматривается Консорциумом Всемирной паутины для включения в семейство стандартов WAP . Текущая версия 1.3.
WBXML сейчас используется в SyncML , WML , , , программировании телефонов через беспроводную связь.
Для кодирования чисел используется многобайтовое представление. Последний байт начинается с бита 0, остальные — с 1. Остальные 7 бит уже кодируют положительное целое число.
Файл начинается с байта с номером версии WBXML (версия 1.3 кодируется как
0x03
). Далее идёт тип документа в виде ссылки на строку с именем (в таблице строк) или кода для хорошо известных типов, например,
WML
. Следующее число указывает на кодировку, коды которой указаны в «
IANA
Charset MIB» (
). В конце заголовка идёт таблица строк (сначала длина, а потом содержимое). Строки в ней разделены символом
NULL
. Для большей компактности строки в названии тега, атрибутах и содержимом можно указать просто как смещения в этой таблице.
Если формат XML-документа заранее известен, то название тегов и атрибутов можно обозначить заранее обговорённым байтом. Чтобы использовать более 256 имён, они разделены на страницы, которые можно менять с помощью специальной команды: байт
SWITCH_PAGE
и байт с номером страницы.
Перед каждым тегом идёт байт, указывающий, имеет ли он атрибуты и содержимое (
LITERAL
,
LITERAL_A
,
LITERAL_C
или
LITERAL_CA
) и смещение в таблице строк. Или он может быть указан в виде байта, где первый бит указывает на наличие атрибутов, второй — содержимого, а остальные кодируют заранее договорённый код тега. Атрибуты указаны далее как обговорённый байт или
LITERAL
и ссылки на таблицу строк. Далее - строка с его значением и байт
END
. Строки, как в значении атрибута, так и в содержимом тега, могут быть либо байтом
STR_T
и смещением в таблице строк, либо
STR_I
и строкой с
NULL
на конце. Содержимое тега закрывается байтом
END
.
Тег может содержать и бинарные данные (например, изображение или сжатую информацию), которые кодируются в виде специального байта
OPAQUE
, длины данных и самого содержимого.