我一直在尝试构建一个与 MS-ActiveSync Exchange 通信的应用程序。我被困在供应部分。我需要在正文中发送带有 WBXML 内容的 post HTTP 请求。但是我在任何地方都找不到将 xml 转换为 wbxml 以进行主动同步的任何东西。
有一些基于 C 的库可用,例如 wbxml2,但我可以将它们用于主动同步吗?如 MS-Activesync Exchange 文档中所述,库中没有提供代码页。请帮忙!!!
我一直在尝试构建一个与 MS-ActiveSync Exchange 通信的应用程序。我被困在供应部分。我需要在正文中发送带有 WBXML 内容的 post HTTP 请求。但是我在任何地方都找不到将 xml 转换为 wbxml 以进行主动同步的任何东西。
有一些基于 C 的库可用,例如 wbxml2,但我可以将它们用于主动同步吗?如 MS-Activesync Exchange 文档中所述,库中没有提供代码页。请帮忙!!!
使用 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它是用 js 编写的 xml 到 wbxml 转换器。(可以在 Thunderbird/Workspace 或 Firefox/Sratchpad 中运行。)我知道这不是您想要的,但代码可能会为您指明正确的方向。它使用萨克斯。所以如果你有一个可用的 sax 解析器应该很容易移植。