Декодирование сообщения WBXML SyncML с устройства S60

StackOverflow https://stackoverflow.com/questions/226279

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь расшифровать сообщение SyncML в кодировке WBXML с Nokia N95.Моей первой попыткой было использовать модуль pywbxml python, который переносит вызовы в libwbxml.Декодирование сообщения с помощью этого дало множество <unknown> тегов и большой фрагмент двоичного файла внутри <Collection> тега.Я попытался запустить содержимое файла <Collection> самостоятельно, но это не удалось.Есть ли что-то, чего я не понимаю?

Кроме того, кто-нибудь знает о чистой реализации синтаксического анализатора wbxml на python?В противном случае командная строка или онлайн-инструмент для декодирования этих сообщений были бы полезны - мне было бы намного проще написать свои собственные...

Это было полезно?

Решение 2

В итоге я сам написал парсер Python. Мне удалось сделать это, следуя спецификации здесь: http://www.w3.org/TR/wbxml/

А затем взять кодовые таблицы из резюме horde.org.

Сайт и документация открытого мобильного альянса ужасны, это был очень трудный проект: (

Другие советы

Как ни странно, я работал над той же проблемой. Я уже на полпути к написанию собственного синтаксического анализатора WBXML на языке Python, но он еще недостаточно закончен, чтобы быть полезным, и у меня очень мало времени для работы над ним прямо сейчас.

Те < Неизвестный > теги могут быть связаны с тем, что в pywbxml / libwbxml не загружен правильный словарный запас тегов. WBXML представляет теги с помощью номера индекса, чтобы не передавать сотни раз одно и то же имя тега, и таблица, которая отображает номера индекса с именами тегов, должна предоставляться отдельно от самого документа WBXML. На смутный взгляд на источник libwbxml это выглядит как libwbxml имеет кучу таблиц тегов в жестком коде. Есть таблицы для SyncML 1.0-1.2; Я думаю, что мой Nokia E71 отправляет SyncML 1.3 (если это так, вероятно, ваш N95 тоже), что, похоже, libwbxml пока не поддерживает.

Чтобы заставить его работать, может быть так же просто, как добавить таблицу SyncML 1.3 в libwbxml. Тем не менее, в прошлый раз, когда я пытался, pywbxml не компилируется с исходным исходным кодом libwbxml, поэтому сначала вы должны применить некоторые исправления ... так что & Quot; simple & Quot; может быть относительным термином.

Я использовал pywbxml , Просто нужен был один патч в pywbxml.pyx:

params.lang в действии wbxml2xml вокруг строка 25 установлено значение:

params.lang = WBXML_LANG_UNKNOWN

работает как шарм.Также помогает изменение базового класса для WBXMLParseError на exception:

class WBXMLParseError(Exception):
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top