Преобразование xml в wbxml для activesync в iOS
Я пытался создать приложение, которое будет взаимодействовать с MS-ActiveSync Exchange. Я застрял на подготовительной части. Мне нужно отправить HTTP-запрос с содержимым WBXML в теле. Но я не мог найти что-нибудь, чтобы преобразовать xml в wbxml для активной синхронизации.
Есть некоторые библиотеки на основе C, такие как wbxml2, но могу ли я использовать их для активной синхронизации. В библиотеке нет кодовых страниц, упомянутых в документации MS-Activesync Exchange. Пожалуйста помоги!!!
2 ответа
Используйте libwbxml. В пакете есть xml2wbxml и wbxml2xml. Кодовые страницы включены.
сохраните это как prov.xml:
<?xml version="1.0"?>
<!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
<Provision xmlns="Provision:">
<Policies>
<Policy>
<PolicyType>MS-WAP-Provisioning-XML</PolicyType>
</Policy></Policies></Provision>
затем:
xml2wbxml -a prov.xml -o prov.wbxml
Вы можете манипулировать wbxml как текст. В https://code.google.com/p/tz-push/
В JavaScript:
prov.wbxml = string.fromCharCode(0x03,0x01,0x6A,0x00,0x00,0x0E,0x45,0x46,0x47,0x48,0x03,0x4D,0x53,0x2D,0x57,0x41,0x50,0x2D,0x50,0x72,0x6F,0x76,0x69,0x73,0x69,0x6F,0x6E,0x69,0x6E,0x67,0x2D,0x58,0x4D,0x4C,0x00,0x01,0x01,0x01,0x01)
wbxml2xml и xml2wbxml - это программы командной строки, включенные в libwbxml. Я ничего не знаю о разработке IOS.
Посмотрите на https://tz-push.googlecode.com/files/towbxml.js это конвертер xml в wbxml, написанный на js. (Может быть запущен в Thunderbird/Workspace или Firefox/Sratchpad.) Я знаю, что это не то, что вам нужно, но код может указать вам верное направление. Он использует саксофон. Так что если у вас есть саксофон-парсер, его легко портировать.