Декодирование сообщения WBXML SyncML с устройства S60
Вопрос
Я пытаюсь расшифровать сообщение 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; может быть относительным термином.