WBXML编程指南

在现代编程实践中,数据的高效传输变得越来越重要,尤其是在移动设备和网络带宽受限的环境中。XML(可扩展标记语言)是一种广泛使用的数据格式,它易于理解、解析和使用。然而,XML在数据传输方面的效率并不高。例如,一个简单的"Hello, World!"消息,如果使用XML格式,可能需要传输超过200字节的数据,而实际有意义的信息只有两个字符串。在局域网(LAN)环境中,这可能不是问题,但在移动通信环境中,这种低效率就变得非常关键。这就是为什么WAP二进制XML(WBXML)被发明出来的原因。

WBXML通过使用名称表(标记)将节点和属性转换为一个字节值,从而节省了大量不必要的传输信息。WBXML的规范非常简单,但.NET(甚至是Compact框架)缺乏对这种内容格式的支持。

那么,是否有必要学习和使用WBXML呢?这是一个棘手的问题。一方面,所有的移动内容提供商(包括那些处理移动同步的提供商)广泛使用这种格式。另一方面,如果不是真正“在”移动(或任何其他带宽高效)编程领域,并不需要它。

认为,编程(总体上)中最重要的事情之一是效率,所以决定编写一个派生自XmlDocument的类,以提供WBXML支持。

使用代码

首先创建名称表(如果只使用一个标记,就不必这样做):

Dictionary> tokens = new Dictionary>(); Dictionary token = new Dictionary(); token.Add(1, "hello-world"); token.Add(2, "greeter"); token.Add(3, "greeting"); tokens.Add(1, token);

然后使用这些表创建一个新的WBXmlDocument实例:

System.Xml.WBXmlDocument doc = new System.Xml.WBXmlDocument(tokens);

现在可以像使用普通的XmlDocument一样使用它...

doc.LoadXml("WBXML ProgrammerHello, World!");

...然后创建它的二进制表示:

byte[] bytes = doc.GetBytes();

或者加载传入的字节数组...

doc.Load(bytes);

...然后获取XmlDocument:

string xml = doc.DocumentElement.OuterXml;

就是这么简单,不是吗?

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485